/usr/lib/python2.6/site-packages/novaclient/tests/unit/v2
NameSizeModeActions
contrib/-0755rm
fakes.py855770644editdlrm
fakes.pyc899350644editdlrm
testfile.txt50644editdlrm
test_agents.py39940644editdlrm
test_agents.pyc40190644editdlrm
test_aggregates.py57570644editdlrm
test_aggregates.pyc57000644editdlrm
test_auth.py142960644editdlrm
test_auth.pyc130670644editdlrm
test_availability_zone.py39130644editdlrm
test_availability_zone.pyc41270644editdlrm
test_certs.py13800644editdlrm
test_certs.pyc15490644editdlrm
test_client.py15340644editdlrm
test_client.pyc14920644editdlrm
test_cloudpipe.py17570644editdlrm
test_cloudpipe.pyc20760644editdlrm
test_fixed_ips.py17850644editdlrm
test_fixed_ips.pyc20830644editdlrm
test_flavors.py89190644editdlrm
test_flavors.pyc109880644editdlrm
test_flavor_access.py23810644editdlrm
test_flavor_access.pyc28280644editdlrm
test_floating_ips.py22750644editdlrm
test_floating_ips.pyc27200644editdlrm
test_floating_ips_bulk.py30940644editdlrm
test_floating_ips_bulk.pyc34660644editdlrm
test_floating_ip_dns.py35290644editdlrm
test_floating_ip_dns.pyc43130644editdlrm
test_floating_ip_pools.py12370644editdlrm
test_floating_ip_pools.pyc12300644editdlrm
test_fping.py22420644editdlrm
test_fping.pyc30200644editdlrm
test_hosts.py31440644editdlrm
test_hosts.pyc44450644editdlrm
test_hypervisors.py61710644editdlrm
test_hypervisors.pyc59140644editdlrm
test_images.py25510644editdlrm
test_images.pyc37130644editdlrm
test_keypairs.py39410644editdlrm
test_keypairs.pyc53570644editdlrm
test_limits.py31600644editdlrm
test_limits.pyc30660644editdlrm
test_networks.py40360644editdlrm
test_networks.pyc52570644editdlrm
test_quotas.py22920644editdlrm
test_quotas.pyc28760644editdlrm
test_quota_classes.py14210644editdlrm
test_quota_classes.pyc17130644editdlrm
test_security_groups.py31350644editdlrm
test_security_groups.pyc41160644editdlrm
test_security_group_rules.py35730644editdlrm
test_security_group_rules.pyc36530644editdlrm
test_servers.py310140644editdlrm
test_servers.pyc367560644editdlrm
test_server_groups.py27690644editdlrm
test_server_groups.pyc32400644editdlrm
test_server_migrations.py34330644editdlrm
test_server_migrations.pyc47070644editdlrm
test_services.py51260644editdlrm
test_services.pyc66430644editdlrm
test_shell.py1108870644editdlrm
test_shell.pyc1379010644editdlrm
test_usage.py19030644editdlrm
test_usage.pyc25780644editdlrm
test_versions.py36490644editdlrm
test_versions.pyc37700644editdlrm
test_volumes.py40210644editdlrm
test_volumes.pyc51360644editdlrm
__init__.py00644editdlrm
__init__.pyc1630644editdlrm
Edit: /usr/lib/python2.6/site-packages/novaclient/tests/unit/v2/test_flavors.py (8919B)
# Copyright (c) 2013, OpenStack # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. import mock from novaclient import exceptions from novaclient.tests.unit import utils from novaclient.tests.unit.v2 import fakes from novaclient.v2 import flavors class FlavorsTest(utils.TestCase): def setUp(self): super(FlavorsTest, self).setUp() self.cs = self._get_fake_client() self.flavor_type = self._get_flavor_type() def _get_fake_client(self): return fakes.FakeClient() def _get_flavor_type(self): return flavors.Flavor def test_list_flavors(self): fl = self.cs.flavors.list() self.cs.assert_called('GET', '/flavors/detail') for flavor in fl: self.assertIsInstance(flavor, self.flavor_type) def test_list_flavors_undetailed(self): fl = self.cs.flavors.list(detailed=False) self.cs.assert_called('GET', '/flavors') for flavor in fl: self.assertIsInstance(flavor, self.flavor_type) def test_list_flavors_with_marker_limit(self): self.cs.flavors.list(marker=1234, limit=4) self.cs.assert_called('GET', '/flavors/detail?limit=4&marker=1234') def test_list_flavors_is_public_none(self): fl = self.cs.flavors.list(is_public=None) self.cs.assert_called('GET', '/flavors/detail?is_public=None') for flavor in fl: self.assertIsInstance(flavor, self.flavor_type) def test_list_flavors_is_public_false(self): fl = self.cs.flavors.list(is_public=False) self.cs.assert_called('GET', '/flavors/detail?is_public=False') for flavor in fl: self.assertIsInstance(flavor, self.flavor_type) def test_list_flavors_is_public_true(self): fl = self.cs.flavors.list(is_public=True) self.cs.assert_called('GET', '/flavors/detail') for flavor in fl: self.assertIsInstance(flavor, self.flavor_type) def test_get_flavor_details(self): f = self.cs.flavors.get(1) self.cs.assert_called('GET', '/flavors/1') self.assertIsInstance(f, self.flavor_type) self.assertEqual(256, f.ram) self.assertEqual(10, f.disk) self.assertEqual(10, f.ephemeral) self.assertTrue(f.is_public) def test_get_flavor_details_alphanum_id(self): f = self.cs.flavors.get('aa1') self.cs.assert_called('GET', '/flavors/aa1') self.assertIsInstance(f, self.flavor_type) self.assertEqual(128, f.ram) self.assertEqual(0, f.disk) self.assertEqual(0, f.ephemeral) self.assertTrue(f.is_public) def test_get_flavor_details_diablo(self): f = self.cs.flavors.get(3) self.cs.assert_called('GET', '/flavors/3') self.assertIsInstance(f, self.flavor_type) self.assertEqual(256, f.ram) self.assertEqual(10, f.disk) self.assertEqual('N/A', f.ephemeral) self.assertEqual('N/A', f.is_public) def test_find(self): f = self.cs.flavors.find(ram=256) self.cs.assert_called('GET', '/flavors/detail') self.assertEqual('256 MB Server', f.name) f = self.cs.flavors.find(disk=0) self.assertEqual('128 MB Server', f.name) self.assertRaises(exceptions.NotFound, self.cs.flavors.find, disk=12345) def _create_body(self, name, ram, vcpus, disk, ephemeral, id, swap, rxtx_factor, is_public): return { "flavor": { "name": name, "ram": ram, "vcpus": vcpus, "disk": disk, "OS-FLV-EXT-DATA:ephemeral": ephemeral, "id": id, "swap": swap, "rxtx_factor": rxtx_factor, "os-flavor-access:is_public": is_public, } } def test_create(self): f = self.cs.flavors.create("flavorcreate", 512, 1, 10, 1234, ephemeral=10, is_public=False) body = self._create_body("flavorcreate", 512, 1, 10, 10, 1234, 0, 1.0, False) self.cs.assert_called('POST', '/flavors', body) self.assertIsInstance(f, self.flavor_type) def test_create_with_id_as_string(self): flavor_id = 'foobar' f = self.cs.flavors.create("flavorcreate", 512, 1, 10, flavor_id, ephemeral=10, is_public=False) body = self._create_body("flavorcreate", 512, 1, 10, 10, flavor_id, 0, 1.0, False) self.cs.assert_called('POST', '/flavors', body) self.assertIsInstance(f, self.flavor_type) def test_create_ephemeral_ispublic_defaults(self): f = self.cs.flavors.create("flavorcreate", 512, 1, 10, 1234) body = self._create_body("flavorcreate", 512, 1, 10, 0, 1234, 0, 1.0, True) self.cs.assert_called('POST', '/flavors', body) self.assertIsInstance(f, self.flavor_type) def test_invalid_parameters_create(self): self.assertRaises(exceptions.CommandError, self.cs.flavors.create, "flavorcreate", "invalid", 1, 10, 1234, swap=0, ephemeral=0, rxtx_factor=1.0, is_public=True) self.assertRaises(exceptions.CommandError, self.cs.flavors.create, "flavorcreate", 512, "invalid", 10, 1234, swap=0, ephemeral=0, rxtx_factor=1.0, is_public=True) self.assertRaises(exceptions.CommandError, self.cs.flavors.create, "flavorcreate", 512, 1, "invalid", 1234, swap=0, ephemeral=0, rxtx_factor=1.0, is_public=True) self.assertRaises(exceptions.CommandError, self.cs.flavors.create, "flavorcreate", 512, 1, 10, 1234, swap="invalid", ephemeral=0, rxtx_factor=1.0, is_public=True) self.assertRaises(exceptions.CommandError, self.cs.flavors.create, "flavorcreate", 512, 1, 10, 1234, swap=0, ephemeral="invalid", rxtx_factor=1.0, is_public=True) self.assertRaises(exceptions.CommandError, self.cs.flavors.create, "flavorcreate", 512, 1, 10, 1234, swap=0, ephemeral=0, rxtx_factor="invalid", is_public=True) self.assertRaises(exceptions.CommandError, self.cs.flavors.create, "flavorcreate", 512, 1, 10, 1234, swap=0, ephemeral=0, rxtx_factor=1.0, is_public='invalid') def test_delete(self): self.cs.flavors.delete("flavordelete") self.cs.assert_called('DELETE', '/flavors/flavordelete') def test_delete_with_flavor_instance(self): f = self.cs.flavors.get(2) self.cs.flavors.delete(f) self.cs.assert_called('DELETE', '/flavors/2') def test_delete_with_flavor_instance_method(self): f = self.cs.flavors.get(2) f.delete() self.cs.assert_called('DELETE', '/flavors/2') def test_set_keys(self): f = self.cs.flavors.get(1) f.set_keys({'k1': 'v1'}) self.cs.assert_called('POST', '/flavors/1/os-extra_specs', {"extra_specs": {'k1': 'v1'}}) def test_set_with_valid_keys(self): valid_keys = ['key4', 'month.price', 'I-Am:AK-ey.44-', 'key with spaces and _'] f = self.cs.flavors.get(4) for key in valid_keys: f.set_keys({key: 'v4'}) self.cs.assert_called('POST', '/flavors/4/os-extra_specs', {"extra_specs": {key: 'v4'}}) def test_set_with_invalid_keys(self): invalid_keys = ['/1', '?1', '%1', '<', '>'] f = self.cs.flavors.get(1) for key in invalid_keys: self.assertRaises(exceptions.CommandError, f.set_keys, {key: 'v1'}) @mock.patch.object(flavors.FlavorManager, '_delete') def test_unset_keys(self, mock_delete): f = self.cs.flavors.get(1) keys = ['k1', 'k2'] f.unset_keys(keys) mock_delete.assert_has_calls([ mock.call("/flavors/1/os-extra_specs/k1"), mock.call("/flavors/1/os-extra_specs/k2") ])