tddium_client 0.5.2 → 0.6.0

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/Gemfile.lock CHANGED
@@ -1,18 +1,20 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tddium_client (0.5.2)
4
+ tddium_client (0.6.0)
5
5
  httpclient (>= 2.2.5)
6
6
  json
7
7
 
8
8
  GEM
9
9
  remote: http://rubygems.org/
10
10
  specs:
11
- addressable (2.2.8)
12
- crack (0.3.1)
11
+ addressable (2.4.0)
12
+ crack (0.4.3)
13
+ safe_yaml (~> 1.0.0)
13
14
  diff-lcs (1.1.3)
14
15
  fakefs (0.4.0)
15
- httpclient (2.6.0.1)
16
+ hashdiff (0.3.0)
17
+ httpclient (2.7.1)
16
18
  json (1.8.3)
17
19
  multi_json (1.3.6)
18
20
  rack (1.4.1)
@@ -27,13 +29,15 @@ GEM
27
29
  rspec-expectations (2.11.2)
28
30
  diff-lcs (~> 1.1.3)
29
31
  rspec-mocks (2.11.2)
32
+ safe_yaml (1.0.4)
30
33
  simplecov (0.6.4)
31
34
  multi_json (~> 1.0)
32
35
  simplecov-html (~> 0.5.3)
33
36
  simplecov-html (0.5.3)
34
- webmock (1.8.8)
35
- addressable (~> 2.2.8)
36
- crack (>= 0.1.7)
37
+ webmock (1.24.4)
38
+ addressable (>= 2.3.6)
39
+ crack (>= 0.3.2)
40
+ hashdiff
37
41
 
38
42
  PLATFORMS
39
43
  ruby
@@ -46,3 +50,6 @@ DEPENDENCIES
46
50
  simplecov
47
51
  tddium_client!
48
52
  webmock
53
+
54
+ BUNDLED WITH
55
+ 1.10.6
data/README CHANGED
@@ -1 +1,3 @@
1
1
  The tddium_client gem encapsulates common API access code.
2
+
3
+ use `export SOLANO_CLIENT_DEBUG=true` to view debug
data/lib/tddium_client.rb CHANGED
@@ -22,7 +22,7 @@ module TddiumClient
22
22
  HTTPClient::BadResponseError,
23
23
  SocketError ]
24
24
 
25
- module Error
25
+ module Error
26
26
  class Base < RuntimeError; end
27
27
  end
28
28
 
@@ -40,7 +40,7 @@ module TddiumClient
40
40
 
41
41
  def http_message
42
42
  v = http_response.header.send(:reason_phrase)
43
- return v
43
+ return v
44
44
  end
45
45
  end
46
46
 
@@ -76,67 +76,68 @@ module TddiumClient
76
76
  end
77
77
 
78
78
  def message
79
- "API Cert Error: #{@err}"
80
- end
81
- end
79
+ "API Cert Error: #{@err}"
80
+ end
81
+ end
82
82
 
83
- class Server < TddiumClient::Result::Base
84
- def to_s
85
- "#{http_code} #{http_message}"
86
- end
83
+ class Server < TddiumClient::Result::Base
84
+ def to_s
85
+ "#{http_code} #{http_message}"
86
+ end
87
87
 
88
- def message
89
- "Server Error: #{to_s}"
90
- end
88
+ def message
89
+ "Server Error: #{to_s}"
91
90
  end
91
+ end
92
92
 
93
- class API < TddiumClient::Result::Abstract
94
- def initialize(http_response)
95
- super
96
- end
93
+ class API < TddiumClient::Result::Abstract
94
+ def initialize(http_response)
95
+ super
96
+ end
97
97
 
98
- def to_s
99
- "#{http_code} #{http_message} (#{status}) #{explanation}"
100
- end
98
+ def to_s
99
+ "#{http_code} #{http_message} (#{status}) #{explanation}"
100
+ end
101
101
 
102
- def message
103
- "API Error: #{to_s}"
104
- end
102
+ def message
103
+ "API Error: #{to_s}"
104
+ end
105
105
 
106
- def explanation
107
- tddium_response["explanation"]
108
- end
106
+ def explanation
107
+ tddium_response["explanation"]
108
+ end
109
109
 
110
- def status
111
- tddium_response["status"]
112
- end
110
+ def status
111
+ tddium_response["status"]
113
112
  end
113
+ end
114
114
 
115
- class UpgradeRequired < API
116
- def initialize(http_response)
117
- super
118
- end
115
+ class UpgradeRequired < API
116
+ def initialize(http_response)
117
+ super
118
+ end
119
119
 
120
- def message
121
- "API Error: #{explanation}"
122
- end
120
+ def message
121
+ "API Error: #{explanation}"
123
122
  end
124
123
  end
124
+ end
125
125
 
126
- class InternalClient
127
- attr_reader :client
126
+ class InternalClient
127
+ attr_reader :client
128
128
 
129
- def initialize(host, port=nil, scheme='https', version=1, caller_version=nil, options={})
130
- @client = HTTPClient.new
131
- if options[:insecure]
132
- @client.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE
133
- end
129
+ def initialize(host, port=nil, scheme='https', version=1, caller_version=nil, options={})
130
+ @debug = ENV['SOLANO_CLIENT_DEBUG']=='true' || false
131
+ @client = HTTPClient.new
132
+ if options[:insecure]
133
+ @client.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE
134
+ end
134
135
 
135
- @tddium_config = {"host" => host,
136
- "port" => port,
137
- "scheme" => scheme,
138
- "version" => version,
139
- "caller_version" => caller_version}
136
+ @tddium_config = {"host" => host,
137
+ "port" => port,
138
+ "scheme" => scheme,
139
+ "version" => version,
140
+ "caller_version" => caller_version}
140
141
  end
141
142
 
142
143
  def call_api(method, api_path, params = {}, api_key = nil, retries = 5, xid=nil)
@@ -148,6 +149,7 @@ module TddiumClient
148
149
  call_params = params.merge({:xid => xid})
149
150
 
150
151
  tries = 0
152
+ debug_msg({:method => method, :path => tddium_uri(api_path), :headers => headers, :body => call_params.to_json})
151
153
  begin
152
154
  http = @client.send(method, tddium_uri(api_path), :body => call_params.to_json, :header => headers)
153
155
  rescue *ERRORS => e
@@ -159,8 +161,9 @@ module TddiumClient
159
161
  end
160
162
 
161
163
  raise Error::Timeout if retries >= 0 && tries > retries
162
-
163
- Result::API.new(http)
164
+ res = Result::API.new(http)
165
+ debug_msg({:result => res.tddium_response})
166
+ return res
164
167
  end
165
168
 
166
169
  def caller_version
@@ -177,23 +180,33 @@ module TddiumClient
177
180
 
178
181
  protected
179
182
 
180
- def version_header
181
- hdr = "tddium_client-#{TddiumClient::VERSION}"
182
- hdr += ";#{caller_version}" if caller_version
183
- hdr
183
+ def debug_msg(msg={})
184
+ return unless @debug
185
+ STDERR.puts " "
186
+ STDERR.puts "TDDIUM CLIENT DEBUG:"
187
+ msg.each do |key, value|
188
+ STDERR.puts "#{key}: #{value}"
184
189
  end
190
+ STDERR.puts " "
191
+ end
185
192
 
186
- def tddium_uri(path)
187
- uri = URI.parse("")
188
- uri.host = tddium_config["host"]
189
- uri.port = tddium_config["port"]
190
- uri.scheme = tddium_config["scheme"]
191
- URI.join(uri.to_s, "#{tddium_config["version"]}/#{path}").to_s
192
- end
193
+ def version_header
194
+ hdr = "tddium_client-#{TddiumClient::VERSION}"
195
+ hdr += ";#{caller_version}" if caller_version
196
+ hdr
197
+ end
193
198
 
194
- def tddium_config
195
- @tddium_config
196
- end
199
+ def tddium_uri(path)
200
+ uri = URI.parse("")
201
+ uri.host = tddium_config["host"]
202
+ uri.port = tddium_config["port"]
203
+ uri.scheme = tddium_config["scheme"]
204
+ URI.join(uri.to_s, "#{tddium_config["version"]}/#{path}").to_s
205
+ end
206
+
207
+ def tddium_config
208
+ @tddium_config
209
+ end
197
210
  end
198
211
 
199
212
 
@@ -237,8 +250,8 @@ module TddiumClient
237
250
 
238
251
  private
239
252
 
240
- def config_path
241
- File.join(File.dirname(__FILE__), "..", "config", "environment.yml")
242
- end
253
+ def config_path
254
+ File.join(File.dirname(__FILE__), "..", "config", "environment.yml")
255
+ end
243
256
  end
244
257
  end
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2011, 2012, 2013, 2015 Solano Labs All Rights Reserved
2
2
 
3
3
  module TddiumClient
4
- VERSION = "0.5.2"
4
+ VERSION = "0.6.0"
5
5
  end
data/solano.yml ADDED
@@ -0,0 +1,19 @@
1
+ ruby_version:
2
+ SPLIT:
3
+ - 'ruby-1.9.3-p545'
4
+ - 'ruby-2.1.5'
5
+ - 'ruby-2.2.2'
6
+ - 'ruby-2.3.0'
7
+ coverage:
8
+ version: 2
9
+ enabled: true
10
+ bundler_version: 1.10.6
11
+ test_pattern:
12
+ - spec/**_spec.rb
13
+ cache:
14
+ per_profile: true
15
+ key_paths:
16
+ - Gemfile
17
+ - Gemfile.lock
18
+ - tddium_client.gemspec
19
+ - lib/solano/version.rb
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tddium_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.6.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Jay Moorthi
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-07-13 00:00:00.000000000 Z
12
+ date: 2016-04-20 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: httpclient
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ! '>='
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: json
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ! '>='
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ! '>='
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rspec
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ! '>='
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ! '>='
53
60
  - !ruby/object:Gem::Version
@@ -55,6 +62,7 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: webmock
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ! '>='
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
75
  - - ! '>='
67
76
  - !ruby/object:Gem::Version
@@ -69,6 +78,7 @@ dependencies:
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: fakefs
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ! '>='
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ! '>='
81
92
  - !ruby/object:Gem::Version
@@ -83,6 +94,7 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: rack-test
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
99
  - - ! '>='
88
100
  - !ruby/object:Gem::Version
@@ -90,6 +102,7 @@ dependencies:
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
107
  - - ! '>='
95
108
  - !ruby/object:Gem::Version
@@ -97,6 +110,7 @@ dependencies:
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: simplecov
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
115
  - - ! '>='
102
116
  - !ruby/object:Gem::Version
@@ -104,6 +118,7 @@ dependencies:
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
123
  - - ! '>='
109
124
  - !ruby/object:Gem::Version
@@ -111,6 +126,7 @@ dependencies:
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: rake
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
131
  - - ! '>='
116
132
  - !ruby/object:Gem::Version
@@ -118,6 +134,7 @@ dependencies:
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
139
  - - ! '>='
123
140
  - !ruby/object:Gem::Version
@@ -141,6 +158,7 @@ files:
141
158
  - lib/tddium_client/tddium_spec_helpers.rb
142
159
  - lib/tddium_client/version.rb
143
160
  - lib/webagent_cookie.rb
161
+ - solano.yml
144
162
  - spec/fixtures/post_suites_201.json
145
163
  - spec/fixtures/post_suites_269_json_status_1.json
146
164
  - spec/fixtures/post_suites_409.json
@@ -150,25 +168,26 @@ files:
150
168
  - tddium_client.gemspec
151
169
  homepage: https://www.solanolabs.com/
152
170
  licenses: []
153
- metadata: {}
154
171
  post_install_message:
155
172
  rdoc_options: []
156
173
  require_paths:
157
174
  - lib
158
175
  required_ruby_version: !ruby/object:Gem::Requirement
176
+ none: false
159
177
  requirements:
160
178
  - - ! '>='
161
179
  - !ruby/object:Gem::Version
162
180
  version: '0'
163
181
  required_rubygems_version: !ruby/object:Gem::Requirement
182
+ none: false
164
183
  requirements:
165
184
  - - ! '>='
166
185
  - !ruby/object:Gem::Version
167
186
  version: '0'
168
187
  requirements: []
169
188
  rubyforge_project: tddium_client
170
- rubygems_version: 2.2.2
189
+ rubygems_version: 1.8.23.2
171
190
  signing_key:
172
- specification_version: 4
191
+ specification_version: 3
173
192
  summary: tddium Client Gem
174
193
  test_files: []
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NTBjNmMzY2QzMWU5MzFiZTAyMzA0ODBhOTg3MTFmZDQzYTIwMGY2MQ==
5
- data.tar.gz: !binary |-
6
- NDNiNDM2NjM1OWRhNjE2ZGE5YjZmZDU3NzIyYzVmMDBhOTMxNmVkYg==
7
- SHA512:
8
- metadata.gz: !binary |-
9
- MDQxZGQzNWM3M2JmZTQwMDQxMWZkNWQxM2UwNTFlMzUxZTg4NmYyYmVhNDI5
10
- NTExODUxNzI0MWMyZWJjYTU5M2U3MDNjYjllNDU5NjRmZWUwMzBhMDM2NzBk
11
- N2NlMzkxZmQ4Y2Y3MjVmZjU1NDA4M2MzMzRlYTMzZTJlZTE1ZGY=
12
- data.tar.gz: !binary |-
13
- YjIwOGEyMGMxMWIzZmMxNTg4ODc2NzdjMzE4Njc5MTNhOGFjMmFlMjUxNTI1
14
- OTA1NDI4MTQzNGM5MTM5NTc1ZGE2YWJmZjFmYWI3ODRjNDY4NmQ5Mzc0MTc5
15
- MWQ2YTk0ZDQ5OTViYTJhOTZjYmEwYmFmYjk1NzVkM2ExMzI2M2M=