diff options
| author | Barry Warsaw | 2016-12-30 16:43:52 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2016-12-30 16:43:52 -0500 |
| commit | f308782d733373246ba3b3bb42d1d6e68695f8f3 (patch) | |
| tree | a7752d358fb0f9d40a848a8f9e9e07ef09201330 /src/mailman/rules | |
| parent | 71d01e786839f70a863ef2711fd2a173c0b5785d (diff) | |
| download | mailman-f308782d733373246ba3b3bb42d1d6e68695f8f3.tar.gz mailman-f308782d733373246ba3b3bb42d1d6e68695f8f3.tar.zst mailman-f308782d733373246ba3b3bb42d1d6e68695f8f3.zip | |
Minor tweaks and coverage:
* Format and wrap a comment.
* Add a test for having two From: headers.
* use <alpha@example.com> as standard Message-ID
* Cover URLError case.
Diffstat (limited to 'src/mailman/rules')
| -rw-r--r-- | src/mailman/rules/dmarc.py | 2 | ||||
| -rw-r--r-- | src/mailman/rules/tests/test_dmarc.py | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/mailman/rules/dmarc.py b/src/mailman/rules/dmarc.py index 90b874e32..890fe9ff2 100644 --- a/src/mailman/rules/dmarc.py +++ b/src/mailman/rules/dmarc.py @@ -48,7 +48,7 @@ def _get_suffixes(url): try: d = request.urlopen(url) except error.URLError as e: - elog.error('Unable to retrieve data from %s: %s', url, e) + elog.error('Unable to retrieve data from %s: %s', url, e.reason) return for line in d.readlines(): line = str(line, encoding='utf-8') diff --git a/src/mailman/rules/tests/test_dmarc.py b/src/mailman/rules/tests/test_dmarc.py index 666375699..16cf947cc 100644 --- a/src/mailman/rules/tests/test_dmarc.py +++ b/src/mailman/rules/tests/test_dmarc.py @@ -21,9 +21,11 @@ organizational domain tests.""" from dns.rdatatype import TXT from dns.resolver import NXDOMAIN, NoAnswer from mailman.rules import dmarc +from mailman.testing.helpers import LogFileMark from mailman.testing.layers import ConfigLayer from public import public from unittest import TestCase, mock +from urllib.error import URLError @public @@ -108,3 +110,16 @@ class TestDMARCRules(TestCase): def test_exception_to_wild_card(self): self.assertEqual( dmarc._get_org_dom('ssub.sub.city.kobe.jp'), 'city.kobe.jp') + + def test_no_publicsuffix_dot_org(self): + mark = LogFileMark('mailman.error') + with mock.patch('mailman.rules.dmarc.request.urlopen', + side_effect=URLError('no internet')): + domain = dmarc._get_org_dom('ssub.sub.city.kobe.jp') + self.assertEqual(domain, 'kobe.jp') + line = mark.readline() + self.assertEqual( + line[-95:], + 'Unable to retrieve data from ' + 'https://publicsuffix.org/list/public_suffix_list.dat: ' + 'no internet\n') |
