From 9b8be88438df22a56a130dc05d50a90e1c24b311 Mon Sep 17 00:00:00 2001 From: Przemyslaw Szczerbik Date: Tue, 9 Nov 2021 11:58:44 +0100 Subject: [PATCH] Update PortTestCasesResourceRequest for new Neutron API ext The port-resource-request-groups Neutron API extension, introduced in I99a49b107b1872ddf83d1d8497a26a8d728feb07, changed format of port.resource_request attribute. This patch adaps PortTestCasesResourceRequest tests to accept both formats. Partial-Bug: #1922237 Change-Id: I55b52e360ee99174d804c9bf25b5ccfdc959a1ed --- .../api/admin/test_ports.py | 41 +++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/neutron_tempest_plugin/api/admin/test_ports.py b/neutron_tempest_plugin/api/admin/test_ports.py index b277fac0..a374b817 100644 --- a/neutron_tempest_plugin/api/admin/test_ports.py +++ b/neutron_tempest_plugin/api/admin/test_ports.py @@ -133,14 +133,41 @@ class PortTestCasesResourceRequest(base.BaseAdminNetworkTest): self.assertIn('resource_request', port) vnic_trait = 'CUSTOM_VNIC_TYPE_%s' % vnic_type.upper() physnet_trait = 'CUSTOM_PHYSNET_%s' % self.physnet_name.upper() - self.assertCountEqual([physnet_trait, vnic_trait], - port['resource_request']['required']) + if utils.is_extension_enabled('port-resource-request-groups', + 'network'): + min_bw_group_found = False + for rg in port['resource_request']['request_groups']: + self.assertIn(rg['id'], + port['resource_request']['same_subtree']) + if (('NET_BW_EGR_KILOBIT_PER_SEC' in rg['resources'] or + 'NET_BW_IGR_KILOBIT_PER_SEC' in rg['resources']) and + not min_bw_group_found): + self.assertCountEqual([physnet_trait, vnic_trait], + rg['required']) - self.assertEqual( - {'NET_BW_EGR_KILOBIT_PER_SEC': self.EGRESS_KBPS, - 'NET_BW_IGR_KILOBIT_PER_SEC': self.INGRESS_KBPS}, - port['resource_request']['resources'] - ) + self.assertEqual( + {'NET_BW_EGR_KILOBIT_PER_SEC': self.EGRESS_KBPS, + 'NET_BW_IGR_KILOBIT_PER_SEC': self.INGRESS_KBPS}, + rg['resources'] + ) + min_bw_group_found = True + else: + self.fail('"resource_request" contains unexpected request ' + 'group: %s', rg) + + if not min_bw_group_found: + self.fail('Did not find expected request groups in ' + '"resource_request": %s', + port['resource_request']['request_groups']) + else: + self.assertCountEqual([physnet_trait, vnic_trait], + port['resource_request']['required']) + + self.assertEqual( + {'NET_BW_EGR_KILOBIT_PER_SEC': self.EGRESS_KBPS, + 'NET_BW_IGR_KILOBIT_PER_SEC': self.INGRESS_KBPS}, + port['resource_request']['resources'] + ) @decorators.idempotent_id('ebb86dc4-716c-4558-8516-6dfc4a67601f') def test_port_resource_request(self):