Mark Sapiro pushed to branch master at GNU Mailman / Mailman Core
Commits:
7e7e317a by Mark Sapiro at 2018-08-11T19:23:09Z
Import autorespond_postings and autorespond_admin correctly.
- - - - -
d87980b0 by Mark Sapiro at 2018-08-11T21:03:53Z
Merge branch 'import' into 'master'
Import autorespond settings correctly.
Closes #505
See merge request mailman/mailman!409
- - - - -
3 changed files:
- src/mailman/docs/NEWS.rst
- src/mailman/utilities/importer.py
- src/mailman/utilities/tests/test_import.py
Changes:
=====================================
src/mailman/docs/NEWS.rst
=====================================
@@ -16,6 +16,8 @@ Command line
------------
* The ``mailman import21`` command properly converts all acceptable_aliases
to regexps. (Closes #496)
+* The ``mailman import21`` command correctly converts autorespond_* settings.
+ (Closes #505)
Bugs
----
@@ -24,6 +26,7 @@ Bugs
* Autoresponses to posts and -owner and -request messages now work.
(Closes #504)
+
3.2.0 -- "La Villa Strangiato"
==============================
(2018-07-10)
=====================================
src/mailman/utilities/importer.py
=====================================
@@ -87,6 +87,12 @@ def list_members_to_unicode(value):
return [bytes_to_str(item) for item in value]
+def autoresponder_mapping(value):
+ if value:
+ return ResponseAction.respond_and_continue
+ return ResponseAction.none
+
+
def dmarc_action_mapping(value):
# Convert dmarc_moderation_action to a DMARCMitigateAction enum.
# 2.1 actions are 0==accept, 1==Munge From, 2==Wrap Message,
@@ -175,8 +181,8 @@ enabled: yes
# 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(
- autorespond_owner=ResponseAction,
- autorespond_postings=ResponseAction,
+ autorespond_owner=autoresponder_mapping,
+ autorespond_postings=autoresponder_mapping,
autorespond_requests=ResponseAction,
autoresponse_grace_period=days_to_delta,
bounce_info_stale_after=seconds_to_delta,
=====================================
src/mailman/utilities/tests/test_import.py
=====================================
@@ -136,6 +136,73 @@ class TestBasicImport(unittest.TestCase):
self.assertEqual(self._mlist.autorespond_owner, ResponseAction.none)
self.assertEqual(self._mlist.autoresponse_owner_text, '')
+ def test_autoresponse_owner_yes(self):
+ # Yes -> ResponseAction.respond_and_continue
+ self._mlist.autorespond_owner = DummyEnum.val
+ self._mlist.autoresponse_owner_text = 'DUMMY'
+ self._pckdict['autorespond_admin'] = 1
+ self._pckdict['autoresponse_admin_text'] = 'Autoresponse'
+ self._import()
+ self.assertEqual(self._mlist.autorespond_owner,
+ ResponseAction.respond_and_continue)
+ self.assertEqual(self._mlist.autoresponse_owner_text, 'Autoresponse')
+
+ def test_autoresponse_post_yes(self):
+ # Yes -> ResponseAction.respond_and_continue
+ self._mlist.autorespond_postings = DummyEnum.val
+ self._mlist.autoresponse_postings_text = 'DUMMY'
+ self._pckdict['autorespond_postings'] = 1
+ self._pckdict['autoresponse_postings_text'] = 'Autoresponse'
+ self._import()
+ self.assertEqual(self._mlist.autorespond_postings,
+ ResponseAction.respond_and_continue)
+ self.assertEqual(self._mlist.autoresponse_postings_text,
+ 'Autoresponse')
+
+ def test_autoresponse_post_no(self):
+ # No -> ResponseAction.none
+ self._mlist.autorespond_postings = DummyEnum.val
+ self._mlist.autoresponse_postings_text = 'DUMMY'
+ self._pckdict['autorespond_postings'] = 0
+ self._import()
+ self.assertEqual(self._mlist.autorespond_postings,
+ ResponseAction.none)
+ self.assertEqual(self._mlist.autoresponse_postings_text, '')
+
+ def test_autoresponse_request_continue(self):
+ # Yes, w/forward -> ResponseAction.respond_and_continue
+ self._mlist.autorespond_requests = DummyEnum.val
+ self._mlist.autoresponse_request_text = 'DUMMY'
+ self._pckdict['autorespond_requests'] = 2
+ self._pckdict['autoresponse_request_text'] = 'Autoresponse'
+ self._import()
+ self.assertEqual(self._mlist.autorespond_requests,
+ ResponseAction.respond_and_continue)
+ self.assertEqual(self._mlist.autoresponse_request_text,
+ 'Autoresponse')
+
+ def test_autoresponse_request_discard(self):
+ # Yes, w/discard -> ResponseAction.respond_and_discard
+ self._mlist.autorespond_requests = DummyEnum.val
+ self._mlist.autoresponse_request_text = 'DUMMY'
+ self._pckdict['autorespond_requests'] = 1
+ self._pckdict['autoresponse_request_text'] = 'Autoresponse'
+ self._import()
+ self.assertEqual(self._mlist.autorespond_requests,
+ ResponseAction.respond_and_discard)
+ self.assertEqual(self._mlist.autoresponse_request_text,
+ 'Autoresponse')
+
+ def test_autoresponse_request_no(self):
+ # No -> ResponseAction.none
+ self._mlist.autorespond_requests = DummyEnum.val
+ self._mlist.autoresponse_request_text = 'DUMMY'
+ self._pckdict['autorespond_requests'] = 0
+ self._import()
+ self.assertEqual(self._mlist.autorespond_requests,
+ ResponseAction.none)
+ self.assertEqual(self._mlist.autoresponse_request_text, '')
+
def test_administrativia(self):
self._mlist.administrivia = None
self._import()
View it on GitLab:
https://gitlab.com/mailman/mailman/compare/726e2bb5f9e634a38b817549127feca5d63ca4fc...d87980b017f9c4d7eb18554cf408dc363b37d394
--
View it on GitLab:
https://gitlab.com/mailman/mailman/compare/726e2bb5f9e634a38b817549127feca5d63ca4fc...d87980b017f9c4d7eb18554cf408dc363b37d394
You're receiving this email because of your account on gitlab.com.
_______________________________________________
Mailman-checkins mailing list
[email protected]
Unsubscribe:
https://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org