=== modified file 'src/mailman/utilities/importer.py' --- src/mailman/utilities/importer.py 2013-06-19 02:43:40 +0000 +++ src/mailman/utilities/importer.py 2013-09-19 13:14:15 +0000 @@ -33,6 +33,7 @@ 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 @@ 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 === modified file 'src/mailman/utilities/tests/test_import.py' --- src/mailman/utilities/tests/test_import.py 2013-01-01 14:05:42 +0000 +++ src/mailman/utilities/tests/test_import.py 2013-09-19 13:14:01 +0000 @@ -31,6 +31,7 @@ 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 @@ 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)