commit:     6b00547810a925620aedaa409bc6c63359668d92
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Dec  4 20:33:25 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Dec  4 20:39:31 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6b005478

dev-python/python-openstackclient: Backport test fix

Closes: https://bugs.gentoo.org/918417
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../files/python-openstackclient-6.3.0-test.patch  | 254 +++++++++++++++++++++
 .../python-openstackclient-6.3.0.ebuild            |   5 +
 2 files changed, 259 insertions(+)

diff --git 
a/dev-python/python-openstackclient/files/python-openstackclient-6.3.0-test.patch
 
b/dev-python/python-openstackclient/files/python-openstackclient-6.3.0-test.patch
new file mode 100644
index 000000000000..b82097f36ae7
--- /dev/null
+++ 
b/dev-python/python-openstackclient/files/python-openstackclient-6.3.0-test.patch
@@ -0,0 +1,254 @@
+From fb2e0ced6e2413f5641e65bdc44ff1350a172a24 Mon Sep 17 00:00:00 2001
+From: Stephen Finucane <[email protected]>
+Date: Mon, 11 Sep 2023 10:46:23 +0100
+Subject: [PATCH] tests: Explicitly specify port fields for output
+
+Rather than excluding the few fields we don't want, explicitly indicate
+the ones we do want. We were already in-effect doing this in our tests,
+so this is simply moving the definition from tests to the main code.
+
+Note that this is a problem in the tests for virtually all commands
+that will be seen as the SDK continues to evolve and new fields are
+added to existing resources. This is a problem that be solved over
+time though, rather than in a big bang commit.
+
+Change-Id: Iaa64e97450f5c73cab2e2c3b0c741aec1495b4f1
+Signed-off-by: Stephen Finucane <[email protected]>
+---
+ openstackclient/network/v2/port.py            | 52 +++++++++++++++----
+ .../tests/unit/network/v2/test_port.py        | 36 ++++++-------
+ 2 files changed, 59 insertions(+), 29 deletions(-)
+
+diff --git a/openstackclient/network/v2/port.py 
b/openstackclient/network/v2/port.py
+index 6ca069bb..710e8fe3 100644
+--- a/openstackclient/network/v2/port.py
++++ b/openstackclient/network/v2/port.py
+@@ -55,18 +55,48 @@ _formatters = {
+ 
+ 
+ def _get_columns(item):
+-    column_map = {
+-        'binding:host_id': 'binding_host_id',
+-        'binding:profile': 'binding_profile',
+-        'binding:vif_details': 'binding_vif_details',
+-        'binding:vif_type': 'binding_vif_type',
+-        'binding:vnic_type': 'binding_vnic_type',
+-        'is_admin_state_up': 'admin_state_up',
+-        'is_port_security_enabled': 'port_security_enabled',
++    column_data_mapping = {
++        'admin_state_up': 'is_admin_state_up',
++        'allowed_address_pairs': 'allowed_address_pairs',
++        'binding_host_id': 'binding_host_id',
++        'binding_profile': 'binding_profile',
++        'binding_vif_details': 'binding_vif_details',
++        'binding_vif_type': 'binding_vif_type',
++        'binding_vnic_type': 'binding_vnic_type',
++        'created_at': 'created_at',
++        'data_plane_status': 'data_plane_status',
++        'description': 'description',
++        'device_id': 'device_id',
++        'device_owner': 'device_owner',
++        'device_profile': 'device_profile',
++        'dns_assignment': 'dns_assignment',
++        'dns_domain': 'dns_domain',
++        'dns_name': 'dns_name',
++        'extra_dhcp_opts': 'extra_dhcp_opts',
++        'fixed_ips': 'fixed_ips',
++        'hints': 'hints',
++        'id': 'id',
++        'ip_allocation': 'ip_allocation',
++        'mac_address': 'mac_address',
++        'name': 'name',
++        'network_id': 'network_id',
++        'numa_affinity_policy': 'numa_affinity_policy',
++        'port_security_enabled': 'is_port_security_enabled',
++        'project_id': 'project_id',
++        'propagate_uplink_status': 'propagate_uplink_status',
++        'resource_request': 'resource_request',
++        'revision_number': 'revision_number',
++        'qos_network_policy_id': 'qos_network_policy_id',
++        'qos_policy_id': 'qos_policy_id',
++        'security_group_ids': 'security_group_ids',
++        'status': 'status',
++        'tags': 'tags',
++        'trunk_details': 'trunk_details',
++        'updated_at': 'updated_at',
+     }
+-    hidden_columns = ['location', 'tenant_id']
+-    return utils.get_osc_show_columns_for_sdk_resource(
+-        item, column_map, hidden_columns
++    return (
++        tuple(column_data_mapping.keys()),
++        tuple(column_data_mapping.values()),
+     )
+ 
+ 
+diff --git a/openstackclient/tests/unit/network/v2/test_port.py 
b/openstackclient/tests/unit/network/v2/test_port.py
+index 59755bb9..c897a1af 100644
+--- a/openstackclient/tests/unit/network/v2/test_port.py
++++ b/openstackclient/tests/unit/network/v2/test_port.py
+@@ -172,7 +172,7 @@ class TestCreatePort(TestPort):
+         )
+         self.assertFalse(self.network_client.set_tags.called)
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_full_options(self):
+@@ -245,7 +245,7 @@ class TestCreatePort(TestPort):
+             }
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_invalid_json_binding_profile(self):
+@@ -309,7 +309,7 @@ class TestCreatePort(TestPort):
+             }
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_with_security_group(self):
+@@ -347,7 +347,7 @@ class TestCreatePort(TestPort):
+             }
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_port_with_dns_name(self):
+@@ -380,7 +380,7 @@ class TestCreatePort(TestPort):
+             }
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_with_security_groups(self):
+@@ -420,7 +420,7 @@ class TestCreatePort(TestPort):
+             }
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_with_no_security_groups(self):
+@@ -449,7 +449,7 @@ class TestCreatePort(TestPort):
+             }
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_with_no_fixed_ips(self):
+@@ -478,7 +478,7 @@ class TestCreatePort(TestPort):
+             }
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_port_with_allowed_address_pair_ipaddr(self):
+@@ -520,7 +520,7 @@ class TestCreatePort(TestPort):
+             }
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_port_with_allowed_address_pair(self):
+@@ -571,7 +571,7 @@ class TestCreatePort(TestPort):
+             }
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_port_with_qos(self):
+@@ -608,7 +608,7 @@ class TestCreatePort(TestPort):
+             }
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_port_security_enabled(self):
+@@ -738,7 +738,7 @@ class TestCreatePort(TestPort):
+             else:
+                 self.assertFalse(self.network_client.set_tags.called)
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_with_tags(self):
+@@ -787,7 +787,7 @@ class TestCreatePort(TestPort):
+             }
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_with_uplink_status_propagation_enabled(self):
+@@ -893,7 +893,7 @@ class TestCreatePort(TestPort):
+             create_args['numa_affinity_policy'] = numa_affinity_policy
+         self.network_client.create_port.assert_called_once_with(**create_args)
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_with_numa_affinity_policy_required(self):
+@@ -940,7 +940,7 @@ class TestCreatePort(TestPort):
+             'device_profile': 'cyborg_device_profile_1',
+         }
+         self.network_client.create_port.assert_called_once_with(**create_args)
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_hints_invalid_json(self):
+@@ -1032,7 +1032,7 @@ class TestCreatePort(TestPort):
+             }
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+     def test_create_hints_valid_json(self):
+@@ -1067,7 +1067,7 @@ class TestCreatePort(TestPort):
+             }
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+ 
+@@ -2496,7 +2496,7 @@ class TestShowPort(TestPort):
+             self._port.name, ignore_missing=False
+         )
+ 
+-        self.assertEqual(set(self.columns), set(columns))
++        self.assertCountEqual(self.columns, columns)
+         self.assertCountEqual(self.data, data)
+ 
+ 
+-- 
+2.43.0
+

diff --git 
a/dev-python/python-openstackclient/python-openstackclient-6.3.0.ebuild 
b/dev-python/python-openstackclient/python-openstackclient-6.3.0.ebuild
index 90321acb3163..a331211dd91a 100644
--- a/dev-python/python-openstackclient/python-openstackclient-6.3.0.ebuild
+++ b/dev-python/python-openstackclient/python-openstackclient-6.3.0.ebuild
@@ -50,6 +50,11 @@ BDEPEND="
 distutils_enable_tests unittest
 
 src_prepare() {
+       local PATCHES=(
+               # backport from master
+               "${FILESDIR}/${P}-test.patch"
+       )
+
        # Depends on specific runner
        sed -e 's/test_command_has_logger/_&/' -i 
openstackclient/tests/unit/common/test_command.py || die
 

Reply via email to