Skip to content

Commit 6f4ff95

Browse files
committed
Fix up flavor related unit tests
1 parent 49d2b74 commit 6f4ff95

File tree

3 files changed

+29
-5
lines changed

3 files changed

+29
-5
lines changed

os_capacity/data/flavors.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,15 @@
2222
def get_all(compute_client, include_extra_specs=True):
2323
response = compute_client.get('/flavors/detail').json()
2424
raw_flavors = response['flavors']
25+
26+
extra_specs = {}
2527
if include_extra_specs:
2628
for flavor in raw_flavors:
2729
url = '/flavors/%s/os-extra_specs' % flavor['id']
2830
response = compute_client.get(url).json()
29-
flavor['extra_specs'] = response['extra_specs']
31+
extra_specs[flavor['id']] = response['extra_specs']
32+
3033
return [Flavor(f['id'], f['name'], f['vcpus'], f['ram'],
3134
(f['disk'] + f['OS-FLV-EXT-DATA:ephemeral']),
32-
f.get('extra_specs'))
35+
extra_specs.get(f['id']))
3336
for f in raw_flavors]

os_capacity/tests/unit/fakes.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
}
3434
FLAVOR_RESPONSE = {'flavors': [FLAVOR]}
3535

36+
FLAVOR_EXTRA_RESPONSE = {'extra_specs': {"example_key": "example_value"}}
37+
3638
RESOURCE_PROVIDER = {
3739
'generation': 6,
3840
'name': 'name1',

os_capacity/tests/unit/test_data.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,35 @@
2424

2525
class TestFlavor(unittest.TestCase):
2626

27-
def test_get_all(self):
27+
def test_get_all_no_extra_specs(self):
2828
fake_response = mock.MagicMock()
2929
fake_response.json.return_value = fakes.FLAVOR_RESPONSE
3030
compute_client = mock.MagicMock()
3131
compute_client.get.return_value = fake_response
3232

33-
result = flavors.get_all(compute_client)
33+
result = flavors.get_all(compute_client, False)
3434

3535
compute_client.get.assert_called_once_with("/flavors/detail")
36-
expected_flavors = [(fakes.FLAVOR['id'], 'compute-GPU', 8, 2048, 30)]
36+
expected_flavors = [flavors.Flavor(fakes.FLAVOR['id'], 'compute-GPU',
37+
8, 2048, 30, None)]
38+
self.assertEqual(expected_flavors, result)
39+
40+
def test_get_all(self):
41+
fake_response1 = mock.MagicMock()
42+
fake_response1.json.return_value = fakes.FLAVOR_RESPONSE
43+
fake_response2 = mock.MagicMock()
44+
fake_response2.json.return_value = fakes.FLAVOR_EXTRA_RESPONSE
45+
compute_client = mock.MagicMock()
46+
compute_client.get.side_effect = [fake_response1, fake_response2]
47+
48+
result = flavors.get_all(compute_client)
49+
50+
compute_client.get.assert_has_calls([
51+
mock.call("/flavors/detail"),
52+
mock.call("/flavors/%s/os-extra_specs" % fakes.FLAVOR['id'])])
53+
expected_flavors = [flavors.Flavor(fakes.FLAVOR['id'], 'compute-GPU',
54+
8, 2048, 30,
55+
{'example_key': 'example_value'})]
3756
self.assertEqual(expected_flavors, result)
3857

3958

0 commit comments

Comments
 (0)