aviator 0.0.1 → 0.0.2

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.
Files changed (72) hide show
  1. data/.coveralls.yml +1 -0
  2. data/.gitignore +6 -1
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +12 -0
  6. data/Gemfile +13 -0
  7. data/Guardfile +6 -0
  8. data/LICENSE.txt +1 -1
  9. data/README.md +151 -2
  10. data/Rakefile +8 -0
  11. data/aviator.gemspec +14 -1
  12. data/bin/aviator +110 -0
  13. data/lib/aviator/core.rb +9 -0
  14. data/lib/aviator/core/request.rb +229 -0
  15. data/lib/aviator/core/response.rb +33 -0
  16. data/lib/aviator/core/service.rb +203 -0
  17. data/lib/aviator/core/session.rb +187 -0
  18. data/lib/aviator/openstack/compute/v2/public/list_images.rb +49 -0
  19. data/lib/aviator/openstack/identity/v2/admin/create_tenant.rb +42 -0
  20. data/lib/aviator/openstack/identity/v2/admin/list_tenants.rb +43 -0
  21. data/lib/aviator/openstack/identity/v2/public/create_token.rb +61 -0
  22. data/lib/aviator/openstack/identity/v2/public/list_tenants.rb +44 -0
  23. data/lib/aviator/version.rb +1 -1
  24. data/test/aviator/core/request_test.rb +342 -0
  25. data/test/aviator/core/service_test.rb +158 -0
  26. data/test/aviator/core/session_test.rb +201 -0
  27. data/test/aviator/openstack/compute/v2/public/list_images_test.rb +179 -0
  28. data/test/aviator/openstack/identity/v2/admin/create_tenant_test.rb +151 -0
  29. data/test/aviator/openstack/identity/v2/public/create_token_test.rb +159 -0
  30. data/test/cassettes/core/service/i_default_session_data_/sets_the_service_s_default_session_data.yml +63 -0
  31. data/test/cassettes/core/service/i_request/accepts_an_endpoint_type_option_for_selecting_a_specific_request.yml +140 -0
  32. data/test/cassettes/core/service/i_request/can_find_the_correct_request_based_on_bootstrapped_session_data.yml +63 -0
  33. data/test/cassettes/core/service/i_request/can_find_the_correct_request_based_on_non-bootstrapped_session_data.yml +97 -0
  34. data/test/cassettes/core/service/i_request/can_find_the_correct_request_if_api_version_is_not_defined_but_can_be_inferred_from_host_uri.yml +63 -0
  35. data/test/cassettes/core/service/i_request/uses_the_default_session_data_if_session_data_is_not_provided.yml +97 -0
  36. data/test/cassettes/core/session/c_load/creates_a_new_instance_from_the_given_session_dump.yml +63 -0
  37. data/test/cassettes/core/session/c_load/uses_the_loaded_auth_info_for_its_services.yml +63 -0
  38. data/test/cassettes/core/session/c_new/directs_log_entries_to_the_given_log_file.yml +63 -0
  39. data/test/cassettes/core/session/i_authenticate/authenticates_against_the_auth_service_indicated_in_the_config_file.yml +63 -0
  40. data/test/cassettes/core/session/i_authenticate/authenticates_against_the_auth_service_using_the_credentials_in_the_given_block.yml +38 -0
  41. data/test/cassettes/core/session/i_authenticate/raises_an_AuthenticationError_when_authentication_fails.yml +35 -0
  42. data/test/cassettes/core/session/i_authenticate/updates_the_session_data_of_its_service_objects.yml +123 -0
  43. data/test/cassettes/core/session/i_dump/serializes_the_session_data_for_caching.yml +63 -0
  44. data/test/cassettes/core/session/i_validate/returns_false_if_session_is_no_longer_valid.yml +97 -0
  45. data/test/cassettes/core/session/i_validate/returns_true_if_session_is_still_valid.yml +98 -0
  46. data/test/cassettes/core/session/i_xxx_service/returns_an_instance_of_the_indicated_service.yml +63 -0
  47. data/test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_no_parameters_are_provided.yml +108 -0
  48. data/test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_parameters_are_invalid.yml +96 -0
  49. data/test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_parameters_are_valid.yml +103 -0
  50. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_body.yml +63 -0
  51. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_body_.yml +63 -0
  52. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_headers.yml +63 -0
  53. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_headers_.yml +63 -0
  54. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_url.yml +63 -0
  55. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_url_.yml +63 -0
  56. data/test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_params_are_invalid.yml +97 -0
  57. data/test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_params_are_valid.yml +97 -0
  58. data/test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_provided_with_invalid_params.yml +97 -0
  59. data/test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_parameters_are_invalid.yml +35 -0
  60. data/test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_parameters_are_valid.yml +38 -0
  61. data/test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_provided_with_a_token.yml +98 -0
  62. data/test/environment.yml.example +22 -0
  63. data/test/environment.yml.travis-ci +24 -0
  64. data/test/support/openstack_request_test_helper.rb +57 -0
  65. data/test/support/test_base_class.rb +39 -0
  66. data/test/support/test_environment.rb +37 -0
  67. data/test/support/test_reporter.rb +45 -0
  68. data/test/support/vcr_setup.rb +41 -0
  69. data/test/test_helper.rb +35 -0
  70. data/tmp/.gitignore +0 -0
  71. metadata +310 -8
  72. data/lib/aviator.rb +0 -5
@@ -0,0 +1,39 @@
1
+ module Aviator
2
+ class Test < MiniTest::Spec
3
+
4
+ def self.validate(name, extra_desc=nil, &block)
5
+ it "returns the correct value for #{ name.to_s } #{ extra_desc }", &block
6
+ end
7
+
8
+
9
+ def self.validate_response(scenario, &block)
10
+ it "leads to a valid response when #{ scenario.to_s }", &block
11
+ end
12
+
13
+
14
+ def cassette_name
15
+ path = self.class.to_s
16
+ .gsub(/^aviator\//, '')
17
+ .gsub(/^Aviator::Test::/, '')
18
+ .gsub(/::#/, '/i_')
19
+ .gsub(/::::/, '/c_')
20
+ .gsub(/::/, '/')
21
+ .underscore
22
+
23
+ basename = __name__.gsub(/test_\d+_/, '')
24
+
25
+ "#{ path }/#{ basename }"
26
+ end
27
+
28
+
29
+ before do
30
+ ::VCR.insert_cassette cassette_name
31
+ end
32
+
33
+
34
+ after do
35
+ ::VCR.eject_cassette
36
+ end
37
+
38
+ end
39
+ end
@@ -0,0 +1,37 @@
1
+ require 'active_support/core_ext/hash/indifferent_access'
2
+
3
+ module Aviator
4
+ class Test
5
+
6
+ module Environment
7
+
8
+ class << self
9
+
10
+ attr_reader :config,
11
+ :path
12
+
13
+ def init!
14
+ @path = Pathname.new(__FILE__).join('..', '..', 'environment.yml').expand_path
15
+
16
+ raise "Environment file #{ path } does not exist. Please make one." unless path.file?
17
+
18
+ @config = YAML.load_file(path).with_indifferent_access
19
+ end
20
+
21
+
22
+ def method_missing(name, *args)
23
+ if config.keys.include? name.to_s
24
+ config[name.to_s]
25
+ else
26
+ super name, *args
27
+ end
28
+ end
29
+
30
+ end
31
+
32
+ end
33
+
34
+ Environment.init!
35
+
36
+ end
37
+ end
@@ -0,0 +1,45 @@
1
+ require "minitest/reporters"
2
+
3
+ module MiniTest::Reporters::RedStack
4
+
5
+ class SpecReporter < MiniTest::Reporters::SpecReporter
6
+
7
+ private
8
+
9
+ def pad_test(test)
10
+ str = test.to_s.gsub(/(test_)/, '').gsub(/_/, ' ')
11
+ pad("%-#{TEST_SIZE}s" % str, TEST_PADDING)[0..TEST_SIZE]
12
+ end
13
+
14
+ def print_info(e)
15
+ print " #{e.exception.class.to_s}:\n"
16
+ e.message.each_line { |line| print_with_info_padding(line) }
17
+
18
+ trace = filter_backtrace(e.backtrace)
19
+
20
+ # TODO: Use the proper MiniTest way of customizing the filter
21
+ trace.each { |line| print_with_info_padding(line) unless line =~ /\.rvm|gems|_run_anything/ }
22
+ end
23
+
24
+ def print_suite(suite)
25
+ puts suite.name.gsub('::#', '#')
26
+ @suites << suite
27
+ end
28
+ end
29
+
30
+
31
+ class ProgressReporter < MiniTest::Reporters::ProgressReporter
32
+
33
+ private
34
+
35
+ def print_test_with_time(suite, test)
36
+ total_time = Time.now - (runner.test_start_time || Time.now)
37
+ suite_name = suite.name.gsub('::#', '#').gsub('::::', '::')
38
+ test_name = test.to_s.gsub(/test_\d+|_/, ' ').strip
39
+ print(" %s %s (%.2fs)%s" % [suite_name, test_name, total_time, clr])
40
+ end
41
+ end
42
+
43
+ end
44
+
45
+ MiniTest::Reporters.use! MiniTest::Reporters::RedStack::ProgressReporter.new
@@ -0,0 +1,41 @@
1
+ require 'vcr'
2
+
3
+ VCR.configure do |c|
4
+ c.cassette_library_dir = Pathname.new(__FILE__).join('..', '..', 'cassettes')
5
+ c.debug_logger = File.open(Pathname.new(__FILE__).join('..', '..', '..', 'tmp', 'vcr.log'), 'w')
6
+ c.hook_into :faraday
7
+
8
+ unless @vcr_port_matcher_registered
9
+ # References:
10
+ # From VCR docs: http://goo.gl/j0fiJ
11
+ # Discussion by author: http://goo.gl/p9q4r
12
+ c.register_request_matcher :port do |r1, r2|
13
+ r1.parsed_uri.port == r2.parsed_uri.port
14
+ end
15
+ @vcr_port_matcher_registered = true
16
+ end
17
+
18
+ c.filter_sensitive_data('"password":"<PASSWORD>"') { %Q{"password":"#{ Aviator::Test::Environment.openstack_admin[:auth_credentials][:password] }"} }
19
+ c.filter_sensitive_data('"password":"<PASSWORD>"') { %Q{"password":"#{ Aviator::Test::Environment.openstack_member[:auth_credentials][:password] }"} }
20
+ c.filter_sensitive_data('<HOST_URI>') do
21
+ auth_url = URI(Aviator::Test::Environment.openstack[:auth_service][:host_uri])
22
+ auth_url.scheme + '://' + auth_url.host
23
+ end
24
+
25
+ c.default_cassette_options = {
26
+ # If no cassette exists for a spec, VCR will record. Afterwards, VCR will
27
+ # stop recording for that spec. If new requests are made that are not
28
+ # matched by anything in the cassette, an error is thrown
29
+ record: :once,
30
+
31
+ match_requests_on: [:method, :port, :path, :query, :headers, :body],
32
+
33
+ # Strict mocking
34
+ # Inspired by: http://myronmars.to/n/dev-blog/2012/06/thoughts-on-mocking
35
+ allow_unused_http_interactions: false,
36
+
37
+ # Enable ERB in the cassettes.
38
+ # Reference: http://goo.gl/aPXYk
39
+ erb: true
40
+ }
41
+ end
@@ -0,0 +1,35 @@
1
+ # Add the gem's lib folder to the load path
2
+ $:.unshift File.expand_path('../../lib', __FILE__)
3
+
4
+
5
+ # Set-up coverage reporting (local and Coveralls.com)
6
+ require 'simplecov'
7
+ require 'coveralls'
8
+ SimpleCov.command_name 'MiniTest'
9
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
10
+ SimpleCov::Formatter::HTMLFormatter,
11
+ Coveralls::SimpleCov::Formatter
12
+ ]
13
+ SimpleCov.start do
14
+ add_filter '/test/'
15
+ end
16
+
17
+ require 'minitest/autorun'
18
+
19
+ # Do not require these gems when running in the CI
20
+ unless ENV['CI'] || ENV['TRAVIS']
21
+ require 'pry'
22
+ end
23
+
24
+ # Clean the tmp dir of log files
25
+ Dir[Pathname.new(__FILE__).expand_path.join('..', '..', 'tmp', '*.log')].each { |f| File.delete(f) }
26
+
27
+ # Make sure this loads first
28
+ require Pathname.new(__FILE__).join('..', 'support', 'test_base_class.rb').expand_path
29
+
30
+ # Load all helpers in test/support
31
+ Dir[Pathname.new(__FILE__).join('..', 'support', '*.rb')].each do |f|
32
+ require f
33
+ end
34
+
35
+ require 'aviator/core'
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aviator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,56 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-22 00:00:00.000000000 Z
12
+ date: 2013-08-30 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: faraday
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.8.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 0.8.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: activesupport
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 4.0.0
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 4.0.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: thor
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 0.18.1
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.18.1
14
62
  - !ruby/object:Gem::Dependency
15
63
  name: bundler
16
64
  requirement: !ruby/object:Gem::Requirement
@@ -43,22 +91,229 @@ dependencies:
43
91
  - - ! '>='
44
92
  - !ruby/object:Gem::Version
45
93
  version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rb-fsevent
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 0.9.0
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.9.0
110
+ - !ruby/object:Gem::Dependency
111
+ name: guard
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 1.8.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 1.8.0
126
+ - !ruby/object:Gem::Dependency
127
+ name: guard-rake
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: 0.0.0
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 0.0.0
142
+ - !ruby/object:Gem::Dependency
143
+ name: guard-minitest
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: 0.5.0
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: 0.5.0
158
+ - !ruby/object:Gem::Dependency
159
+ name: ruby_gntp
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: 0.3.0
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: 0.3.0
174
+ - !ruby/object:Gem::Dependency
175
+ name: debugger
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ~>
180
+ - !ruby/object:Gem::Version
181
+ version: 1.6.0
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ~>
188
+ - !ruby/object:Gem::Version
189
+ version: 1.6.0
190
+ - !ruby/object:Gem::Dependency
191
+ name: pry
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ~>
196
+ - !ruby/object:Gem::Version
197
+ version: 0.9.0
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ~>
204
+ - !ruby/object:Gem::Version
205
+ version: 0.9.0
206
+ - !ruby/object:Gem::Dependency
207
+ name: yard
208
+ requirement: !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ~>
212
+ - !ruby/object:Gem::Version
213
+ version: 0.8.0
214
+ type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ~>
220
+ - !ruby/object:Gem::Version
221
+ version: 0.8.0
222
+ - !ruby/object:Gem::Dependency
223
+ name: redcarpet
224
+ requirement: !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ~>
228
+ - !ruby/object:Gem::Version
229
+ version: 2.3.0
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ~>
236
+ - !ruby/object:Gem::Version
237
+ version: 2.3.0
46
238
  description: ! ' Lightweight Ruby bindings for the OpenStack API '
47
239
  email:
48
240
  - mmaglana@gmail.com
49
- executables: []
241
+ executables:
242
+ - aviator
50
243
  extensions: []
51
244
  extra_rdoc_files: []
52
245
  files:
246
+ - .coveralls.yml
53
247
  - .gitignore
248
+ - .ruby-gemset
249
+ - .ruby-version
250
+ - .travis.yml
54
251
  - Gemfile
252
+ - Guardfile
55
253
  - LICENSE.txt
56
254
  - README.md
57
255
  - Rakefile
58
256
  - aviator.gemspec
59
- - lib/aviator.rb
257
+ - bin/aviator
258
+ - lib/aviator/core.rb
259
+ - lib/aviator/core/request.rb
260
+ - lib/aviator/core/response.rb
261
+ - lib/aviator/core/service.rb
262
+ - lib/aviator/core/session.rb
263
+ - lib/aviator/openstack/compute/v2/public/list_images.rb
264
+ - lib/aviator/openstack/identity/v2/admin/create_tenant.rb
265
+ - lib/aviator/openstack/identity/v2/admin/list_tenants.rb
266
+ - lib/aviator/openstack/identity/v2/public/create_token.rb
267
+ - lib/aviator/openstack/identity/v2/public/list_tenants.rb
60
268
  - lib/aviator/version.rb
61
- homepage: ''
269
+ - test/aviator/core/request_test.rb
270
+ - test/aviator/core/service_test.rb
271
+ - test/aviator/core/session_test.rb
272
+ - test/aviator/openstack/compute/v2/public/list_images_test.rb
273
+ - test/aviator/openstack/identity/v2/admin/create_tenant_test.rb
274
+ - test/aviator/openstack/identity/v2/public/create_token_test.rb
275
+ - test/cassettes/core/service/i_default_session_data_/sets_the_service_s_default_session_data.yml
276
+ - test/cassettes/core/service/i_request/accepts_an_endpoint_type_option_for_selecting_a_specific_request.yml
277
+ - test/cassettes/core/service/i_request/can_find_the_correct_request_based_on_bootstrapped_session_data.yml
278
+ - test/cassettes/core/service/i_request/can_find_the_correct_request_based_on_non-bootstrapped_session_data.yml
279
+ - test/cassettes/core/service/i_request/can_find_the_correct_request_if_api_version_is_not_defined_but_can_be_inferred_from_host_uri.yml
280
+ - test/cassettes/core/service/i_request/uses_the_default_session_data_if_session_data_is_not_provided.yml
281
+ - test/cassettes/core/session/c_load/creates_a_new_instance_from_the_given_session_dump.yml
282
+ - test/cassettes/core/session/c_load/uses_the_loaded_auth_info_for_its_services.yml
283
+ - test/cassettes/core/session/c_new/directs_log_entries_to_the_given_log_file.yml
284
+ - test/cassettes/core/session/i_authenticate/authenticates_against_the_auth_service_indicated_in_the_config_file.yml
285
+ - test/cassettes/core/session/i_authenticate/authenticates_against_the_auth_service_using_the_credentials_in_the_given_block.yml
286
+ - test/cassettes/core/session/i_authenticate/raises_an_AuthenticationError_when_authentication_fails.yml
287
+ - test/cassettes/core/session/i_authenticate/updates_the_session_data_of_its_service_objects.yml
288
+ - test/cassettes/core/session/i_dump/serializes_the_session_data_for_caching.yml
289
+ - test/cassettes/core/session/i_validate/returns_false_if_session_is_no_longer_valid.yml
290
+ - test/cassettes/core/session/i_validate/returns_true_if_session_is_still_valid.yml
291
+ - test/cassettes/core/session/i_xxx_service/returns_an_instance_of_the_indicated_service.yml
292
+ - test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_no_parameters_are_provided.yml
293
+ - test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_parameters_are_invalid.yml
294
+ - test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_parameters_are_valid.yml
295
+ - test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_body.yml
296
+ - test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_body_.yml
297
+ - test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_headers.yml
298
+ - test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_headers_.yml
299
+ - test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_url.yml
300
+ - test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_url_.yml
301
+ - test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_params_are_invalid.yml
302
+ - test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_params_are_valid.yml
303
+ - test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_provided_with_invalid_params.yml
304
+ - test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_parameters_are_invalid.yml
305
+ - test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_parameters_are_valid.yml
306
+ - test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_provided_with_a_token.yml
307
+ - test/environment.yml.example
308
+ - test/environment.yml.travis-ci
309
+ - test/support/openstack_request_test_helper.rb
310
+ - test/support/test_base_class.rb
311
+ - test/support/test_environment.rb
312
+ - test/support/test_reporter.rb
313
+ - test/support/vcr_setup.rb
314
+ - test/test_helper.rb
315
+ - tmp/.gitignore
316
+ homepage: https://github.com/relaxdiego/aviator
62
317
  licenses:
63
318
  - MIT
64
319
  post_install_message:
@@ -73,7 +328,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
73
328
  version: '0'
74
329
  segments:
75
330
  - 0
76
- hash: -138675876462647690
331
+ hash: -4283040040147461386
77
332
  required_rubygems_version: !ruby/object:Gem::Requirement
78
333
  none: false
79
334
  requirements:
@@ -82,11 +337,58 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
337
  version: '0'
83
338
  segments:
84
339
  - 0
85
- hash: -138675876462647690
340
+ hash: -4283040040147461386
86
341
  requirements: []
87
342
  rubyforge_project:
88
343
  rubygems_version: 1.8.25
89
344
  signing_key:
90
345
  specification_version: 3
91
346
  summary: Lightweight Ruby bindings for the OpenStack API
92
- test_files: []
347
+ test_files:
348
+ - test/aviator/core/request_test.rb
349
+ - test/aviator/core/service_test.rb
350
+ - test/aviator/core/session_test.rb
351
+ - test/aviator/openstack/compute/v2/public/list_images_test.rb
352
+ - test/aviator/openstack/identity/v2/admin/create_tenant_test.rb
353
+ - test/aviator/openstack/identity/v2/public/create_token_test.rb
354
+ - test/cassettes/core/service/i_default_session_data_/sets_the_service_s_default_session_data.yml
355
+ - test/cassettes/core/service/i_request/accepts_an_endpoint_type_option_for_selecting_a_specific_request.yml
356
+ - test/cassettes/core/service/i_request/can_find_the_correct_request_based_on_bootstrapped_session_data.yml
357
+ - test/cassettes/core/service/i_request/can_find_the_correct_request_based_on_non-bootstrapped_session_data.yml
358
+ - test/cassettes/core/service/i_request/can_find_the_correct_request_if_api_version_is_not_defined_but_can_be_inferred_from_host_uri.yml
359
+ - test/cassettes/core/service/i_request/uses_the_default_session_data_if_session_data_is_not_provided.yml
360
+ - test/cassettes/core/session/c_load/creates_a_new_instance_from_the_given_session_dump.yml
361
+ - test/cassettes/core/session/c_load/uses_the_loaded_auth_info_for_its_services.yml
362
+ - test/cassettes/core/session/c_new/directs_log_entries_to_the_given_log_file.yml
363
+ - test/cassettes/core/session/i_authenticate/authenticates_against_the_auth_service_indicated_in_the_config_file.yml
364
+ - test/cassettes/core/session/i_authenticate/authenticates_against_the_auth_service_using_the_credentials_in_the_given_block.yml
365
+ - test/cassettes/core/session/i_authenticate/raises_an_AuthenticationError_when_authentication_fails.yml
366
+ - test/cassettes/core/session/i_authenticate/updates_the_session_data_of_its_service_objects.yml
367
+ - test/cassettes/core/session/i_dump/serializes_the_session_data_for_caching.yml
368
+ - test/cassettes/core/session/i_validate/returns_false_if_session_is_no_longer_valid.yml
369
+ - test/cassettes/core/session/i_validate/returns_true_if_session_is_still_valid.yml
370
+ - test/cassettes/core/session/i_xxx_service/returns_an_instance_of_the_indicated_service.yml
371
+ - test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_no_parameters_are_provided.yml
372
+ - test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_parameters_are_invalid.yml
373
+ - test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_parameters_are_valid.yml
374
+ - test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_body.yml
375
+ - test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_body_.yml
376
+ - test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_headers.yml
377
+ - test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_headers_.yml
378
+ - test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_url.yml
379
+ - test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_url_.yml
380
+ - test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_params_are_invalid.yml
381
+ - test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_params_are_valid.yml
382
+ - test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_provided_with_invalid_params.yml
383
+ - test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_parameters_are_invalid.yml
384
+ - test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_parameters_are_valid.yml
385
+ - test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_provided_with_a_token.yml
386
+ - test/environment.yml.example
387
+ - test/environment.yml.travis-ci
388
+ - test/support/openstack_request_test_helper.rb
389
+ - test/support/test_base_class.rb
390
+ - test/support/test_environment.rb
391
+ - test/support/test_reporter.rb
392
+ - test/support/vcr_setup.rb
393
+ - test/test_helper.rb
394
+ has_rdoc: