Skip to content
This repository was archived by the owner on Nov 19, 2018. It is now read-only.

Commit b4edbd5

Browse files
author
Tang Chen
committed
Add unit test for "flavor show" command
Change-Id: I1591649e5b97a885707042fcccad3335ee8c7aec
1 parent 5a978b9 commit b4edbd5

2 files changed

Lines changed: 89 additions & 10 deletions

File tree

openstackclient/tests/compute/v2/fakes.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,13 +404,25 @@ def create_one_flavor(attrs={}):
404404
'name': 'flavor-name-' + uuid.uuid4().hex,
405405
'ram': 8192,
406406
'vcpus': 4,
407+
'disk': 128,
408+
'swap': '',
409+
'rxtx_factor': '1.0',
410+
'OS-FLV-DISABLED:disabled': False,
411+
'os-flavor-access:is_public': True,
412+
'OS-FLV-EXT-DATA:ephemeral': 0,
407413
}
408414

409415
# Overwrite default attributes.
410416
flavor_info.update(attrs)
411417

412418
flavor = FakeFlavorResource(info=copy.deepcopy(flavor_info),
413419
loaded=True)
420+
421+
# Set attributes with special mappings in nova client.
422+
flavor.disabled = flavor_info['OS-FLV-DISABLED:disabled']
423+
flavor.is_public = flavor_info['os-flavor-access:is_public']
424+
flavor.ephemeral = flavor_info['OS-FLV-EXT-DATA:ephemeral']
425+
414426
return flavor
415427

416428
@staticmethod

openstackclient/tests/compute/v2/test_flavor.py

Lines changed: 77 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@
1414
#
1515

1616
from openstackclient.common import exceptions
17+
from openstackclient.common import utils
1718
from openstackclient.compute.v2 import flavor
1819
from openstackclient.tests.compute.v2 import fakes as compute_fakes
20+
from openstackclient.tests import utils as tests_utils
1921

2022

2123
class TestFlavor(compute_fakes.TestComputev2):
@@ -97,15 +99,15 @@ class TestFlavorList(TestFlavor):
9799
flavors[0].id,
98100
flavors[0].name,
99101
flavors[0].ram,
100-
'',
101-
'',
102+
flavors[0].disk,
103+
flavors[0].ephemeral,
102104
flavors[0].vcpus,
103-
''
105+
flavors[0].is_public,
104106
), )
105107
data_long = (data[0] + (
106-
'',
107-
'',
108-
'property=\'value\''
108+
flavors[0].swap,
109+
flavors[0].rxtx_factor,
110+
u'property=\'value\''
109111
), )
110112

111113
def setUp(self):
@@ -290,8 +292,73 @@ def test_flavor_set(self):
290292

291293
self.flavors_mock.find.assert_called_with(name='baremetal')
292294

293-
self.assertEqual('properties', columns[2])
294-
self.assertIn('FOO=\'"B A R"\'', data[2])
295+
self.assertEqual('properties', columns[6])
296+
self.assertIn('FOO=\'"B A R"\'', data[6])
297+
298+
299+
class TestFlavorShow(TestFlavor):
300+
301+
# Return value of self.flavors_mock.find().
302+
flavor = compute_fakes.FakeFlavor.create_one_flavor()
303+
304+
columns = (
305+
'OS-FLV-DISABLED:disabled',
306+
'OS-FLV-EXT-DATA:ephemeral',
307+
'disk',
308+
'id',
309+
'name',
310+
'os-flavor-access:is_public',
311+
'properties',
312+
'ram',
313+
'rxtx_factor',
314+
'swap',
315+
'vcpus',
316+
)
317+
318+
data = (
319+
flavor.disabled,
320+
flavor.ephemeral,
321+
flavor.disk,
322+
flavor.id,
323+
flavor.name,
324+
flavor.is_public,
325+
utils.format_dict(flavor.get_keys()),
326+
flavor.ram,
327+
flavor.rxtx_factor,
328+
flavor.swap,
329+
flavor.vcpus,
330+
)
331+
332+
def setUp(self):
333+
super(TestFlavorShow, self).setUp()
334+
335+
# Return value of utils.find_resource()
336+
self.flavors_mock.get.return_value = self.flavor
337+
338+
self.cmd = flavor.ShowFlavor(self.app, None)
339+
340+
def test_show_no_options(self):
341+
arglist = []
342+
verifylist = []
343+
344+
# Missing required args should boil here
345+
self.assertRaises(tests_utils.ParserException, self.check_parser,
346+
self.cmd, arglist, verifylist)
347+
348+
def test_flavor_show(self):
349+
arglist = [
350+
self.flavor.name,
351+
]
352+
verifylist = [
353+
('flavor', self.flavor.name),
354+
]
355+
356+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
357+
358+
columns, data = self.cmd.take_action(parsed_args)
359+
360+
self.assertEqual(self.columns, columns)
361+
self.assertEqual(self.data, data)
295362

296363

297364
class TestFlavorUnset(TestFlavor):
@@ -322,5 +389,5 @@ def test_flavor_unset(self):
322389

323390
self.flavors_mock.find.assert_called_with(name='baremetal')
324391

325-
self.assertEqual('properties', columns[2])
326-
self.assertNotIn('property', data[2])
392+
self.assertEqual('properties', columns[6])
393+
self.assertNotIn('property', data[6])

0 commit comments

Comments
 (0)