Skip to content

Commit fe3bbf6

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Jsonify meter and meter rule functional tests"
2 parents 3e621c9 + 289f15a commit fe3bbf6

2 files changed

Lines changed: 135 additions & 64 deletions

File tree

openstackclient/tests/functional/network/v2/test_network_meter.py

Lines changed: 86 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# License for the specific language governing permissions and limitations
1414
# under the License.
1515

16-
import re
16+
import json
1717
import uuid
1818

1919
from openstackclient.tests.functional import base
@@ -27,37 +27,45 @@ class TestMeter(base.TestCase):
2727
# has its own needs and there are collisions when running
2828
# tests in parallel.
2929

30-
@classmethod
31-
def setUpClass(cls):
32-
# Set up some regex for matching below
33-
cls.re_name = re.compile("name\s+\|\s+([^|]+?)\s+\|")
34-
cls.re_shared = re.compile("shared\s+\|\s+(\S+)")
35-
cls.re_description = re.compile("description\s+\|\s+([^|]+?)\s+\|")
36-
3730
def test_meter_delete(self):
3831
"""Test create, delete multiple"""
3932
name1 = uuid.uuid4().hex
4033
name2 = uuid.uuid4().hex
41-
42-
raw_output = self.openstack(
43-
'network meter create ' + name1,
34+
description = 'fakedescription'
35+
json_output = json.loads(self.openstack(
36+
'network meter create -f json ' + name1 + ' --description '
37+
+ description)
4438
)
4539
self.assertEqual(
4640
name1,
47-
re.search(self.re_name, raw_output).group(1),
41+
json_output.get('name'),
4842
)
4943
# Check if default shared values
5044
self.assertEqual(
51-
'False',
52-
re.search(self.re_shared, raw_output).group(1)
45+
False,
46+
json_output.get('shared')
47+
)
48+
self.assertEqual(
49+
'fakedescription',
50+
json_output.get('description')
5351
)
5452

55-
raw_output = self.openstack(
56-
'network meter create ' + name2,
53+
json_output_2 = json.loads(self.openstack(
54+
'network meter create -f json ' + name2 + ' --description '
55+
+ description)
5756
)
5857
self.assertEqual(
5958
name2,
60-
re.search(self.re_name, raw_output).group(1),
59+
json_output_2.get('name'),
60+
)
61+
# Check if default shared values
62+
self.assertEqual(
63+
False,
64+
json_output_2.get('shared')
65+
)
66+
self.assertEqual(
67+
'fakedescription',
68+
json_output_2.get('description')
6169
)
6270

6371
raw_output = self.openstack(
@@ -68,35 +76,83 @@ def test_meter_delete(self):
6876
def test_meter_list(self):
6977
"""Test create, list filters, delete"""
7078
name1 = uuid.uuid4().hex
71-
raw_output = self.openstack(
72-
'network meter create --description Test1 --share ' + name1,
79+
json_output = json.loads(self.openstack(
80+
'network meter create -f json --description Test1 --share '
81+
+ name1)
7382
)
7483
self.addCleanup(self.openstack, 'network meter delete ' + name1)
7584

7685
self.assertEqual(
7786
'Test1',
78-
re.search(self.re_description, raw_output).group(1),
87+
json_output.get('description'),
7988
)
8089
self.assertEqual(
81-
'True',
82-
re.search(self.re_shared, raw_output).group(1),
90+
True,
91+
json_output.get('shared'),
8392
)
8493

8594
name2 = uuid.uuid4().hex
86-
raw_output = self.openstack(
87-
'network meter create --description Test2 --no-share ' + name2,
95+
json_output_2 = json.loads(self.openstack(
96+
'network meter create -f json --description Test2 --no-share '
97+
+ name2)
8898
)
8999
self.addCleanup(self.openstack, 'network meter delete ' + name2)
90100

91101
self.assertEqual(
92102
'Test2',
93-
re.search(self.re_description, raw_output).group(1),
103+
json_output_2.get('description')
104+
)
105+
self.assertEqual(
106+
False,
107+
json_output_2.get('shared')
108+
)
109+
110+
raw_output = json.loads(self.openstack('network meter list -f json'))
111+
name_list = [item.get('Name') for item in raw_output]
112+
self.assertIn(name1, name_list)
113+
self.assertIn(name2, name_list)
114+
115+
def test_meter_show(self):
116+
"""Test create, show, delete"""
117+
name1 = uuid.uuid4().hex
118+
description = 'fakedescription'
119+
json_output = json.loads(self.openstack(
120+
'network meter create -f json ' + name1 + ' --description '
121+
+ description)
122+
)
123+
meter_id = json_output.get('id')
124+
self.addCleanup(self.openstack, 'network meter delete ' + name1)
125+
126+
# Test show with ID
127+
json_output = json.loads(self.openstack(
128+
'network meter show -f json ' + meter_id)
94129
)
95130
self.assertEqual(
96-
'False',
97-
re.search(self.re_shared, raw_output).group(1),
131+
False,
132+
json_output.get('shared')
133+
)
134+
self.assertEqual(
135+
'fakedescription',
136+
json_output.get('description')
137+
)
138+
self.assertEqual(
139+
name1,
140+
json_output.get('name')
98141
)
99142

100-
raw_output = self.openstack('network meter list')
101-
self.assertIsNotNone(re.search(name1 + "\s+\|\s+Test1", raw_output))
102-
self.assertIsNotNone(re.search(name2 + "\s+\|\s+Test2", raw_output))
143+
# Test show with name
144+
json_output = json.loads(self.openstack(
145+
'network meter show -f json ' + name1)
146+
)
147+
self.assertEqual(
148+
meter_id,
149+
json_output.get('id')
150+
)
151+
self.assertEqual(
152+
False,
153+
json_output.get('shared')
154+
)
155+
self.assertEqual(
156+
'fakedescription',
157+
json_output.get('description')
158+
)

openstackclient/tests/functional/network/v2/test_network_meter_rule.py

Lines changed: 49 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# License for the specific language governing permissions and limitations
1414
# under the License.
1515

16-
import re
16+
import json
1717
import uuid
1818

1919
from openstackclient.tests.functional import base
@@ -27,19 +27,11 @@ class TestMeterRule(base.TestCase):
2727

2828
@classmethod
2929
def setUpClass(cls):
30-
# Set up some regex for matching below
31-
cls.re_id = re.compile("id\s+\|\s+(\S+)")
32-
cls.re_direction = re.compile("direction\s+\|\s+(\S+)")
33-
cls.re_ip_prefix = re.compile(
34-
"remote_ip_prefix\s+\|\s+([^|]+?)\s+\|"
35-
)
36-
cls.re_meter_id = re.compile("metering_label_id\s+\|\s+(\S+)")
37-
38-
raw_output = cls.openstack(
39-
'network meter create ' + cls.METER_NAME
40-
)
30+
json_output = json.loads(cls.openstack(
31+
'network meter create -f json ' + cls.METER_NAME
32+
))
4133

42-
cls.METER_ID = re.search(cls.re_id, raw_output).group(1)
34+
cls.METER_ID = json_output.get('id')
4335

4436
@classmethod
4537
def tearDownClass(cls):
@@ -49,58 +41,81 @@ def tearDownClass(cls):
4941
def test_meter_rule_delete(self):
5042
"""test create, delete"""
5143

52-
raw_output = self.openstack(
53-
'network meter rule create ' +
44+
json_output = json.loads(self.openstack(
45+
'network meter rule create -f json ' +
5446
'--remote-ip-prefix 10.0.0.0/8 ' +
5547
self.METER_ID
56-
)
57-
rule_id = re.search(self.re_id, raw_output).group(1)
58-
re_ip = re.search(self.re_ip_prefix, raw_output)
48+
))
49+
rule_id = json_output.get('id')
50+
re_ip = json_output.get('remote_ip_prefix')
5951

6052
self.addCleanup(self.openstack,
6153
'network meter rule delete ' + rule_id)
6254
self.assertIsNotNone(re_ip)
6355
self.assertIsNotNone(rule_id)
56+
self.assertEqual(
57+
'10.0.0.0/8', re_ip
58+
)
6459

6560
def test_meter_rule_list(self):
6661
"""Test create, list, delete"""
67-
raw_output = self.openstack(
68-
'network meter rule create ' +
62+
json_output = json.loads(self.openstack(
63+
'network meter rule create -f json ' +
6964
'--remote-ip-prefix 10.0.0.0/8 ' +
7065
self.METER_ID
71-
)
72-
rule_id = re.search(self.re_id, raw_output).group(1)
66+
))
67+
rule_id_1 = json_output.get('id')
7368
self.addCleanup(self.openstack,
74-
'network meter rule delete ' + rule_id)
69+
'network meter rule delete ' + rule_id_1)
7570
self.assertEqual(
7671
'10.0.0.0/8',
77-
re.search(self.re_ip_prefix, raw_output).group(1)
72+
json_output.get('remote_ip_prefix')
7873
)
7974

80-
raw_output = self.openstack('network meter rule list')
81-
self.assertIsNotNone(re.search(rule_id + "|\s+\|\s+\|\s+10.0.0.0/8",
82-
raw_output))
75+
json_output_1 = json.loads(self.openstack(
76+
'network meter rule create -f json ' +
77+
'--remote-ip-prefix 11.0.0.0/8 ' +
78+
self.METER_ID
79+
))
80+
rule_id_2 = json_output_1.get('id')
81+
self.addCleanup(self.openstack,
82+
'network meter rule delete ' + rule_id_2)
83+
self.assertEqual(
84+
'11.0.0.0/8',
85+
json_output_1.get('remote_ip_prefix')
86+
)
87+
88+
json_output = json.loads(self.openstack('network meter rule list -f '
89+
'json'))
90+
rule_id_list = [item.get('ID') for item in json_output]
91+
ip_prefix_list = [item.get('Remote IP Prefix') for item in json_output]
92+
self.assertIn(rule_id_1, rule_id_list)
93+
self.assertIn(rule_id_2, rule_id_list)
94+
self.assertIn('10.0.0.0/8', ip_prefix_list)
95+
self.assertIn('11.0.0.0/8', ip_prefix_list)
8396

8497
def test_meter_rule_show(self):
98+
8599
"""Test create, show, delete"""
86-
raw_output = self.openstack(
87-
'network meter rule create ' +
100+
json_output = json.loads(self.openstack(
101+
'network meter rule create -f json ' +
88102
'--remote-ip-prefix 10.0.0.0/8 ' +
89103
'--egress ' +
90104
self.METER_ID
91-
)
92-
rule_id = re.search(self.re_id, raw_output).group(1)
105+
))
106+
rule_id = json_output.get('id')
93107

94108
self.assertEqual(
95109
'egress',
96-
re.search(self.re_direction, raw_output).group(1)
110+
json_output.get('direction')
97111
)
98112

99-
raw_output = self.openstack('network meter rule show ' + rule_id)
113+
json_output = json.loads(self.openstack('network meter rule show'
114+
' -f json ' + rule_id))
100115

101116
self.assertEqual(
102117
'10.0.0.0/8',
103-
re.search(self.re_ip_prefix, raw_output).group(1)
118+
json_output.get('remote_ip_prefix')
104119
)
105120
self.assertIsNotNone(rule_id)
106121

0 commit comments

Comments
 (0)