Skip to content

Commit f0a3b17

Browse files
committed
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
1 parent 8210ba7 commit f0a3b17

1 file changed

Lines changed: 9 additions & 52 deletions

File tree

openstackclient/tests/common/test_parseractions.py

Lines changed: 9 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -20,34 +20,14 @@
2020

2121

2222
class TestKeyValueAction(utils.TestCase):
23-
def test_good_values(self):
24-
parser = argparse.ArgumentParser()
2523

26-
# Set up our typical usage
27-
parser.add_argument(
28-
'--property',
29-
metavar='<key=value>',
30-
action=parseractions.KeyValueAction,
31-
help='Property to store for this volume '
32-
'(repeat option to set multiple properties)',
33-
)
34-
35-
results = parser.parse_args([
36-
'--property', 'red=',
37-
'--property', 'green=100%',
38-
'--property', 'blue=50%',
39-
])
40-
41-
actual = getattr(results, 'property', {})
42-
# All should pass through unmolested
43-
expect = {'red': '', 'green': '100%', 'blue': '50%'}
44-
self.assertDictEqual(expect, actual)
24+
def setUp(self):
25+
super(TestKeyValueAction, self).setUp()
4526

46-
def test_default_values(self):
47-
parser = argparse.ArgumentParser()
27+
self.parser = argparse.ArgumentParser()
4828

4929
# Set up our typical usage
50-
parser.add_argument(
30+
self.parser.add_argument(
5131
'--property',
5232
metavar='<key=value>',
5333
action=parseractions.KeyValueAction,
@@ -56,52 +36,29 @@ def test_default_values(self):
5636
'(repeat option to set multiple properties)',
5737
)
5838

59-
results = parser.parse_args([
39+
def test_good_values(self):
40+
results = self.parser.parse_args([
6041
'--property', 'red=',
6142
'--property', 'green=100%',
6243
'--property', 'blue=50%',
6344
])
6445

6546
actual = getattr(results, 'property', {})
66-
# Verify green default is changed, format default is unchanged
47+
# All should pass through unmolested
6748
expect = {'red': '', 'green': '100%', 'blue': '50%', 'format': '#rgb'}
6849
self.assertDictEqual(expect, actual)
6950

7051
def test_error_values(self):
71-
parser = argparse.ArgumentParser()
72-
73-
# Set up our typical usage
74-
parser.add_argument(
75-
'--property',
76-
metavar='<key=value>',
77-
action=parseractions.KeyValueAction,
78-
default={'green': '20%', 'blue': '40%'},
79-
help='Property to store for this volume '
80-
'(repeat option to set multiple properties)',
81-
)
82-
83-
results = parser.parse_args([
52+
results = self.parser.parse_args([
8453
'--property', 'red',
8554
'--property', 'green=100%',
8655
'--property', 'blue',
8756
])
8857

89-
failhere = None
9058
actual = getattr(results, 'property', {})
91-
# Verify non-existent red key
92-
try:
93-
failhere = actual['red']
94-
except Exception as e:
95-
self.assertTrue(type(e) == KeyError)
96-
# Verify removal of blue key
97-
try:
98-
failhere = actual['blue']
99-
except Exception as e:
100-
self.assertTrue(type(e) == KeyError)
10159
# There should be no red or blue
102-
expect = {'green': '100%'}
60+
expect = {'green': '100%', 'format': '#rgb'}
10361
self.assertDictEqual(expect, actual)
104-
self.assertIsNone(failhere)
10562

10663

10764
class TestNonNegativeAction(utils.TestCase):

0 commit comments

Comments
 (0)