Refactor: Initialize parser in setUp() in TestKeyValueAction
No need to initialize parser in each test case. Do it in setUp(). Also remove the test_default_values case because it could be tested in the test_good_values case. Change-Id: Ia2ed7c9e46bf6baabbd62b9d50511c5e8103e5e2
This commit is contained in:
@ -20,34 +20,14 @@ from openstackclient.tests import utils
|
|||||||
|
|
||||||
|
|
||||||
class TestKeyValueAction(utils.TestCase):
|
class TestKeyValueAction(utils.TestCase):
|
||||||
def test_good_values(self):
|
|
||||||
parser = argparse.ArgumentParser()
|
def setUp(self):
|
||||||
|
super(TestKeyValueAction, self).setUp()
|
||||||
|
|
||||||
|
self.parser = argparse.ArgumentParser()
|
||||||
|
|
||||||
# Set up our typical usage
|
# Set up our typical usage
|
||||||
parser.add_argument(
|
self.parser.add_argument(
|
||||||
'--property',
|
|
||||||
metavar='<key=value>',
|
|
||||||
action=parseractions.KeyValueAction,
|
|
||||||
help='Property to store for this volume '
|
|
||||||
'(repeat option to set multiple properties)',
|
|
||||||
)
|
|
||||||
|
|
||||||
results = parser.parse_args([
|
|
||||||
'--property', 'red=',
|
|
||||||
'--property', 'green=100%',
|
|
||||||
'--property', 'blue=50%',
|
|
||||||
])
|
|
||||||
|
|
||||||
actual = getattr(results, 'property', {})
|
|
||||||
# All should pass through unmolested
|
|
||||||
expect = {'red': '', 'green': '100%', 'blue': '50%'}
|
|
||||||
self.assertDictEqual(expect, actual)
|
|
||||||
|
|
||||||
def test_default_values(self):
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
|
|
||||||
# Set up our typical usage
|
|
||||||
parser.add_argument(
|
|
||||||
'--property',
|
'--property',
|
||||||
metavar='<key=value>',
|
metavar='<key=value>',
|
||||||
action=parseractions.KeyValueAction,
|
action=parseractions.KeyValueAction,
|
||||||
@ -56,52 +36,29 @@ class TestKeyValueAction(utils.TestCase):
|
|||||||
'(repeat option to set multiple properties)',
|
'(repeat option to set multiple properties)',
|
||||||
)
|
)
|
||||||
|
|
||||||
results = parser.parse_args([
|
def test_good_values(self):
|
||||||
|
results = self.parser.parse_args([
|
||||||
'--property', 'red=',
|
'--property', 'red=',
|
||||||
'--property', 'green=100%',
|
'--property', 'green=100%',
|
||||||
'--property', 'blue=50%',
|
'--property', 'blue=50%',
|
||||||
])
|
])
|
||||||
|
|
||||||
actual = getattr(results, 'property', {})
|
actual = getattr(results, 'property', {})
|
||||||
# Verify green default is changed, format default is unchanged
|
# All should pass through unmolested
|
||||||
expect = {'red': '', 'green': '100%', 'blue': '50%', 'format': '#rgb'}
|
expect = {'red': '', 'green': '100%', 'blue': '50%', 'format': '#rgb'}
|
||||||
self.assertDictEqual(expect, actual)
|
self.assertDictEqual(expect, actual)
|
||||||
|
|
||||||
def test_error_values(self):
|
def test_error_values(self):
|
||||||
parser = argparse.ArgumentParser()
|
results = self.parser.parse_args([
|
||||||
|
|
||||||
# Set up our typical usage
|
|
||||||
parser.add_argument(
|
|
||||||
'--property',
|
|
||||||
metavar='<key=value>',
|
|
||||||
action=parseractions.KeyValueAction,
|
|
||||||
default={'green': '20%', 'blue': '40%'},
|
|
||||||
help='Property to store for this volume '
|
|
||||||
'(repeat option to set multiple properties)',
|
|
||||||
)
|
|
||||||
|
|
||||||
results = parser.parse_args([
|
|
||||||
'--property', 'red',
|
'--property', 'red',
|
||||||
'--property', 'green=100%',
|
'--property', 'green=100%',
|
||||||
'--property', 'blue',
|
'--property', 'blue',
|
||||||
])
|
])
|
||||||
|
|
||||||
failhere = None
|
|
||||||
actual = getattr(results, 'property', {})
|
actual = getattr(results, 'property', {})
|
||||||
# Verify non-existent red key
|
|
||||||
try:
|
|
||||||
failhere = actual['red']
|
|
||||||
except Exception as e:
|
|
||||||
self.assertTrue(type(e) == KeyError)
|
|
||||||
# Verify removal of blue key
|
|
||||||
try:
|
|
||||||
failhere = actual['blue']
|
|
||||||
except Exception as e:
|
|
||||||
self.assertTrue(type(e) == KeyError)
|
|
||||||
# There should be no red or blue
|
# There should be no red or blue
|
||||||
expect = {'green': '100%'}
|
expect = {'green': '100%', 'format': '#rgb'}
|
||||||
self.assertDictEqual(expect, actual)
|
self.assertDictEqual(expect, actual)
|
||||||
self.assertIsNone(failhere)
|
|
||||||
|
|
||||||
|
|
||||||
class TestNonNegativeAction(utils.TestCase):
|
class TestNonNegativeAction(utils.TestCase):
|
||||||
|
Reference in New Issue
Block a user