Skip to content

Commit 13e67c9

Browse files
Satellite-QEogajduseclaudeCopilot
authored
Fix ruff linting issues to prepare for version bump (#1328) (#1330)
* Fix ruff linting issues to prepare for version bump - Add __hash__ method to Entity class (PLW1641) - Fix dictionary iteration to use .items() (PLC0206) - Add noqa comments for intentional mid-function imports (PLC0415) All tests pass and ruff linting now succeeds with no errors. 🤖 Generated with [Claude Code](https://claude.ai/code) * Apply pre-commit automated fixes - Black formatting for nailgun/entities.py - Ruff removed unnecessary noqa comments (PLC0415 no longer flagged) 🤖 Generated with [Claude Code](https://claude.ai/code) * Update nailgun/entity_mixins.py --------- (cherry picked from commit 4c2716f) Co-authored-by: Ondřej Gajdušek <ogajduse@redhat.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 6f7c7df commit 13e67c9

File tree

3 files changed

+20
-16
lines changed

3 files changed

+20
-16
lines changed

nailgun/entities.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4950,10 +4950,8 @@ def read(self, entity=None, attrs=None, ignore=None, params=None):
49504950
# Ignore puppetclass attribute if we are running against Puppet disabled
49514951
# instance. Ignore it also if the API does not return puppetclasses for
49524952
# the given host, but only if it does not have Puppet proxy assigned.
4953-
if (
4954-
'Puppet' not in _feature_list(self._server_config)
4955-
or 'puppetclasses' not in attrs
4956-
and not attrs['puppet_proxy']
4953+
if 'Puppet' not in _feature_list(self._server_config) or (
4954+
'puppetclasses' not in attrs and not attrs['puppet_proxy']
49574955
):
49584956
ignore.add('puppetclass')
49594957
result = super().read(entity, attrs, ignore, params)

nailgun/entity_mixins.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -614,6 +614,12 @@ def __eq__(self, other):
614614
return False
615615
return self.to_json_dict() == other.to_json_dict()
616616

617+
def __hash__(self):
618+
"""Return hash based on entity type and id if available."""
619+
if getattr(self, 'id', None) is not None:
620+
return hash((type(self), self.id))
621+
return hash(type(self))
622+
617623
def compare(self, other, filter_fcn=None):
618624
"""Return True if properties can be compared in terms of eq.
619625

tests/test_entities.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3011,15 +3011,15 @@ def test_add_func_with_id(self):
30113011
entity = self.entity
30123012
entity.id = 1
30133013
func_param_dict = {entity.add_ansible_role: 'ansible_role_id'}
3014-
for func in func_param_dict:
3014+
for func, param in func_param_dict.items():
30153015
self.assertEqual(inspect.getfullargspec(func), EXPECTED_ARGSPEC)
3016-
kwargs = {'kwarg': gen_integer(), 'data': {func_param_dict[func]: gen_integer()}}
3016+
kwargs = {'kwarg': gen_integer(), 'data': {param: gen_integer()}}
30173017
with mock.patch.object(entities, '_handle_response') as handlr:
30183018
with mock.patch.object(client, 'put') as client_request:
30193019
response = func(**kwargs)
30203020
self.assertEqual(client_request.call_count, 1)
30213021
self.assertEqual(len(client_request.call_args[0]), 1)
3022-
self.assertNotIn(func_param_dict[func], client_request.call_args[1]['data'])
3022+
self.assertNotIn(param, client_request.call_args[1]['data'])
30233023
self.assertEqual(client_request.call_args[1], kwargs)
30243024
self.assertEqual(handlr.call_count, 1)
30253025
self.assertEqual(handlr.return_value, response)
@@ -3042,15 +3042,15 @@ def test_delete_func_with_id(self):
30423042
entity.delete_puppetclass: 'puppetclass_id',
30433043
entity.remove_ansible_role: 'ansible_role_id',
30443044
}
3045-
for func in func_param_dict:
3045+
for func, param in func_param_dict.items():
30463046
self.assertEqual(inspect.getfullargspec(func), EXPECTED_ARGSPEC)
3047-
kwargs = {'kwarg': gen_integer(), 'data': {func_param_dict[func]: gen_integer()}}
3047+
kwargs = {'kwarg': gen_integer(), 'data': {param: gen_integer()}}
30483048
with mock.patch.object(entities, '_handle_response') as handlr:
30493049
with mock.patch.object(client, 'delete') as client_request:
30503050
response = func(**kwargs)
30513051
self.assertEqual(client_request.call_count, 1)
30523052
self.assertEqual(len(client_request.call_args[0]), 1)
3053-
self.assertNotIn(func_param_dict[func], client_request.call_args[1]['data'])
3053+
self.assertNotIn(param, client_request.call_args[1]['data'])
30543054
self.assertEqual(client_request.call_args[1], kwargs)
30553055
self.assertEqual(handlr.call_count, 1)
30563056
self.assertEqual(handlr.return_value, response)
@@ -3188,15 +3188,15 @@ def test_add_func_with_id(self):
31883188
"""
31893189
entity = entities.Host(self.cfg, id=1)
31903190
func_param_dict = {entity.add_ansible_role: 'ansible_role_id'}
3191-
for func in func_param_dict:
3191+
for func, param in func_param_dict.items():
31923192
self.assertEqual(inspect.getfullargspec(func), EXPECTED_ARGSPEC)
3193-
kwargs = {'kwarg': gen_integer(), 'data': {func_param_dict[func]: gen_integer()}}
3193+
kwargs = {'kwarg': gen_integer(), 'data': {param: gen_integer()}}
31943194
with mock.patch.object(entities, '_handle_response') as handlr:
31953195
with mock.patch.object(client, 'put') as client_request:
31963196
response = func(**kwargs)
31973197
self.assertEqual(client_request.call_count, 1)
31983198
self.assertEqual(len(client_request.call_args[0]), 1)
3199-
self.assertNotIn(func_param_dict[func], client_request.call_args[1]['data'])
3199+
self.assertNotIn(param, client_request.call_args[1]['data'])
32003200
self.assertEqual(client_request.call_args[1], kwargs)
32013201
self.assertEqual(handlr.call_count, 1)
32023202
self.assertEqual(handlr.return_value, response)
@@ -3218,15 +3218,15 @@ def test_delete_func_with_id(self):
32183218
entity.delete_puppetclass: 'puppetclass_id',
32193219
entity.remove_ansible_role: 'ansible_role_id',
32203220
}
3221-
for func in func_param_dict:
3221+
for func, param in func_param_dict.items():
32223222
self.assertEqual(inspect.getfullargspec(func), EXPECTED_ARGSPEC)
3223-
kwargs = {'kwarg': gen_integer(), 'data': {func_param_dict[func]: gen_integer()}}
3223+
kwargs = {'kwarg': gen_integer(), 'data': {param: gen_integer()}}
32243224
with mock.patch.object(entities, '_handle_response') as handlr:
32253225
with mock.patch.object(client, 'delete') as client_request:
32263226
response = func(**kwargs)
32273227
self.assertEqual(client_request.call_count, 1)
32283228
self.assertEqual(len(client_request.call_args[0]), 1)
3229-
self.assertNotIn(func_param_dict[func], client_request.call_args[1]['data'])
3229+
self.assertNotIn(param, client_request.call_args[1]['data'])
32303230
self.assertEqual(client_request.call_args[1], kwargs)
32313231
self.assertEqual(handlr.call_count, 1)
32323232
self.assertEqual(handlr.return_value, response)

0 commit comments

Comments
 (0)