diff options
| author | Aurélien Bompard | 2013-10-11 17:48:05 +0200 |
|---|---|---|
| committer | Aurélien Bompard | 2013-10-11 17:48:05 +0200 |
| commit | 58b998361fa7985b8fbeb369ae9aff553a927132 (patch) | |
| tree | 932c591fe7837ff2c57eabfd5ab8455e8fe3cbdb /src | |
| parent | 000a025d0d649353908ac0290cf46c1479233489 (diff) | |
| download | mailman-58b998361fa7985b8fbeb369ae9aff553a927132.tar.gz mailman-58b998361fa7985b8fbeb369ae9aff553a927132.tar.zst mailman-58b998361fa7985b8fbeb369ae9aff553a927132.zip | |
Diffstat (limited to 'src')
| -rw-r--r-- | src/mailman/utilities/importer.py | 6 | ||||
| -rw-r--r-- | src/mailman/utilities/tests/test_import.py | 18 |
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' |
