Merge pull request #57 from relaxdiego/feature/28
Add ability to specify an alias for a given request param
This allows us to call params with the more familiar Ruby
case/capitalization. For instance, defining the following:
param :imageRef, alias: :image_ref
in a request file makes the following possible:
session.compute_service.request :create_server do |params|
params[:imageRef] = 'something'
end
session.compute_service.request :create_server do |params|
params.image_ref = 'something'
end
NOTE: At this point, params can only be called via method
calls and not via the [] accessor.
This commit is contained in:
@@ -53,7 +53,7 @@ module Aviator
|
||||
def links
|
||||
self.class.links
|
||||
end
|
||||
|
||||
|
||||
|
||||
def optional_params
|
||||
self.class.optional_params
|
||||
@@ -83,7 +83,7 @@ module Aviator
|
||||
def querystring?
|
||||
self.class.querystring?
|
||||
end
|
||||
|
||||
|
||||
|
||||
def url?
|
||||
self.class.url?
|
||||
@@ -121,18 +121,34 @@ module Aviator
|
||||
def headers?
|
||||
instance_methods.include? :headers
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
def links
|
||||
@links ||= []
|
||||
end
|
||||
|
||||
|
||||
def param_aliases
|
||||
@param_aliases ||= {}
|
||||
end
|
||||
|
||||
|
||||
def params_class
|
||||
all_params = required_params + optional_params
|
||||
all_params = required_params + optional_params
|
||||
param_aliases = self.param_aliases
|
||||
|
||||
if all_params.length > 0
|
||||
@params_class ||= Struct.new(*all_params)
|
||||
@params_class ||= Struct.new(*all_params) do
|
||||
param_aliases.each do |param_alias, param_name|
|
||||
define_method param_alias do
|
||||
self[param_name]
|
||||
end
|
||||
|
||||
define_method "#{ param_alias }=" do |value|
|
||||
self[param_name] = value
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@params_class
|
||||
@@ -147,12 +163,12 @@ module Aviator
|
||||
def querystring?
|
||||
instance_methods.include? :querystring
|
||||
end
|
||||
|
||||
|
||||
|
||||
def required_params
|
||||
@required_params ||= []
|
||||
end
|
||||
|
||||
|
||||
|
||||
def url?
|
||||
instance_methods.include? :url
|
||||
@@ -176,12 +192,16 @@ module Aviator
|
||||
self.class.send(attr_name)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
def param(param_name, opts={})
|
||||
opts = opts.with_indifferent_access
|
||||
list = (opts[:required] == false ? optional_params : required_params)
|
||||
list << param_name unless optional_params.include?(param_name)
|
||||
|
||||
if opts[:alias]
|
||||
self.param_aliases[opts[:alias]] = param_name
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -9,7 +9,7 @@ module Aviator
|
||||
|
||||
param :id, required: true
|
||||
param :name, required: true
|
||||
param :flavorRef, required: true
|
||||
param :flavorRef, required: true, alias: :flavor_ref
|
||||
|
||||
|
||||
def body
|
||||
|
||||
@@ -10,7 +10,7 @@ module Aviator
|
||||
link 'additional spec',
|
||||
'https://answers.launchpad.net/nova/+question/228462'
|
||||
|
||||
param :adminPass, required: true
|
||||
param :adminPass, required: true, alias: :admin_pass
|
||||
param :id, required: true
|
||||
|
||||
|
||||
|
||||
@@ -7,11 +7,11 @@ module Aviator
|
||||
link 'documentation',
|
||||
'http://docs.openstack.org/api/openstack-compute/2/content/CreateServers.html'
|
||||
|
||||
param :accessIPv4, required: false
|
||||
param :accessIPv6, required: false
|
||||
param :adminPass, required: false
|
||||
param :imageRef, required: true
|
||||
param :flavorRef, required: true
|
||||
param :accessIPv4, required: false, alias: :access_ipv4
|
||||
param :accessIPv6, required: false, alias: :access_ipv6
|
||||
param :adminPass, required: false, alias: :admin_pass
|
||||
param :imageRef, required: true, alias: :image_ref
|
||||
param :flavorRef, required: true, alias: :flavor_ref
|
||||
param :metadata, required: false
|
||||
param :name, required: true
|
||||
param :networks, required: false
|
||||
|
||||
@@ -12,7 +12,7 @@ module Aviator
|
||||
|
||||
|
||||
param :id, required: true
|
||||
param :networkID, required: false
|
||||
param :networkID, required: false, alias: :network_id
|
||||
|
||||
|
||||
def headers
|
||||
|
||||
@@ -8,8 +8,8 @@ module Aviator
|
||||
'http://docs.openstack.org/api/openstack-compute/2/content/List_Flavors-d1e4188.html'
|
||||
|
||||
param :details, required: false
|
||||
param :minDisk, required: false
|
||||
param :minRam, required: false
|
||||
param :minDisk, required: false, alias: :min_disk
|
||||
param :minRam, required: false, alias: :min_ram
|
||||
param :marker, required: false
|
||||
param :limit, required: false
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ module Aviator
|
||||
param :server, required: false
|
||||
param :name, required: false
|
||||
param :status, required: false
|
||||
param 'changes-since', required: false
|
||||
param 'changes-since', required: false, alias: :changes_since
|
||||
param :marker, required: false
|
||||
param :limit, required: false
|
||||
param :type, required: false
|
||||
|
||||
@@ -24,7 +24,7 @@ module Aviator
|
||||
param :marker, required: false
|
||||
param :server, required: false
|
||||
param :status, required: false
|
||||
param 'changes-since', required: false
|
||||
param 'changes-since', required: false, alias: :changes_since
|
||||
|
||||
|
||||
def headers
|
||||
|
||||
@@ -7,11 +7,11 @@ module Aviator
|
||||
link 'documentation',
|
||||
'http://docs.openstack.org/api/openstack-compute/2/content/Rebuild_Server-d1e3538.html'
|
||||
|
||||
param :accessIPv4, required: false
|
||||
param :accessIPv6, required: false
|
||||
param :adminPass, required: true
|
||||
param :accessIPv4, required: false, alias: :access_ipv4
|
||||
param :accessIPv6, required: false, alias: :access_ipv6
|
||||
param :adminPass, required: true, alias: :admin_pass
|
||||
param :id, required: true
|
||||
param :imageRef, required: true
|
||||
param :imageRef, required: true, alias: :image_ref
|
||||
param :metadata, required: false
|
||||
param :name, required: true
|
||||
param :personality, required: false
|
||||
|
||||
@@ -7,8 +7,8 @@ module Aviator
|
||||
link 'documentation',
|
||||
'http://docs.openstack.org/api/openstack-compute/2/content/ServerUpdate.html'
|
||||
|
||||
param :accessIPv4, required: false
|
||||
param :accessIPv6, required: false
|
||||
param :accessIPv4, required: false, alias: :access_ipv4
|
||||
param :accessIPv6, required: false, alias: :access_ipv6
|
||||
param :id, required: true
|
||||
param :name, required: false
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ module Aviator
|
||||
|
||||
param :email, required: false
|
||||
param :enabled, required: false
|
||||
param :tenantId, required: false
|
||||
param :tenantId, required: false, alias: :tenant_id
|
||||
|
||||
|
||||
def body
|
||||
|
||||
@@ -19,7 +19,7 @@ module Aviator
|
||||
param :password, required: false
|
||||
param :email, required: false
|
||||
param :enabled, required: false
|
||||
param :tenantId, required: false
|
||||
param :tenantId, required: false, alias: :tenant_id
|
||||
|
||||
|
||||
def body
|
||||
|
||||
@@ -14,9 +14,9 @@ module Aviator
|
||||
|
||||
param :username, required: false
|
||||
param :password, required: false
|
||||
param :tokenId, required: false
|
||||
param :tenantName, required: false
|
||||
param :tenantId, required: false
|
||||
param :tokenId, required: false, alias: :token_id
|
||||
param :tenantName, required: false, alias: :tenant_name
|
||||
param :tenantId, required: false, alias: :tenant_id
|
||||
|
||||
|
||||
def body
|
||||
|
||||
@@ -211,6 +211,38 @@ class Aviator::Test
|
||||
error.message.wont_be_nil
|
||||
error.message.must_include "private method"
|
||||
end
|
||||
|
||||
|
||||
it 'accepts an alias for a given parameter' do
|
||||
klass = Class.new(Aviator::Request) do
|
||||
param :the_param, required: true, alias: :the_alias
|
||||
end
|
||||
|
||||
param_val = 999
|
||||
|
||||
req = klass.new do |params|
|
||||
params.the_param = param_val
|
||||
end
|
||||
|
||||
req.params.the_param.must_equal param_val
|
||||
req.params.the_alias.must_equal param_val
|
||||
end
|
||||
|
||||
|
||||
it 'makes the param alias assignable' do
|
||||
klass = Class.new(Aviator::Request) do
|
||||
param :the_param, required: true, alias: :the_alias
|
||||
end
|
||||
|
||||
param_val = 999
|
||||
|
||||
req = klass.new do |params|
|
||||
params.the_alias = param_val
|
||||
end
|
||||
|
||||
req.params.the_param.must_equal param_val
|
||||
req.params.the_alias.must_equal param_val
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -117,6 +117,15 @@ class Aviator::Test
|
||||
:flavorRef
|
||||
]
|
||||
end
|
||||
|
||||
|
||||
validate_attr :param_aliases do
|
||||
aliases = {
|
||||
flavor_ref: :flavorRef
|
||||
}
|
||||
|
||||
klass.param_aliases.must_equal aliases
|
||||
end
|
||||
|
||||
|
||||
validate_attr :url do
|
||||
|
||||
@@ -93,6 +93,15 @@ class Aviator::Test
|
||||
end
|
||||
|
||||
|
||||
validate_attr :param_aliases do
|
||||
aliases = {
|
||||
admin_pass: :adminPass
|
||||
}
|
||||
|
||||
klass.param_aliases.must_equal aliases
|
||||
end
|
||||
|
||||
|
||||
validate_attr :url do
|
||||
service_spec = get_session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
|
||||
server_id = '105b09f0b6500d36168480ad84'
|
||||
|
||||
@@ -119,7 +119,20 @@ class Aviator::Test
|
||||
|
||||
request.url.must_equal url
|
||||
end
|
||||
|
||||
|
||||
|
||||
validate_attr :param_aliases do
|
||||
aliases = {
|
||||
access_ipv4: :accessIPv4,
|
||||
access_ipv6: :accessIPv6,
|
||||
admin_pass: :adminPass,
|
||||
image_ref: :imageRef,
|
||||
flavor_ref: :flavorRef
|
||||
}
|
||||
|
||||
klass.param_aliases.must_equal aliases
|
||||
end
|
||||
|
||||
|
||||
validate_response 'parameters are provided' do
|
||||
image_id = session.compute_service.request(:list_images).body[:images].first[:id]
|
||||
|
||||
@@ -108,6 +108,15 @@ class Aviator::Test
|
||||
end
|
||||
|
||||
|
||||
validate_attr :param_aliases do
|
||||
aliases = {
|
||||
network_id: :networkID
|
||||
}
|
||||
|
||||
klass.param_aliases.must_equal aliases
|
||||
end
|
||||
|
||||
|
||||
validate_response 'a valid server id is provided' do
|
||||
server_id = session.compute_service.request(:list_servers).body[:servers].first[:id]
|
||||
|
||||
|
||||
@@ -17,11 +17,11 @@ class Aviator::Test
|
||||
)
|
||||
@session.authenticate
|
||||
end
|
||||
|
||||
|
||||
@session
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
def get_session_data
|
||||
session.send :auth_info
|
||||
end
|
||||
@@ -40,38 +40,38 @@ class Aviator::Test
|
||||
validate_attr :anonymous? do
|
||||
klass.anonymous?.must_equal false
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :api_version do
|
||||
klass.api_version.must_equal :v2
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :body do
|
||||
klass.body?.must_equal false
|
||||
klass.body?.must_equal false
|
||||
create_request.body?.must_equal false
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :endpoint_type do
|
||||
klass.endpoint_type.must_equal :public
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :headers do
|
||||
headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
|
||||
|
||||
|
||||
request = create_request(get_session_data)
|
||||
|
||||
|
||||
request.headers.must_equal headers
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :http_method do
|
||||
create_request.http_method.must_equal :get
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :optional_params do
|
||||
klass.optional_params.must_equal [
|
||||
:details,
|
||||
@@ -81,17 +81,17 @@ class Aviator::Test
|
||||
:limit
|
||||
]
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :required_params do
|
||||
klass.required_params.must_equal []
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :url do
|
||||
service_spec = get_session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
|
||||
url = "#{ service_spec[:endpoints][0][:publicURL] }/flavors"
|
||||
|
||||
|
||||
params = [
|
||||
[ :details, true ],
|
||||
[ :minDisk, 2 ],
|
||||
@@ -99,61 +99,71 @@ class Aviator::Test
|
||||
[ :marker, '123456' ],
|
||||
[ :limit, 10 ]
|
||||
]
|
||||
|
||||
|
||||
url += "/detail" if params.find{|pair| pair[0] == :details && pair[1] == true }
|
||||
|
||||
|
||||
filters = []
|
||||
|
||||
|
||||
params.select{|pair| pair[0]!=:details }.each{ |pair| filters << "#{ pair[0] }=#{ pair[1] }" }
|
||||
|
||||
|
||||
url += "?#{ filters.join('&') }" unless filters.empty?
|
||||
|
||||
|
||||
request = klass.new(get_session_data) do |p|
|
||||
params.each { |pair| p[pair[0]] = pair[1] }
|
||||
end
|
||||
|
||||
|
||||
request.url.must_equal url
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :param_aliases do
|
||||
aliases = {
|
||||
min_disk: :minDisk,
|
||||
min_ram: :minRam
|
||||
}
|
||||
|
||||
klass.param_aliases.must_equal aliases
|
||||
end
|
||||
|
||||
|
||||
validate_response 'no parameters are provided' do
|
||||
response = session.compute_service.request :list_flavors
|
||||
|
||||
|
||||
response.status.must_equal 200
|
||||
response.body.wont_be_nil
|
||||
response.headers.wont_be_nil
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_response 'the details filter is provided' do
|
||||
response = session.compute_service.request :list_flavors do |params|
|
||||
params[:details] = true
|
||||
end
|
||||
|
||||
|
||||
response.status.must_equal 200
|
||||
response.body.wont_be_nil
|
||||
response.body[:flavors].length.wont_equal 0
|
||||
response.headers.wont_be_nil
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
validate_response 'the minDisk filter is provided' do
|
||||
response = session.compute_service.request :list_flavors do |params|
|
||||
params[:details] = true
|
||||
end
|
||||
|
||||
|
||||
max_disk_size = response.body[:flavors].max{|a,b| a[:disk] <=> b[:disk] }[:disk]
|
||||
total_entries = response.body[:flavors].count{|flv| flv[:disk] == max_disk_size }
|
||||
|
||||
|
||||
response = session.compute_service.request :list_flavors do |params|
|
||||
params[:minDisk] = max_disk_size
|
||||
end
|
||||
|
||||
|
||||
response.status.must_equal 200
|
||||
response.body.wont_be_nil
|
||||
response.body[:flavors].length.must_equal total_entries
|
||||
response.headers.wont_be_nil
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -14,14 +14,14 @@ class Aviator::Test
|
||||
provider: 'openstack',
|
||||
service: 'identity'
|
||||
)
|
||||
|
||||
|
||||
bootstrap = RequestHelper.admin_bootstrap_session_data
|
||||
|
||||
|
||||
response = service.request :create_token, session_data: bootstrap do |params|
|
||||
auth_credentials = Environment.openstack_admin[:auth_credentials]
|
||||
auth_credentials.each { |key, value| params[key] = auth_credentials[key] }
|
||||
end
|
||||
|
||||
|
||||
response.body
|
||||
end
|
||||
|
||||
@@ -39,35 +39,35 @@ class Aviator::Test
|
||||
validate_attr :anonymous? do
|
||||
klass.anonymous?.must_equal false
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :api_version do
|
||||
klass.api_version.must_equal :v2
|
||||
end
|
||||
|
||||
|
||||
validate_attr :body do
|
||||
klass.body?.must_equal false
|
||||
klass.body?.must_equal false
|
||||
create_request.body?.must_equal false
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :endpoint_type do
|
||||
klass.endpoint_type.must_equal :public
|
||||
end
|
||||
|
||||
|
||||
|
||||
validate_attr :headers do
|
||||
session_data = new_session_data
|
||||
|
||||
|
||||
headers = { 'X-Auth-Token' => session_data[:access][:token][:id] }
|
||||
|
||||
request = create_request(session_data)
|
||||
|
||||
request.headers.must_equal headers
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :http_method do
|
||||
create_request.http_method.must_equal :get
|
||||
end
|
||||
@@ -96,81 +96,90 @@ class Aviator::Test
|
||||
session_data = new_session_data
|
||||
service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
|
||||
url = "#{ service_spec[:endpoints][0][:publicURL] }/images"
|
||||
|
||||
|
||||
params = [
|
||||
[ :details, true ],
|
||||
[ :name, 'cirros-0.3.1-x86_64-uec-ramdisk' ],
|
||||
[ :status, 'ACTIVE' ],
|
||||
[ :type, 'application/vnd.openstack.image' ]
|
||||
]
|
||||
|
||||
|
||||
url += "/detail" if params.first[1]
|
||||
|
||||
|
||||
filters = []
|
||||
|
||||
|
||||
params[1, params.length-1].each { |pair| filters << "#{ pair[0] }=#{ pair[1] }" }
|
||||
|
||||
|
||||
url += "?#{ filters.join('&') }" unless filters.empty?
|
||||
|
||||
|
||||
request = klass.new(session_data) do |p|
|
||||
params.each { |pair| p[pair[0]] = pair[1] }
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
request.url.must_equal url
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :param_aliases do
|
||||
aliases = {
|
||||
changes_since: 'changes-since'
|
||||
}
|
||||
|
||||
klass.param_aliases.must_equal aliases
|
||||
end
|
||||
|
||||
|
||||
validate_response 'no parameters are provided' do
|
||||
service = Aviator::Service.new(
|
||||
provider: 'openstack',
|
||||
service: 'compute',
|
||||
default_session_data: new_session_data
|
||||
)
|
||||
|
||||
|
||||
response = service.request :list_images
|
||||
|
||||
|
||||
response.status.must_equal 200
|
||||
response.body.wont_be_nil
|
||||
response.headers.wont_be_nil
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_response 'parameters are invalid' do
|
||||
service = Aviator::Service.new(
|
||||
provider: 'openstack',
|
||||
service: 'compute',
|
||||
default_session_data: new_session_data
|
||||
)
|
||||
|
||||
|
||||
response = service.request :list_images do |params|
|
||||
params[:name] = "nonexistentimagenameherpderp"
|
||||
end
|
||||
|
||||
|
||||
response.status.must_equal 200
|
||||
response.body.wont_be_nil
|
||||
response.body[:images].length.must_equal 0
|
||||
response.headers.wont_be_nil
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_response 'parameters are valid' do
|
||||
service = Aviator::Service.new(
|
||||
provider: 'openstack',
|
||||
service: 'compute',
|
||||
default_session_data: new_session_data
|
||||
)
|
||||
|
||||
|
||||
response = service.request :list_images do |params|
|
||||
params[:details] = true
|
||||
params[:name] = "cirros-0.3.1-x86_64-uec"
|
||||
end
|
||||
|
||||
|
||||
response.status.must_equal 200
|
||||
response.body.wont_be_nil
|
||||
response.body[:images].length.must_equal 1
|
||||
response.headers.wont_be_nil
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -136,6 +136,15 @@ class Aviator::Test
|
||||
end
|
||||
|
||||
|
||||
validate_attr :param_aliases do
|
||||
aliases = {
|
||||
changes_since: 'changes-since'
|
||||
}
|
||||
|
||||
klass.param_aliases.must_equal aliases
|
||||
end
|
||||
|
||||
|
||||
validate_response 'no parameters are provided' do
|
||||
service = Aviator::Service.new(
|
||||
provider: 'openstack',
|
||||
|
||||
@@ -118,6 +118,18 @@ class Aviator::Test
|
||||
end
|
||||
|
||||
|
||||
validate_attr :param_aliases do
|
||||
aliases = {
|
||||
access_ipv4: :accessIPv4,
|
||||
access_ipv6: :accessIPv6,
|
||||
admin_pass: :adminPass,
|
||||
image_ref: :imageRef
|
||||
}
|
||||
|
||||
klass.param_aliases.must_equal aliases
|
||||
end
|
||||
|
||||
|
||||
validate_response 'valid params are provided' do
|
||||
server = session.compute_service.request(:list_servers).body[:servers].first
|
||||
server_id = server[:id]
|
||||
|
||||
@@ -107,6 +107,16 @@ class Aviator::Test
|
||||
end
|
||||
|
||||
|
||||
validate_attr :param_aliases do
|
||||
aliases = {
|
||||
access_ipv4: :accessIPv4,
|
||||
access_ipv6: :accessIPv6
|
||||
}
|
||||
|
||||
klass.param_aliases.must_equal aliases
|
||||
end
|
||||
|
||||
|
||||
validate_response 'valid server id is provided' do
|
||||
server = session.compute_service.request(:list_servers).body[:servers].first
|
||||
server_id = server[:id]
|
||||
|
||||
@@ -119,6 +119,15 @@ class Aviator::Test
|
||||
end
|
||||
|
||||
|
||||
validate_attr :param_aliases do
|
||||
aliases = {
|
||||
tenant_id: :tenantId
|
||||
}
|
||||
|
||||
klass.param_aliases.must_equal aliases
|
||||
end
|
||||
|
||||
|
||||
validate_response 'invalid param is provided' do
|
||||
service = session.identity_service
|
||||
|
||||
|
||||
@@ -105,6 +105,15 @@ class Aviator::Test
|
||||
end
|
||||
|
||||
|
||||
validate_attr :param_aliases do
|
||||
aliases = {
|
||||
tenant_id: :tenantId
|
||||
}
|
||||
|
||||
klass.param_aliases.must_equal aliases
|
||||
end
|
||||
|
||||
|
||||
validate_response 'valid user id is provided' do
|
||||
# must be hardcoded so as not to inadvertently alter random resources
|
||||
# in case the corresponding cassette is deleted
|
||||
|
||||
@@ -78,20 +78,31 @@ class Aviator::Test
|
||||
|
||||
create_request.url.must_equal url
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
validate_attr :url, 'when the host uri contains the api version' do
|
||||
host_uri = 'http://x.y.z:5000/v2.0'
|
||||
|
||||
|
||||
request = klass.new({ auth_service: { host_uri: host_uri } }) do |params|
|
||||
params[:username] = Environment.openstack_admin[:auth_credentials][:username]
|
||||
params[:password] = Environment.openstack_admin[:auth_credentials][:password]
|
||||
end
|
||||
|
||||
|
||||
request.url.must_equal "#{ host_uri }/tokens"
|
||||
end
|
||||
|
||||
|
||||
validate_attr :param_aliases do
|
||||
aliases = {
|
||||
token_id: :tokenId,
|
||||
tenant_name: :tenantName,
|
||||
tenant_id: :tenantId
|
||||
}
|
||||
|
||||
klass.param_aliases.must_equal aliases
|
||||
end
|
||||
|
||||
|
||||
validate_response 'parameters are invalid' do
|
||||
service = Aviator::Service.new(
|
||||
provider: 'openstack',
|
||||
|
||||
Reference in New Issue
Block a user