From 73415ce60ffe65b038bb396e51d98972d2b85d4b Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sat, 4 Apr 2015 15:21:38 +0200 Subject: [PATCH] models: Make sure del on attributes does not work --- mopidy/models.py | 3 +++ tests/models/test_models.py | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/mopidy/models.py b/mopidy/models.py index 817b5ae3..8f81b578 100644 --- a/mopidy/models.py +++ b/mopidy/models.py @@ -152,6 +152,9 @@ class ImmutableObject(object): return super(ImmutableObject, self).__setattr__(name, value) raise AttributeError('Object is immutable.') + def __delattr__(self, name): + raise AttributeError('Object is immutable.') + def __repr__(self): kwarg_pairs = [] for (key, value) in sorted(self.__dict__.items()): diff --git a/tests/models/test_models.py b/tests/models/test_models.py index e9a8f439..77383a6e 100644 --- a/tests/models/test_models.py +++ b/tests/models/test_models.py @@ -74,6 +74,12 @@ class RefTest(unittest.TestCase): with self.assertRaises(AttributeError): ref.name = None + # TODO: add these for the more of the models? + def test_del_name(self): + ref = Ref(name='foo') + with self.assertRaises(AttributeError): + del ref.name + def test_invalid_kwarg(self): with self.assertRaises(TypeError): Ref(foo='baz')