test/yao/resources/test_flavor.rb in yao-0.15.0 vs test/yao/resources/test_flavor.rb in yao-0.16.0
- old
+ new
@@ -44,57 +44,91 @@
assert_equal(512, flavor.ram('M'))
assert_equal(0.5, flavor.ram('G'))
assert_equal(512, flavor.memory)
end
- def test_list
- stub = stub_request(:get, "https://example.com:12345/flavors/detail").
+ def flavor_detail
+ JSON.parse(<<~JSON)
+ {
+ "OS-FLV-DISABLED:disabled": false,
+ "disk": 20,
+ "OS-FLV-EXT-DATA:ephemeral": 0,
+ "os-flavor-access:is_public": true,
+ "id": "7",
+ "links": [
+ {
+ "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/7",
+ "rel": "self"
+ },
+ {
+ "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/7",
+ "rel": "bookmark"
+ }
+ ],
+ "name": "m1.small.description",
+ "ram": 2048,
+ "swap": 0,
+ "vcpus": 1,
+ "rxtx_factor": 1.0,
+ "description": "test description",
+ "extra_specs": {
+ "hw:cpu_policy": "shared",
+ "hw:numa_nodes": "1"
+ }
+ }
+ JSON
+ end
+
+ def stub_flavors_detail(query=nil)
+ url = ['https://example.com:12345/flavors/detail',query].compact.join('?')
+ stub_request(:get, url).
to_return(
status: 200,
- body: <<-JSON,
- {
- "flavors": [
- {
- "OS-FLV-DISABLED:disabled": false,
- "disk": 1,
- "OS-FLV-EXT-DATA:ephemeral": 0,
- "os-flavor-access:is_public": true,
- "id": "1",
- "links": [
- {
- "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/1",
- "rel": "self"
- },
- {
- "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1",
- "rel": "bookmark"
- }
- ],
- "name": "m1.tiny",
- "ram": 512,
- "swap": "",
- "vcpus": 1,
- "rxtx_factor": 1.0,
- "description": null,
- "extra_specs": {}
- }
- ]
- }
- JSON
+ body: { flavors:[flavor_detail] }.to_json,
headers: {'Content-Type' => 'application/json'}
)
+ end
+ def stub_flavor(id)
+ stub_request(:get, "https://example.com:12345/flavors/#{id}").
+ to_return(
+ status: 200,
+ body: { 'flavor': flavor_detail }.to_json,
+ headers: {'Content-Type' => 'application/json'}
+ )
+ end
+
+ def test_list
+ stub = stub_flavors_detail
assert(Yao::Flavor.resources_detail_available)
flavors = Yao::Flavor.list
assert_instance_of(Yao::Flavor, flavors.first)
- assert_equal("m1.tiny", flavors.first.name)
+ assert_equal("m1.small.description", flavors.first.name)
assert_requested(stub)
end
def test_list_detail
# Yao::Flavor.list_detail と Yao::Flavor.list が alias にあることをテストする
# see also: https://stackoverflow.com/questions/25883618/how-to-test-method-alias-ruby
assert_equal(Yao::Flavor.method(:list), Yao::Flavor.method(:list_detail))
+ end
+
+ def test_get_by_id
+ stub = stub_flavor(7)
+ flavor = Yao::Flavor.get('7')
+ assert_equal('m1.small.description', flavor.name)
+ assert_requested(stub)
+ end
+
+ def test_get_by_name
+ stub = stub_request(:get, "https://example.com:12345/flavors/m1.small.description").to_return(status: 404)
+ stub2 = stub_flavors_detail
+ stub3 = stub_flavor(7)
+ flavor = Yao::Flavor.get('m1.small.description')
+ assert_equal('7', flavor.id)
+ assert_requested(stub)
+ assert_requested(stub2)
+ assert_requested(stub3)
end
end