diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mailman/utilities/importer.py | 9 | ||||
| -rw-r--r-- | src/mailman/utilities/tests/test_import.py | 32 |
2 files changed, 41 insertions, 0 deletions
diff --git a/src/mailman/utilities/importer.py b/src/mailman/utilities/importer.py index f5aa8d10a..3cc7259d7 100644 --- a/src/mailman/utilities/importer.py +++ b/src/mailman/utilities/importer.py @@ -33,6 +33,7 @@ from mailman.interfaces.autorespond import ResponseAction from mailman.interfaces.digests import DigestFrequency from mailman.interfaces.mailinglist import Personalization, ReplyToMunging from mailman.interfaces.nntp import NewsgroupModeration +from mailman.interfaces.archiver import ArchivePolicy @@ -90,3 +91,11 @@ def import_config_pck(mlist, config_dict): except TypeError: print('Type conversion error:', key, file=sys.stderr) raise + # Handle the archiving policy + if config_dict.get("archive"): + if config_dict.get("archive_private"): + mlist.archive_policy = ArchivePolicy.private + else: + mlist.archive_policy = ArchivePolicy.public + else: + mlist.archive_policy = ArchivePolicy.never diff --git a/src/mailman/utilities/tests/test_import.py b/src/mailman/utilities/tests/test_import.py index c8da32e42..45df80d80 100644 --- a/src/mailman/utilities/tests/test_import.py +++ b/src/mailman/utilities/tests/test_import.py @@ -31,6 +31,7 @@ import unittest from mailman.app.lifecycle import create_list, remove_list from mailman.testing.layers import ConfigLayer from mailman.utilities.importer import import_config_pck +from mailman.interfaces.archiver import ArchivePolicy from pkg_resources import resource_filename @@ -68,3 +69,34 @@ class TestBasicImport(unittest.TestCase): self._import() self.assertTrue(self._mlist.allow_list_posts) self.assertTrue(self._mlist.include_rfc2369_headers) + + + +class TestArchiveImport(unittest.TestCase): + # The mlist.archive_policy gets set from the old list's archive and + # archive_private values + + layer = ConfigLayer + + def setUp(self): + self._mlist = create_list('blank@example.com') + self._mlist.archive_policy = "INITIAL-TEST-VALUE" + + def tearDown(self): + remove_list(self._mlist) + + def _do_test(self, pckdict, expected): + import_config_pck(self._mlist, pckdict) + self.assertEqual(self._mlist.archive_policy, expected) + + def test_public(self): + self._do_test({ "archive": True, "archive_private": False }, + ArchivePolicy.public) + + def test_private(self): + self._do_test({ "archive": True, "archive_private": True }, + ArchivePolicy.private) + + def test_no_archive(self): + self._do_test({ "archive": False, "archive_private": False }, + ArchivePolicy.never) |
