summaryrefslogtreecommitdiff
path: root/src/mailman/model/preferences.py
diff options
context:
space:
mode:
authorBarry Warsaw2016-05-13 18:46:33 -0400
committerBarry Warsaw2016-05-13 19:09:07 -0400
commit3ed71ffdbc4e0cbb4fc33e0de04eaeea6faae149 (patch)
tree8e94b4994d1b343f615f03e021fc6b7c923a851c /src/mailman/model/preferences.py
parent8467bb95c9dade901f7c96a5a3adf4d399618a6b (diff)
downloadmailman-3ed71ffdbc4e0cbb4fc33e0de04eaeea6faae149.tar.gz
mailman-3ed71ffdbc4e0cbb4fc33e0de04eaeea6faae149.tar.zst
mailman-3ed71ffdbc4e0cbb4fc33e0de04eaeea6faae149.zip
Diffstat (limited to 'src/mailman/model/preferences.py')
-rw-r--r--src/mailman/model/preferences.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/mailman/model/preferences.py b/src/mailman/model/preferences.py
index b76499020..71775117f 100644
--- a/src/mailman/model/preferences.py
+++ b/src/mailman/model/preferences.py
@@ -44,8 +44,6 @@ class Preferences(Model):
receive_own_postings = Column(Boolean)
delivery_mode = Column(Enum(DeliveryMode))
delivery_status = Column(Enum(DeliveryStatus))
- # When adding new columns, also add them to
- # mailman.model.tests.test_preferences.TestPreferences.test_absorb_all_attributes()
def __repr__(self):
return '<Preferences object at {:#x}>'.format(id(self))
@@ -69,9 +67,13 @@ class Preferences(Model):
@dbconnection
def absorb(self, store, preferences):
"""See `IPreferences`."""
- column_names = [c.name for c in self.__table__.columns
- if not c.primary_key]
- for cname in column_names:
- if (getattr(self, cname) is None and
- getattr(preferences, cname) is not None):
- setattr(self, cname, getattr(preferences, cname))
+ if not isinstance(preferences, Preferences):
+ raise TypeError('Not a preference: {!r}'.format(preferences))
+ column_names = [
+ column.name for column in self.__table__.columns
+ if not column.primary_key
+ ]
+ for column_name in column_names:
+ if (getattr(self, column_name) is None and
+ getattr(preferences, column_name) is not None):
+ setattr(self, column_name, getattr(preferences, column_name))