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:
Tang Chen 2015-12-28 17:28:04 +08:00
parent 8210ba7a55
commit f0a3b175a1

@ -20,34 +20,14 @@ from openstackclient.tests import utils
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
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(
self.parser.add_argument(
'--property',
metavar='<key=value>',
action=parseractions.KeyValueAction,
@ -56,52 +36,29 @@ class TestKeyValueAction(utils.TestCase):
'(repeat option to set multiple properties)',
)
results = parser.parse_args([
def test_good_values(self):
results = self.parser.parse_args([
'--property', 'red=',
'--property', 'green=100%',
'--property', 'blue=50%',
])
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'}
self.assertDictEqual(expect, actual)
def test_error_values(self):
parser = argparse.ArgumentParser()
# 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([
results = self.parser.parse_args([
'--property', 'red',
'--property', 'green=100%',
'--property', 'blue',
])
failhere = None
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
expect = {'green': '100%'}
expect = {'green': '100%', 'format': '#rgb'}
self.assertDictEqual(expect, actual)
self.assertIsNone(failhere)
class TestNonNegativeAction(utils.TestCase):