summaryrefslogtreecommitdiff
path: root/src/mailman/utilities/importer.py
diff options
context:
space:
mode:
authorBarry Warsaw2015-04-22 10:25:12 -0400
committerBarry Warsaw2015-04-22 10:25:12 -0400
commit6ab77ea42b65839ac87876719dc3069c0989d67a (patch)
tree097efcd0ca15da887c887b41f7d799ce08e30891 /src/mailman/utilities/importer.py
parentab41980bf3e69b81eff43172149667e2c0834a2e (diff)
parent34586187d3b126f2efd6cbbf2cc86eaae285d838 (diff)
downloadmailman-6ab77ea42b65839ac87876719dc3069c0989d67a.tar.gz
mailman-6ab77ea42b65839ac87876719dc3069c0989d67a.tar.zst
mailman-6ab77ea42b65839ac87876719dc3069c0989d67a.zip
* The test suite now runs successfully again with PostgreSQL. Given by
Aurélien Bompard. (LP: #1435941)
Diffstat (limited to 'src/mailman/utilities/importer.py')
-rw-r--r--src/mailman/utilities/importer.py15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/mailman/utilities/importer.py b/src/mailman/utilities/importer.py
index 66a23123c..b55d8c38d 100644
--- a/src/mailman/utilities/importer.py
+++ b/src/mailman/utilities/importer.py
@@ -47,6 +47,7 @@ from mailman.interfaces.nntp import NewsgroupModeration
from mailman.interfaces.usermanager import IUserManager
from mailman.utilities.filesystem import makedirs
from mailman.utilities.i18n import search
+from sqlalchemy import Boolean
from urllib.error import URLError
from zope.component import getUtility
@@ -151,9 +152,9 @@ enabled: yes
-# Attributes in Mailman 2 which have a different type in Mailman 3.
+# Attributes in Mailman 2 which have a different type in Mailman 3. Some
+# types (e.g. bools) are autodetected from their SA column types.
TYPES = dict(
- allow_list_posts=bool,
autorespond_owner=ResponseAction,
autorespond_postings=ResponseAction,
autorespond_requests=ResponseAction,
@@ -163,24 +164,18 @@ TYPES = dict(
default_member_action=member_action_mapping,
default_nonmember_action=nonmember_action_mapping,
digest_volume_frequency=DigestFrequency,
- emergency=bool,
- encode_ascii_prefixes=bool,
filter_action=filter_action_mapping,
filter_extensions=list_members_to_unicode,
filter_types=list_members_to_unicode,
forward_unrecognized_bounces_to=UnrecognizedBounceDisposition,
- gateway_to_mail=bool,
- include_rfc2369_headers=bool,
moderator_password=str_to_bytes,
newsgroup_moderation=NewsgroupModeration,
- nntp_prefix_subject_too=bool,
pass_extensions=list_members_to_unicode,
pass_types=list_members_to_unicode,
personalize=Personalization,
preferred_language=check_language_code,
reply_goes_to_list=ReplyToMunging,
subscription_policy=SubscriptionPolicy,
- topics_enabled=bool,
)
@@ -253,6 +248,10 @@ def import_config_pck(mlist, config_dict):
value = bytes_to_str(value)
# Some types require conversion.
converter = TYPES.get(key)
+ if converter is None:
+ column = getattr(mlist.__class__, key, None)
+ if column is not None and isinstance(column.type, Boolean):
+ converter = bool
try:
if converter is not None:
value = converter(value)