summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAurélien Bompard2013-10-15 09:27:18 +0200
committerAurélien Bompard2013-10-15 09:27:18 +0200
commite3f8ad0d49104964ab14a9dfd0d60253d7d808c3 (patch)
tree0b141f8de60fb796ed07a8c730f334f1091d7a70 /src
parentc56a83d5eb2ca8aa7e384e27825f2f34faeabebe (diff)
downloadmailman-e3f8ad0d49104964ab14a9dfd0d60253d7d808c3.tar.gz
mailman-e3f8ad0d49104964ab14a9dfd0d60253d7d808c3.tar.zst
mailman-e3f8ad0d49104964ab14a9dfd0d60253d7d808c3.zip
Diffstat (limited to 'src')
-rw-r--r--src/mailman/utilities/importer.py5
-rw-r--r--src/mailman/utilities/tests/test_import.py13
2 files changed, 17 insertions, 1 deletions
diff --git a/src/mailman/utilities/importer.py b/src/mailman/utilities/importer.py
index e97db12dc..5c77a45d8 100644
--- a/src/mailman/utilities/importer.py
+++ b/src/mailman/utilities/importer.py
@@ -246,7 +246,10 @@ def import_config_pck(mlist, config_dict):
for addr in config_dict.get('ban_list', []):
IBanManager(mlist).ban(str_to_unicode(addr))
# Handle acceptable aliases
- for addr in config_dict.get('acceptable_aliases', '').splitlines():
+ acceptable_aliases = config_dict.get('acceptable_aliases', '')
+ if isinstance(acceptable_aliases, basestring):
+ acceptable_aliases = acceptable_aliases.splitlines()
+ for addr in acceptable_aliases:
addr = addr.strip()
if not addr:
continue
diff --git a/src/mailman/utilities/tests/test_import.py b/src/mailman/utilities/tests/test_import.py
index a29c560dd..bf757ba4b 100644
--- a/src/mailman/utilities/tests/test_import.py
+++ b/src/mailman/utilities/tests/test_import.py
@@ -241,6 +241,19 @@ class TestBasicImport(unittest.TestCase):
self.assertEqual(sorted(alias_set.aliases),
[ ("^" + a) for a in aliases ])
+ def test_acceptable_aliases_as_list(self):
+ # in some versions of the pickle, it can be a list, not a string
+ # (seen in the wild)
+ aliases = [b"alias1@example.com", b"alias2@exemple.com" ]
+ self._pckdict[b"acceptable_aliases"] = aliases
+ try:
+ self._import()
+ except AttributeError:
+ print(format_exc())
+ self.fail("Import does not handle acceptable_aliases as list")
+ alias_set = IAcceptableAliasSet(self._mlist)
+ self.assertEqual(sorted(alias_set.aliases), aliases)
+
def test_info_non_ascii(self):
# info can contain non-ascii chars
info = 'O idioma aceito \xe9 somente Portugu\xeas do Brasil'