diff --git a/gitlab/base.py b/gitlab/base.py index 40bc06ce4..ad3533913 100644 --- a/gitlab/base.py +++ b/gitlab/base.py @@ -131,7 +131,7 @@ def _create_managers(self): def _update_attrs(self, new_attrs): self.__dict__["_updated_attrs"] = {} - self.__dict__["_attrs"].update(new_attrs) + self.__dict__["_attrs"] = new_attrs def get_id(self): """Returns the id of the resource.""" diff --git a/gitlab/tests/test_base.py b/gitlab/tests/test_base.py index 58c0d4748..a0adcb03d 100644 --- a/gitlab/tests/test_base.py +++ b/gitlab/tests/test_base.py @@ -128,6 +128,13 @@ def test_update_attrs(self, fake_manager): assert {"foo": "foo", "bar": "bar"} == obj._attrs assert {} == obj._updated_attrs + def test_update_attrs_deleted(self, fake_manager): + obj = FakeObject(fake_manager, {"foo": "foo", "bar": "bar"}) + obj.bar = "baz" + obj._update_attrs({"foo": "foo"}) + assert {"foo": "foo"} == obj._attrs + assert {} == obj._updated_attrs + def test_create_managers(self, fake_gitlab, fake_manager): class ObjectWithManager(FakeObject): _managers = (("fakes", "FakeManager"),)