Skip to content

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
alfred82santa committed Jul 10, 2014
1 parent d986265 commit 32d095d
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
15 changes: 14 additions & 1 deletion dirty_models/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ def __new__(cls, *args, **kwargs):
return super(DynamicModel, new_class).__new__(new_class)

def __setattr__(self, name, value):
if not hasattr(self, name):
if not self.__hasattr__(name):
if not self.get_read_only() or not self.is_locked():
field_type = self._get_field_type(name, value)
if not field_type:
Expand All @@ -481,6 +481,19 @@ def __setattr__(self, name, value):
def __getattr__(self, name):
return self.get_field_value(name)

def __hasattr__(self, name):
try:
getattr(super(DynamicModel, self), name)
except AttributeError:
try:
self.__dict__[name]
except KeyError:
try:
self.__class__.__dict__[name]
except KeyError:
return False
return True

def __reduce__(self):
"""
Reduce function to allow dumpable by pickle
Expand Down
3 changes: 1 addition & 2 deletions tests/dirty_models/tests_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -947,8 +947,7 @@ def test_set_list_value(self):
def test_set_empty_list_value(self):
self.model.test1 = []

with self.assertRaises(AttributeError):
self.model.test1
self.assertIsNone(self.model.test1)

def test_set_invalid_type_field_fail(self):
with self.assertRaisesRegexp(TypeError, "Invalid parameter: test34. Type not supported."):
Expand Down

0 comments on commit 32d095d

Please sign in to comment.