Skip to content

Commit f5b185c

Browse files
committed
Make use of comparable 'FormattableColumn' subclasses
This requires fixes found in cliff 3.5.0 [1] and osc-lib 2.3.0 [2]. With these fixes in place, we can remove the icky, still broken 'assertItemEqual' and 'assertListItemEqual' helpers. [1] https://review.opendev.org/761421 [2] https://review.opendev.org/761394 Change-Id: Id6c26b37c3c7d5ec6761361abca57f9219b76838 Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
1 parent 0edd055 commit f5b185c

33 files changed

Lines changed: 295 additions & 306 deletions

lower-constraints.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Babel==2.6.0
55
bcrypt==3.2.0
66
cachetools==2.0.0
77
cffi==1.14.0
8-
cliff==3.4.0
8+
cliff==3.5.0
99
cmd2==0.8.0
1010
coverage==4.0
1111
cryptography==2.7
@@ -42,7 +42,7 @@ openstacksdk==0.52.0
4242
os-client-config==2.1.0
4343
os-service-types==1.7.0
4444
os-testr==1.0.0
45-
osc-lib==2.2.0
45+
osc-lib==2.3.0
4646
oslo.concurrency==3.26.0
4747
oslo.config==5.2.0
4848
oslo.context==2.19.2

openstackclient/identity/v2_0/catalog.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def take_action(self, parsed_args):
9191
for service in auth_ref.service_catalog.catalog:
9292
if (service.get('name') == parsed_args.service or
9393
service.get('type') == parsed_args.service):
94-
data = service
94+
data = service.copy()
9595
data['endpoints'] = EndpointsColumn(data['endpoints'])
9696
if 'endpoints_links' in data:
9797
data.pop('endpoints_links')

openstackclient/tests/unit/compute/v2/test_aggregate.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def test_aggregate_add_host(self):
8888
self.sdk_client.add_host_to_aggregate.assert_called_once_with(
8989
self.fake_ag.id, parsed_args.host)
9090
self.assertEqual(self.columns, columns)
91-
self.assertItemEqual(self.data, data)
91+
self.assertItemsEqual(self.data, data)
9292

9393

9494
class TestAggregateCreate(TestAggregate):
@@ -112,7 +112,7 @@ def test_aggregate_create(self):
112112
self.sdk_client.create_aggregate.assert_called_once_with(
113113
name=parsed_args.name)
114114
self.assertEqual(self.columns, columns)
115-
self.assertItemEqual(self.data, data)
115+
self.assertItemsEqual(self.data, data)
116116

117117
def test_aggregate_create_with_zone(self):
118118
arglist = [
@@ -129,7 +129,7 @@ def test_aggregate_create_with_zone(self):
129129
self.sdk_client.create_aggregate.assert_called_once_with(
130130
name=parsed_args.name, availability_zone=parsed_args.zone)
131131
self.assertEqual(self.columns, columns)
132-
self.assertItemEqual(self.data, data)
132+
self.assertItemsEqual(self.data, data)
133133

134134
def test_aggregate_create_with_property(self):
135135
arglist = [
@@ -148,7 +148,7 @@ def test_aggregate_create_with_property(self):
148148
self.sdk_client.set_aggregate_metadata.assert_called_once_with(
149149
self.fake_ag.id, parsed_args.property)
150150
self.assertEqual(self.columns, columns)
151-
self.assertItemEqual(self.data, data)
151+
self.assertItemsEqual(self.data, data)
152152

153153

154154
class TestAggregateDelete(TestAggregate):
@@ -265,7 +265,7 @@ def test_aggregate_list(self):
265265
columns, data = self.cmd.take_action(parsed_args)
266266

267267
self.assertEqual(self.list_columns, columns)
268-
self.assertItemEqual(self.list_data, tuple(data))
268+
self.assertItemsEqual(self.list_data, tuple(data))
269269

270270
def test_aggregate_list_with_long(self):
271271
arglist = [
@@ -278,7 +278,7 @@ def test_aggregate_list_with_long(self):
278278
columns, data = self.cmd.take_action(parsed_args)
279279

280280
self.assertEqual(self.list_columns_long, columns)
281-
self.assertListItemEqual(self.list_data_long, tuple(data))
281+
self.assertItemsEqual(self.list_data_long, tuple(data))
282282

283283

284284
class TestAggregateRemoveHost(TestAggregate):
@@ -306,7 +306,7 @@ def test_aggregate_remove_host(self):
306306
self.sdk_client.remove_host_from_aggregate.assert_called_once_with(
307307
self.fake_ag.id, parsed_args.host)
308308
self.assertEqual(self.columns, columns)
309-
self.assertItemEqual(self.data, data)
309+
self.assertItemsEqual(self.data, data)
310310

311311

312312
class TestAggregateSet(TestAggregate):
@@ -492,7 +492,7 @@ def test_aggregate_show(self):
492492
parsed_args.aggregate, ignore_missing=False)
493493

494494
self.assertEqual(self.columns, columns)
495-
self.assertItemEqual(self.data, tuple(data))
495+
self.assertItemsEqual(self.data, tuple(data))
496496

497497

498498
class TestAggregateUnset(TestAggregate):

openstackclient/tests/unit/compute/v2/test_flavor.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ def test_flavor_create_default_options(self):
133133
self.sdk_client.create_flavor.assert_called_once_with(**default_args)
134134

135135
self.assertEqual(self.columns, columns)
136-
self.assertItemEqual(self.data, data)
136+
self.assertItemsEqual(self.data, data)
137137

138138
def test_flavor_create_all_options(self):
139139

@@ -201,8 +201,8 @@ def test_flavor_create_all_options(self):
201201
create_flavor, props)
202202
self.sdk_client.get_flavor_access.assert_not_called()
203203

204-
self.assertEqual(self.columns, columns)
205-
self.assertItemEqual(tuple(cmp_data), data)
204+
self.assertEqual(self.columns, columns)
205+
self.assertItemsEqual(tuple(cmp_data), data)
206206

207207
def test_flavor_create_other_options(self):
208208

@@ -277,7 +277,7 @@ def test_flavor_create_other_options(self):
277277
self.sdk_client.create_flavor_extra_specs.assert_called_with(
278278
create_flavor, props)
279279
self.assertEqual(self.columns, columns)
280-
self.assertItemEqual(cmp_data, data)
280+
self.assertItemsEqual(cmp_data, data)
281281

282282
def test_public_flavor_create_with_project(self):
283283
arglist = [
@@ -350,7 +350,7 @@ def test_flavor_create_with_description_api_newer(self):
350350
self.sdk_client.create_flavor.assert_called_once_with(**args)
351351

352352
self.assertEqual(self.columns, columns)
353-
self.assertItemEqual(self.data_private, data)
353+
self.assertItemsEqual(self.data_private, data)
354354

355355
def test_flavor_create_with_description_api_older(self):
356356
arglist = [
@@ -633,7 +633,7 @@ def test_flavor_list_long(self):
633633
)
634634

635635
self.assertEqual(self.columns_long, columns)
636-
self.assertListItemEqual(self.data_long, tuple(data))
636+
self.assertItemsEqual(self.data_long, tuple(data))
637637

638638

639639
class TestFlavorSet(TestFlavor):
@@ -920,7 +920,7 @@ def test_public_flavor_show(self):
920920
columns, data = self.cmd.take_action(parsed_args)
921921

922922
self.assertEqual(self.columns, columns)
923-
self.assertItemEqual(self.data, data)
923+
self.assertItemsEqual(self.data, data)
924924

925925
def test_private_flavor_show(self):
926926
private_flavor = compute_fakes.FakeFlavor.create_one_flavor(
@@ -960,7 +960,7 @@ def test_private_flavor_show(self):
960960
self.sdk_client.get_flavor_access.assert_called_with(
961961
flavor=private_flavor.id)
962962
self.assertEqual(self.columns, columns)
963-
self.assertItemEqual(data_with_project, data)
963+
self.assertItemsEqual(data_with_project, data)
964964

965965

966966
class TestFlavorUnset(TestFlavor):

openstackclient/tests/unit/compute/v2/test_server_backup.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ def test_server_backup_defaults(self):
139139
)
140140

141141
self.assertEqual(self.image_columns(images[0]), columns)
142-
self.assertItemEqual(self.image_data(images[0]), data)
142+
self.assertItemsEqual(self.image_data(images[0]), data)
143143

144144
def test_server_backup_create_options(self):
145145
servers = self.setup_servers_mock(count=1)
@@ -173,7 +173,7 @@ def test_server_backup_create_options(self):
173173
)
174174

175175
self.assertEqual(self.image_columns(images[0]), columns)
176-
self.assertItemEqual(self.image_data(images[0]), data)
176+
self.assertItemsEqual(self.image_data(images[0]), data)
177177

178178
@mock.patch.object(common_utils, 'wait_for_status', return_value=False)
179179
def test_server_backup_wait_fail(self, mock_wait_for_status):
@@ -269,4 +269,4 @@ def test_server_backup_wait_ok(self, mock_wait_for_status):
269269
)
270270

271271
self.assertEqual(self.image_columns(images[0]), columns)
272-
self.assertItemEqual(self.image_data(images[0]), data)
272+
self.assertItemsEqual(self.image_data(images[0]), data)

openstackclient/tests/unit/compute/v2/test_server_image.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ def test_server_image_create_defaults(self):
133133
)
134134

135135
self.assertEqual(self.image_columns(images[0]), columns)
136-
self.assertItemEqual(self.image_data(images[0]), data)
136+
self.assertItemsEqual(self.image_data(images[0]), data)
137137

138138
def test_server_image_create_options(self):
139139
servers = self.setup_servers_mock(count=1)
@@ -161,7 +161,7 @@ def test_server_image_create_options(self):
161161
)
162162

163163
self.assertEqual(self.image_columns(images[0]), columns)
164-
self.assertItemEqual(self.image_data(images[0]), data)
164+
self.assertItemsEqual(self.image_data(images[0]), data)
165165

166166
@mock.patch.object(common_utils, 'wait_for_status', return_value=False)
167167
def test_server_create_image_wait_fail(self, mock_wait_for_status):
@@ -229,4 +229,4 @@ def test_server_create_image_wait_ok(self, mock_wait_for_status):
229229
)
230230

231231
self.assertEqual(self.image_columns(images[0]), columns)
232-
self.assertItemEqual(self.image_data(images[0]), data)
232+
self.assertItemsEqual(self.image_data(images[0]), data)

openstackclient/tests/unit/identity/v2_0/test_catalog.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,10 @@ def test_catalog_list(self):
7171
datalist = ((
7272
'supernova',
7373
'compute',
74-
catalog.EndpointsColumn(self.service_catalog['endpoints']),
74+
catalog.EndpointsColumn(
75+
auth_ref.service_catalog.catalog[0]['endpoints']),
7576
), )
76-
self.assertListItemEqual(datalist, tuple(data))
77+
self.assertItemsEqual(datalist, tuple(data))
7778

7879
def test_catalog_list_with_endpoint_url(self):
7980
attr = {
@@ -113,9 +114,10 @@ def test_catalog_list_with_endpoint_url(self):
113114
datalist = ((
114115
'supernova',
115116
'compute',
116-
catalog.EndpointsColumn(service_catalog['endpoints']),
117+
catalog.EndpointsColumn(
118+
auth_ref.service_catalog.catalog[0]['endpoints']),
117119
), )
118-
self.assertListItemEqual(datalist, tuple(data))
120+
self.assertItemsEqual(datalist, tuple(data))
119121

120122

121123
class TestCatalogShow(TestCatalog):
@@ -150,16 +152,17 @@ def test_catalog_show(self):
150152
collist = ('endpoints', 'id', 'name', 'type')
151153
self.assertEqual(collist, columns)
152154
datalist = (
153-
catalog.EndpointsColumn(self.service_catalog['endpoints']),
155+
catalog.EndpointsColumn(
156+
auth_ref.service_catalog.catalog[0]['endpoints']),
154157
self.service_catalog.id,
155158
'supernova',
156159
'compute',
157160
)
158-
self.assertItemEqual(datalist, data)
161+
self.assertItemsEqual(datalist, data)
159162

160163

161164
class TestFormatColumns(TestCatalog):
162-
def test_endpoints_column_human_readabale(self):
165+
def test_endpoints_column_human_readable(self):
163166
col = catalog.EndpointsColumn(self.service_catalog['endpoints'])
164167
self.assertEqual(
165168
'one\n publicURL: https://public.one.example.com\n '

openstackclient/tests/unit/identity/v2_0/test_project.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,7 @@ def test_project_show(self):
643643
self.fake_proj_show.name,
644644
format_columns.DictColumn({}),
645645
)
646-
self.assertItemEqual(datalist, data)
646+
self.assertItemsEqual(datalist, data)
647647

648648

649649
class TestProjectUnset(TestProject):

openstackclient/tests/unit/identity/v2_0/test_user.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ def test_user_list_no_options(self):
482482
self.users_mock.list.assert_called_with(tenant_id=None)
483483

484484
self.assertEqual(self.columns, columns)
485-
self.assertListItemEqual(self.datalist, tuple(data))
485+
self.assertItemsEqual(self.datalist, tuple(data))
486486

487487
def test_user_list_project(self):
488488
arglist = [
@@ -502,7 +502,7 @@ def test_user_list_project(self):
502502
self.users_mock.list.assert_called_with(tenant_id=project_id)
503503

504504
self.assertEqual(self.columns, columns)
505-
self.assertListItemEqual(self.datalist, tuple(data))
505+
self.assertItemsEqual(self.datalist, tuple(data))
506506

507507
def test_user_list_long(self):
508508
arglist = [
@@ -531,7 +531,7 @@ def test_user_list_long(self):
531531
self.fake_user_l.email,
532532
True,
533533
), )
534-
self.assertListItemEqual(datalist, tuple(data))
534+
self.assertItemsEqual(datalist, tuple(data))
535535

536536

537537
class TestUserSet(TestUser):
@@ -819,4 +819,4 @@ def test_user_show(self):
819819
self.fake_user.name,
820820
self.fake_project.id,
821821
)
822-
self.assertItemEqual(datalist, data)
822+
self.assertItemsEqual(datalist, data)

openstackclient/tests/unit/identity/v3/test_catalog.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,10 @@ def test_catalog_list(self):
9191
datalist = ((
9292
'supernova',
9393
'compute',
94-
catalog.EndpointsColumn(self.fake_service['endpoints']),
94+
catalog.EndpointsColumn(
95+
auth_ref.service_catalog.catalog[0]['endpoints']),
9596
), )
96-
self.assertListItemEqual(datalist, tuple(data))
97+
self.assertItemsEqual(datalist, tuple(data))
9798

9899

99100
class TestCatalogShow(TestCatalog):
@@ -128,12 +129,13 @@ def test_catalog_show(self):
128129
collist = ('endpoints', 'id', 'name', 'type')
129130
self.assertEqual(collist, columns)
130131
datalist = (
131-
catalog.EndpointsColumn(self.fake_service['endpoints']),
132+
catalog.EndpointsColumn(
133+
auth_ref.service_catalog.catalog[0]['endpoints']),
132134
'qwertyuiop',
133135
'supernova',
134136
'compute',
135137
)
136-
self.assertItemEqual(datalist, data)
138+
self.assertItemsEqual(datalist, data)
137139

138140

139141
class TestFormatColumns(TestCatalog):

0 commit comments

Comments
 (0)