diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mailman/utilities/importer.py | 5 | ||||
| -rw-r--r-- | src/mailman/utilities/tests/test_import.py | 13 |
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' |
