diff options
-rw-r--r-- | gitlab/base.py | 2 | ||||
-rw-r--r-- | gitlab/tests/test_base.py | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/gitlab/base.py b/gitlab/base.py index 7b4e3f8..8f4e49b 100644 --- a/gitlab/base.py +++ b/gitlab/base.py @@ -133,7 +133,7 @@ class RESTObject(object): return super(RESTObject, self) != other def __dir__(self): - return super(RESTObject, self).__dir__() + list(self.attributes) + return super(RESTObject, self).__dir__() | self.attributes.keys() def __hash__(self) -> int: if not self.get_id(): diff --git a/gitlab/tests/test_base.py b/gitlab/tests/test_base.py index a0adcb0..6ca261d 100644 --- a/gitlab/tests/test_base.py +++ b/gitlab/tests/test_base.py @@ -135,6 +135,10 @@ class TestRESTObject: assert {"foo": "foo"} == obj._attrs assert {} == obj._updated_attrs + def test_dir_unique(self, fake_manager): + obj = FakeObject(fake_manager, {"manager": "foo"}) + assert len(dir(obj)) == len(set(dir(obj))) + def test_create_managers(self, fake_gitlab, fake_manager): class ObjectWithManager(FakeObject): _managers = (("fakes", "FakeManager"),) |