diff options
| author | Barry Warsaw | 2017-07-26 23:24:18 +0000 |
|---|---|---|
| committer | Barry Warsaw | 2017-07-26 23:24:18 +0000 |
| commit | ade94e8f833a9472ba9be52a08f4e2f381e7a212 (patch) | |
| tree | 5fba570b0c6f4c0919009cb6f455c18bc732192a /src/mailman/rules/tests/test_loop.py | |
| parent | 02826321d0430d7ffc1f674eeff4221941689ef7 (diff) | |
| parent | bea94cb9538a55b1376afd42c2ce751efce62cfe (diff) | |
| download | mailman-ade94e8f833a9472ba9be52a08f4e2f381e7a212.tar.gz mailman-ade94e8f833a9472ba9be52a08f4e2f381e7a212.tar.zst mailman-ade94e8f833a9472ba9be52a08f4e2f381e7a212.zip | |
Diffstat (limited to 'src/mailman/rules/tests/test_loop.py')
| -rw-r--r-- | src/mailman/rules/tests/test_loop.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/mailman/rules/tests/test_loop.py b/src/mailman/rules/tests/test_loop.py new file mode 100644 index 000000000..09f9fc905 --- /dev/null +++ b/src/mailman/rules/tests/test_loop.py @@ -0,0 +1,52 @@ +# Copyright (C) 2016-2017 by the Free Software Foundation, Inc. +# +# This file is part of GNU Mailman. +# +# GNU Mailman is free software: you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation, either version 3 of the License, or (at your option) +# any later version. +# +# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along with +# GNU Mailman. If not, see <http://www.gnu.org/licenses/>. + +"""Test the `loop` rule.""" + +import unittest + +from mailman.app.lifecycle import create_list +from mailman.rules import loop +from mailman.testing.helpers import specialized_message_from_string as mfs +from mailman.testing.layers import ConfigLayer + + +class TestLoop(unittest.TestCase): + """Test the loop rule.""" + + layer = ConfigLayer + + def setUp(self): + self._mlist = create_list('test@example.com') + + def test_loop_returns_reason(self): + # Ensure loop rule returns a reason. + msg = mfs("""\ +From: anne@example.com +To: test@example.com +Subject: A Subject +List-Post: test@example.com +Message-ID: <ant> + +A message body. +""") + rule = loop.Loop() + msgdata = {} + result = rule.check(self._mlist, msg, msgdata) + self.assertTrue(result) + self.assertEqual(msgdata['moderation_reasons'], + ['Message has already been posted to this list']) |
