Barry Warsaw pushed to branch master at mailman / Mailman
Commits:
49158a23 by Mark Sapiro at 2017-05-24T17:58:34-07:00
Refactor Header object test to create the message without cheating.
- - - - -
3df8d518 by Mark Sapiro at 2017-05-24T22:25:11-07:00
Ensure the held message subject is a string.
- - - - -
792f1eb7 by Barry Warsaw at 2017-05-25T15:35:46+00:00
Merge branch 'header' into 'master'
Refactor Header object test to create the message without cheating.
See merge request !283
- - - - -
2 changed files:
- src/mailman/app/moderator.py
- src/mailman/chains/tests/test_headers.py
Changes:
=====================================
src/mailman/app/moderator.py
=====================================
--- a/src/mailman/app/moderator.py
+++ b/src/mailman/app/moderator.py
@@ -79,7 +79,8 @@ def hold_message(mlist, msg, msgdata=None, reason=None):
msgdata['_mod_message_id'] = message_id
msgdata['_mod_listid'] = mlist.list_id
msgdata['_mod_sender'] = msg.sender
- msgdata['_mod_subject'] = msg.get('subject', _('(no subject)'))
+ # The subject can sometimes be a Header instance. Stringify it.
+ msgdata['_mod_subject'] = str(msg.get('subject', _('(no subject)')))
msgdata['_mod_reason'] = reason
msgdata['_mod_hold_date'] = now().isoformat()
# Now hold this request. We'll use the message_id as the key.
=====================================
src/mailman/chains/tests/test_headers.py
=====================================
--- a/src/mailman/chains/tests/test_headers.py
+++ b/src/mailman/chains/tests/test_headers.py
@@ -19,7 +19,7 @@
import unittest
-from email.header import Header
+from email import message_from_bytes
from mailman.app.lifecycle import create_list
from mailman.chains.headers import HeaderMatchRule, make_link
from mailman.config import config
@@ -212,23 +212,18 @@ This is junk
def test_get_all_returns_non_string(self):
# Test case where msg.get_all() returns header instance.
- msg = mfs("""\
+ msg = message_from_bytes(b"""\
From: [email protected]
To: [email protected]
-Subject: =?unknown-8bit?q?Become_smarter_now_=96_Increase__your_brain...?=
+Subject: Bad \x96 subject
Message-ID: <ant>
body
-""")
- # XXX In the wild we have seen a message instance in which the subject
- # header value is an email.header.Header instance rather than a
- # string. We don't know how to recreate that here so we cheat.
- msg['Subject'] = Header(
- 'Become_smarter_now \x96 Increase your brain...', 'utf-8')
+""", Message)
msgdata = {}
header_matches = IHeaderMatchList(self._mlist)
- header_matches.append('Subject', '=\?utf', 'hold')
+ header_matches.append('Subject', 'Bad', 'hold')
# This event subscriber records the event that occurs when the message
# is processed by the owner chain.
events = []
View it on GitLab:
https://gitlab.com/mailman/mailman/compare/3596e9f971e289270ec372266cd0d891b61b56e6...792f1eb7d511b3b4ec8564c9fcbfc87acd0de9a4
---
View it on GitLab:
https://gitlab.com/mailman/mailman/compare/3596e9f971e289270ec372266cd0d891b61b56e6...792f1eb7d511b3b4ec8564c9fcbfc87acd0de9a4
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