From c3aaec563755de086b75d9977da4bc4ac02269b9 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Tue, 28 Jan 2025 14:52:48 +0000 Subject: [PATCH] typing: Don't rely on kwargs for _translate_response mypy doesn't like it, and it's wholly unnecessary in this instance. Change-Id: I1045711f10a4a7c9053d1a042fbfb8b23399b303 Signed-off-by: Stephen Finucane --- openstack/block_storage/v3/group.py | 2 +- openstack/block_storage/v3/transfer.py | 2 +- openstack/compute/v2/aggregate.py | 2 +- openstack/object_store/v1/info.py | 5 +-- openstack/resource.py | 36 +++++++++-------- openstack/tests/unit/test_resource.py | 55 +++++++++++++++++--------- 6 files changed, 61 insertions(+), 41 deletions(-) diff --git a/openstack/block_storage/v3/group.py b/openstack/block_storage/v3/group.py index 13c9871c9..61f7bde79 100644 --- a/openstack/block_storage/v3/group.py +++ b/openstack/block_storage/v3/group.py @@ -95,5 +95,5 @@ class Group(resource.Resource): exceptions.raise_from_response(response) group = Group() - group._translate_response(response=response) + group._translate_response(response) return group diff --git a/openstack/block_storage/v3/transfer.py b/openstack/block_storage/v3/transfer.py index 0081d9413..512802684 100644 --- a/openstack/block_storage/v3/transfer.py +++ b/openstack/block_storage/v3/transfer.py @@ -199,5 +199,5 @@ class Transfer(resource.Resource): exceptions.raise_from_response(resp) transfer = Transfer() - transfer._translate_response(response=resp) + transfer._translate_response(resp) return transfer diff --git a/openstack/compute/v2/aggregate.py b/openstack/compute/v2/aggregate.py index e3f47ed9b..787d57a09 100644 --- a/openstack/compute/v2/aggregate.py +++ b/openstack/compute/v2/aggregate.py @@ -55,7 +55,7 @@ class Aggregate(resource.Resource): response = session.post(url, json=body, microversion=microversion) exceptions.raise_from_response(response) aggregate = Aggregate() - aggregate._translate_response(response=response) + aggregate._translate_response(response) return aggregate def add_host(self, session, host): diff --git a/openstack/object_store/v1/info.py b/openstack/object_store/v1/info.py index 572c1bb66..c1dde93b7 100644 --- a/openstack/object_store/v1/info.py +++ b/openstack/object_store/v1/info.py @@ -87,10 +87,7 @@ class Info(resource.Resource): microversion = self._get_microversion(session, action='fetch') response = session.get(info_url, microversion=microversion) - kwargs = {} - if error_message: - kwargs['error_message'] = error_message self.microversion = microversion - self._translate_response(response, **kwargs) + self._translate_response(response, error_message=error_message) return self diff --git a/openstack/resource.py b/openstack/resource.py index 4a93ceb8e..82a79b94e 100644 --- a/openstack/resource.py +++ b/openstack/resource.py @@ -1417,13 +1417,11 @@ class Resource(dict): ) self.microversion = microversion - response_kwargs = { - "has_body": has_body, - } - if resource_response_key is not None: - response_kwargs['resource_response_key'] = resource_response_key - - self._translate_response(response, **response_kwargs) + self._translate_response( + response, + has_body=has_body, + resource_response_key=resource_response_key, + ) # direct comparision to False since we need to rule out None if self.has_body and self.create_returns_body is False: # fetch the body if it's required but not returned by create @@ -1583,23 +1581,25 @@ class Resource(dict): requires_id=requires_id, base_path=base_path, ) + session = self._get_session(session) if microversion is None: microversion = self._get_microversion(session, action='fetch') + self.microversion = microversion + response = session.get( request.url, microversion=microversion, params=params, skip_cache=skip_cache, ) - kwargs = {} - if error_message: - kwargs['error_message'] = error_message - self.microversion = microversion - if resource_response_key is not None: - kwargs['resource_response_key'] = resource_response_key - self._translate_response(response, **kwargs) + self._translate_response( + response, + error_message=error_message, + resource_response_key=resource_response_key, + ) + return self def head(self, session, base_path=None, *, microversion=None): @@ -1623,12 +1623,13 @@ class Resource(dict): session = self._get_session(session) if microversion is None: microversion = self._get_microversion(session, action='fetch') + self.microversion = microversion request = self._prepare_request(base_path=base_path) response = session.head(request.url, microversion=microversion) - self.microversion = microversion self._translate_response(response, has_body=False) + return self @property @@ -1736,6 +1737,7 @@ class Resource(dict): ) self.microversion = microversion + self._translate_response(response, has_body=has_body) return self @@ -1856,7 +1858,9 @@ class Resource(dict): if error_message: kwargs['error_message'] = error_message - self._translate_response(response, has_body=False, **kwargs) + self._translate_response( + response, has_body=False, error_message=error_message + ) return self def _raw_delete(self, session, microversion=None, **kwargs): diff --git a/openstack/tests/unit/test_resource.py b/openstack/tests/unit/test_resource.py index eeeae5a75..21fb4f46a 100644 --- a/openstack/tests/unit/test_resource.py +++ b/openstack/tests/unit/test_resource.py @@ -1419,11 +1419,10 @@ class TestResourceActions(base.TestCase): ) self.assertEqual(sot.microversion, microversion) - res_kwargs = {} - if resource_response_key is not None: - res_kwargs['resource_response_key'] = resource_response_key sot._translate_response.assert_called_once_with( - self.response, has_body=sot.has_body, **res_kwargs + self.response, + has_body=sot.has_body, + resource_response_key=resource_response_key, ) self.assertEqual(result, sot) @@ -1574,7 +1573,9 @@ class TestResourceActions(base.TestCase): ) self.assertIsNone(self.sot.microversion) - self.sot._translate_response.assert_called_once_with(self.response) + self.sot._translate_response.assert_called_once_with( + self.response, error_message=None, resource_response_key=None + ) self.assertEqual(result, self.sot) def test_fetch_with_override_key(self): @@ -1589,7 +1590,7 @@ class TestResourceActions(base.TestCase): self.assertIsNone(self.sot.microversion) self.sot._translate_response.assert_called_once_with( - self.response, resource_response_key="SomeKey" + self.response, error_message=None, resource_response_key="SomeKey" ) self.assertEqual(result, self.sot) @@ -1607,7 +1608,9 @@ class TestResourceActions(base.TestCase): ) self.assertIsNone(self.sot.microversion) - self.sot._translate_response.assert_called_once_with(self.response) + self.sot._translate_response.assert_called_once_with( + self.response, error_message=None, resource_response_key=None + ) self.assertEqual(result, self.sot) def test_fetch_with_microversion(self): @@ -1631,7 +1634,9 @@ class TestResourceActions(base.TestCase): ) self.assertEqual(sot.microversion, '1.42') - sot._translate_response.assert_called_once_with(self.response) + sot._translate_response.assert_called_once_with( + self.response, error_message=None, resource_response_key=None + ) self.assertEqual(result, sot) def test_fetch_with_explicit_microversion(self): @@ -1655,7 +1660,9 @@ class TestResourceActions(base.TestCase): ) self.assertEqual(sot.microversion, '1.42') - sot._translate_response.assert_called_once_with(self.response) + sot._translate_response.assert_called_once_with( + self.response, error_message=None, resource_response_key=None + ) self.assertEqual(result, sot) def test_fetch_not_requires_id(self): @@ -1668,7 +1675,9 @@ class TestResourceActions(base.TestCase): self.request.url, microversion=None, params={}, skip_cache=False ) - self.sot._translate_response.assert_called_once_with(self.response) + self.sot._translate_response.assert_called_once_with( + self.response, error_message=None, resource_response_key=None + ) self.assertEqual(result, self.sot) def test_fetch_base_path(self): @@ -1681,7 +1690,9 @@ class TestResourceActions(base.TestCase): self.request.url, microversion=None, params={}, skip_cache=False ) - self.sot._translate_response.assert_called_once_with(self.response) + self.sot._translate_response.assert_called_once_with( + self.response, error_message=None, resource_response_key=None + ) self.assertEqual(result, self.sot) def test_head(self): @@ -1694,7 +1705,8 @@ class TestResourceActions(base.TestCase): self.assertIsNone(self.sot.microversion) self.sot._translate_response.assert_called_once_with( - self.response, has_body=False + self.response, + has_body=False, ) self.assertEqual(result, self.sot) @@ -1708,7 +1720,8 @@ class TestResourceActions(base.TestCase): self.assertIsNone(self.sot.microversion) self.sot._translate_response.assert_called_once_with( - self.response, has_body=False + self.response, + has_body=False, ) self.assertEqual(result, self.sot) @@ -1732,7 +1745,8 @@ class TestResourceActions(base.TestCase): self.assertEqual(sot.microversion, '1.42') sot._translate_response.assert_called_once_with( - self.response, has_body=False + self.response, + has_body=False, ) self.assertEqual(result, sot) @@ -1796,7 +1810,8 @@ class TestResourceActions(base.TestCase): self.assertEqual(self.sot.microversion, microversion) self.sot._translate_response.assert_called_once_with( - self.response, has_body=has_body + self.response, + has_body=has_body, ) def test_commit_put(self): @@ -1937,7 +1952,9 @@ class TestResourceActions(base.TestCase): ) self.sot._translate_response.assert_called_once_with( - self.response, has_body=False + self.response, + has_body=False, + error_message=None, ) self.assertEqual(result, self.sot) @@ -1960,7 +1977,9 @@ class TestResourceActions(base.TestCase): ) sot._translate_response.assert_called_once_with( - self.response, has_body=False + self.response, + has_body=False, + error_message=None, ) self.assertEqual(result, sot) @@ -1983,7 +2002,7 @@ class TestResourceActions(base.TestCase): ) sot._translate_response.assert_called_once_with( - self.response, has_body=False + self.response, has_body=False, error_message=None ) self.assertEqual(result, sot)