active_utils 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/active_utils/common/connection.rb +8 -1
- data/lib/active_utils/version.rb +1 -1
- data/test/unit/connection_test.rb +6 -0
- metadata +52 -86
@@ -72,6 +72,7 @@ module ActiveMerchant
|
|
72
72
|
rescue Errno::ECONNREFUSED => e
|
73
73
|
raise RetriableConnectionError, "The remote server refused the connection"
|
74
74
|
rescue OpenSSL::X509::CertificateError => e
|
75
|
+
error(e.message, tag)
|
75
76
|
raise ClientCertificateError, "The remote server did not accept the provided SSL certificate"
|
76
77
|
rescue Timeout::Error, Errno::ETIMEDOUT => e
|
77
78
|
raise ConnectionError, "The connection to the remote server timed out"
|
@@ -130,10 +131,12 @@ module ActiveMerchant
|
|
130
131
|
rescue RetriableConnectionError => e
|
131
132
|
retries -= 1
|
132
133
|
retry unless retries.zero?
|
134
|
+
error(e.message, tag)
|
133
135
|
raise ConnectionError, e.message
|
134
|
-
rescue ConnectionError
|
136
|
+
rescue ConnectionError => e
|
135
137
|
retries -= 1
|
136
138
|
retry if retry_safe && !retries.zero?
|
139
|
+
error(e.message, tag)
|
137
140
|
raise
|
138
141
|
end
|
139
142
|
end
|
@@ -159,6 +162,10 @@ module ActiveMerchant
|
|
159
162
|
log(:info, message, tag)
|
160
163
|
end
|
161
164
|
|
165
|
+
def error(message, tag = nil)
|
166
|
+
log(:error, message, tag)
|
167
|
+
end
|
168
|
+
|
162
169
|
def log(level, message, tag)
|
163
170
|
message = "[#{tag}] #{message}" if tag
|
164
171
|
logger.send(level, message) if logger
|
data/lib/active_utils/version.rb
CHANGED
@@ -7,6 +7,7 @@ class ConnectionTest < Test::Unit::TestCase
|
|
7
7
|
|
8
8
|
@endpoint = 'https://example.com/tx.php'
|
9
9
|
@connection = ActiveMerchant::Connection.new(@endpoint)
|
10
|
+
@connection.logger = stub(:info => nil, :debug => nil, :error => nil)
|
10
11
|
end
|
11
12
|
|
12
13
|
def test_connection_endpoint_parses_string_to_uri
|
@@ -26,6 +27,7 @@ class ConnectionTest < Test::Unit::TestCase
|
|
26
27
|
end
|
27
28
|
|
28
29
|
def test_successful_get_request
|
30
|
+
@connection.logger.expects(:info).twice
|
29
31
|
Net::HTTP.any_instance.expects(:get).with('/tx.php', {}).returns(@ok)
|
30
32
|
response = @connection.request(:get, nil, {})
|
31
33
|
assert_equal 'success', response.body
|
@@ -87,6 +89,7 @@ class ConnectionTest < Test::Unit::TestCase
|
|
87
89
|
end
|
88
90
|
|
89
91
|
def test_unrecoverable_exception
|
92
|
+
@connection.logger.expects(:error).once
|
90
93
|
Net::HTTP.any_instance.expects(:post).raises(EOFError)
|
91
94
|
|
92
95
|
assert_raises(ActiveMerchant::ConnectionError) do
|
@@ -95,6 +98,7 @@ class ConnectionTest < Test::Unit::TestCase
|
|
95
98
|
end
|
96
99
|
|
97
100
|
def test_failure_then_success_with_recoverable_exception
|
101
|
+
@connection.logger.expects(:error).never
|
98
102
|
Net::HTTP.any_instance.expects(:post).times(2).raises(Errno::ECONNREFUSED).then.returns(@ok)
|
99
103
|
|
100
104
|
assert_nothing_raised do
|
@@ -103,6 +107,7 @@ class ConnectionTest < Test::Unit::TestCase
|
|
103
107
|
end
|
104
108
|
|
105
109
|
def test_failure_limit_reached
|
110
|
+
@connection.logger.expects(:error).once
|
106
111
|
Net::HTTP.any_instance.expects(:post).times(ActiveMerchant::Connection::MAX_RETRIES).raises(Errno::ECONNREFUSED)
|
107
112
|
|
108
113
|
assert_raises(ActiveMerchant::ConnectionError) do
|
@@ -133,6 +138,7 @@ class ConnectionTest < Test::Unit::TestCase
|
|
133
138
|
end
|
134
139
|
|
135
140
|
def test_failure_with_ssl_certificate
|
141
|
+
@connection.logger.expects(:error).once
|
136
142
|
Net::HTTP.any_instance.expects(:post).raises(OpenSSL::X509::CertificateError)
|
137
143
|
|
138
144
|
assert_raises(ActiveMerchant::ClientCertificateError) do
|
metadata
CHANGED
@@ -1,91 +1,67 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_utils
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.3
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 2
|
10
|
-
version: 1.0.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Shopify
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-02-13 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: activesupport
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &2164858760 !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 21
|
30
|
-
segments:
|
31
|
-
- 2
|
32
|
-
- 3
|
33
|
-
- 11
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
34
21
|
version: 2.3.11
|
35
22
|
type: :runtime
|
36
|
-
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: i18n
|
39
23
|
prerelease: false
|
40
|
-
|
24
|
+
version_requirements: *2164858760
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: i18n
|
27
|
+
requirement: &2164856640 !ruby/object:Gem::Requirement
|
41
28
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
segments:
|
47
|
-
- 0
|
48
|
-
version: "0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
49
33
|
type: :runtime
|
50
|
-
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: rake
|
53
34
|
prerelease: false
|
54
|
-
|
35
|
+
version_requirements: *2164856640
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
38
|
+
requirement: &2164854980 !ruby/object:Gem::Requirement
|
55
39
|
none: false
|
56
|
-
requirements:
|
57
|
-
- -
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
segments:
|
61
|
-
- 0
|
62
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
63
44
|
type: :development
|
64
|
-
version_requirements: *id003
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
|
-
name: mocha
|
67
45
|
prerelease: false
|
68
|
-
|
46
|
+
version_requirements: *2164854980
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: mocha
|
49
|
+
requirement: &2164870020 !ruby/object:Gem::Requirement
|
69
50
|
none: false
|
70
|
-
requirements:
|
71
|
-
- -
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
segments:
|
75
|
-
- 0
|
76
|
-
version: "0"
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
77
55
|
type: :development
|
78
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *2164870020
|
79
58
|
description:
|
80
|
-
email:
|
59
|
+
email:
|
81
60
|
- developers@jadedpixel.com
|
82
61
|
executables: []
|
83
|
-
|
84
62
|
extensions: []
|
85
|
-
|
86
63
|
extra_rdoc_files: []
|
87
|
-
|
88
|
-
files:
|
64
|
+
files:
|
89
65
|
- .gitignore
|
90
66
|
- Gemfile
|
91
67
|
- MIT-LICENSE
|
@@ -110,41 +86,31 @@ files:
|
|
110
86
|
- test/unit/post_data_test.rb
|
111
87
|
- test/unit/utils_test.rb
|
112
88
|
- test/unit/validateable_test.rb
|
113
|
-
has_rdoc: true
|
114
89
|
homepage: http://github.com/shopify/active_utils
|
115
90
|
licenses: []
|
116
|
-
|
117
91
|
post_install_message:
|
118
92
|
rdoc_options: []
|
119
|
-
|
120
|
-
require_paths:
|
93
|
+
require_paths:
|
121
94
|
- lib
|
122
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
95
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
123
96
|
none: false
|
124
|
-
requirements:
|
125
|
-
- -
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
|
128
|
-
|
129
|
-
- 0
|
130
|
-
version: "0"
|
131
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ! '>='
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
101
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
102
|
none: false
|
133
|
-
requirements:
|
134
|
-
- -
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
|
137
|
-
segments:
|
138
|
-
- 0
|
139
|
-
version: "0"
|
103
|
+
requirements:
|
104
|
+
- - ! '>='
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '0'
|
140
107
|
requirements: []
|
141
|
-
|
142
108
|
rubyforge_project: active_utils
|
143
|
-
rubygems_version: 1.
|
109
|
+
rubygems_version: 1.8.11
|
144
110
|
signing_key:
|
145
111
|
specification_version: 3
|
146
112
|
summary: Common utils used by active_merchant, active_fulfillment, and active_shipping
|
147
|
-
test_files:
|
113
|
+
test_files:
|
148
114
|
- test/test_helper.rb
|
149
115
|
- test/unit/connection_test.rb
|
150
116
|
- test/unit/country_code_test.rb
|