Skip to content

Commit 60c5fd8

Browse files
authored
Merge pull request #1383 from spyoungtech/dirfix
fix(types): prevent __dir__ in RestObject from producing duplicates
2 parents dd236a0 + a8e591f commit 60c5fd8

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

gitlab/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ def __ne__(self, other: object) -> bool:
133133
return super(RESTObject, self) != other
134134

135135
def __dir__(self):
136-
return super(RESTObject, self).__dir__() + list(self.attributes)
136+
return super(RESTObject, self).__dir__() | self.attributes.keys()
137137

138138
def __hash__(self) -> int:
139139
if not self.get_id():

gitlab/tests/test_base.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,10 @@ def test_update_attrs_deleted(self, fake_manager):
135135
assert {"foo": "foo"} == obj._attrs
136136
assert {} == obj._updated_attrs
137137

138+
def test_dir_unique(self, fake_manager):
139+
obj = FakeObject(fake_manager, {"manager": "foo"})
140+
assert len(dir(obj)) == len(set(dir(obj)))
141+
138142
def test_create_managers(self, fake_gitlab, fake_manager):
139143
class ObjectWithManager(FakeObject):
140144
_managers = (("fakes", "FakeManager"),)

0 commit comments

Comments
 (0)