summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mailman/utilities/importer.py9
-rw-r--r--src/mailman/utilities/tests/test_import.py32
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)