summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAurélien Bompard2013-10-11 17:48:05 +0200
committerAurélien Bompard2013-10-11 17:48:05 +0200
commit58b998361fa7985b8fbeb369ae9aff553a927132 (patch)
tree932c591fe7837ff2c57eabfd5ab8455e8fe3cbdb /src
parent000a025d0d649353908ac0290cf46c1479233489 (diff)
downloadmailman-58b998361fa7985b8fbeb369ae9aff553a927132.tar.gz
mailman-58b998361fa7985b8fbeb369ae9aff553a927132.tar.zst
mailman-58b998361fa7985b8fbeb369ae9aff553a927132.zip
Diffstat (limited to 'src')
-rw-r--r--src/mailman/utilities/importer.py6
-rw-r--r--src/mailman/utilities/tests/test_import.py18
2 files changed, 22 insertions, 2 deletions
diff --git a/src/mailman/utilities/importer.py b/src/mailman/utilities/importer.py
index 03ac94870..68e0274fa 100644
--- a/src/mailman/utilities/importer.py
+++ b/src/mailman/utilities/importer.py
@@ -250,7 +250,11 @@ def import_config_pck(mlist, config_dict):
addr = addr.strip()
if not addr:
continue
- IAcceptableAliasSet(mlist).add(str_to_unicode(addr))
+ addr = str_to_unicode(addr)
+ try:
+ IAcceptableAliasSet(mlist).add(addr)
+ except ValueError:
+ IAcceptableAliasSet(mlist).add("^" + addr)
# Handle conversion to URIs
convert_to_uri = {
"welcome_msg": "welcome_message_uri",
diff --git a/src/mailman/utilities/tests/test_import.py b/src/mailman/utilities/tests/test_import.py
index 76c8174d5..3a909e857 100644
--- a/src/mailman/utilities/tests/test_import.py
+++ b/src/mailman/utilities/tests/test_import.py
@@ -213,13 +213,29 @@ class TestBasicImport(unittest.TestCase):
# it used to be a plain-text field (values are newline-separated)
aliases = ["alias1@example.com",
"alias2@exemple.com",
- "non-ascii-\xe8@example.com"]
+ "non-ascii-\xe8@example.com",
+ ]
self._pckdict[b"acceptable_aliases"] = \
("\n".join(aliases)).encode("utf-8")
self._import()
alias_set = IAcceptableAliasSet(self._mlist)
self.assertEqual(sorted(alias_set.aliases), aliases)
+ def test_acceptable_aliases_invalid(self):
+ # values without an '@' sign used to be matched against the local part,
+ # now we need to add the '^' sign
+ aliases = ["invalid-value", ]
+ self._pckdict[b"acceptable_aliases"] = \
+ ("\n".join(aliases)).encode("utf-8")
+ try:
+ self._import()
+ except ValueError, e:
+ print(format_exc())
+ self.fail("Invalid value '%s' caused a crash" % e)
+ alias_set = IAcceptableAliasSet(self._mlist)
+ self.assertEqual(sorted(alias_set.aliases),
+ [ ("^" + a) for a in aliases ])
+
def test_info_non_ascii(self):
# info can contain non-ascii chars
info = 'O idioma aceito \xe9 somente Portugu\xeas do Brasil'