Mark Sapiro pushed to branch master at GNU Mailman / Mailman Core

Commits:
b82c5ceb by Mark Sapiro at 2018-03-14T22:41:40Z
Accept no -f/--filename option in mailman inject command.

- - - - -
032f9326 by Mark Sapiro at 2018-03-15T16:34:54Z
Merge branch 'inject' into 'master'

Accept no -f/--filename option in mailman inject command.

Closes #459

See merge request mailman/mailman!365
- - - - -


3 changed files:

- src/mailman/commands/cli_inject.py
- src/mailman/commands/tests/test_cli_inject.py
- src/mailman/docs/NEWS.rst


Changes:

=====================================
src/mailman/commands/cli_inject.py
=====================================
--- a/src/mailman/commands/cli_inject.py
+++ b/src/mailman/commands/cli_inject.py
@@ -56,7 +56,7 @@ def show_queues(ctx, param, value):
     help=_('Show a list of all available queue names and exit.'))
 @click.option(
     '--filename', '-f', 'message_file',
-    type=click.File(encoding='utf-8'),
+    default='-', type=click.File(encoding='utf-8'),
     help=_("""\
     Name of file containing the message to inject.  If not given, or
     '-' (without the quotes) standard input is used."""))


=====================================
src/mailman/commands/tests/test_cli_inject.py
=====================================
--- a/src/mailman/commands/tests/test_cli_inject.py
+++ b/src/mailman/commands/tests/test_cli_inject.py
@@ -20,11 +20,20 @@
 import unittest
 
 from click.testing import CliRunner
-from io import StringIO
+from io import BytesIO, StringIO
 from mailman.app.lifecycle import create_list
 from mailman.commands.cli_inject import inject
+from mailman.testing.helpers import get_queue_messages
 from mailman.testing.layers import ConfigLayer
 
+test_msg = b"""\
+To: a...@example.com
+From: u...@example.com
+Message-ID: <some...@example.com>
+
+body
+"""
+
 
 class InterruptRaisingReader(StringIO):
     def read(self, count=None):
@@ -64,3 +73,13 @@ class TestInject(unittest.TestCase):
             result.output,
             'Usage: inject [OPTIONS] LISTSPEC\n\n'
             'Error: No such queue: bogus\n')
+
+    def test_inject_no_filename_option(self):
+        result = self._command.invoke(
+            inject, (('ant.example.com',)),
+            input=BytesIO(test_msg))
+        self.assertEqual(result.exit_code, 0)
+        self.assertEqual(result.output, '')
+        msg = get_queue_messages('in', expected_count=1)[0].msg
+        # We can't compare the entire message because of inserted headers.
+        self.assertEqual(msg.as_bytes()[:75], test_msg[:75])


=====================================
src/mailman/docs/NEWS.rst
=====================================
--- a/src/mailman/docs/NEWS.rst
+++ b/src/mailman/docs/NEWS.rst
@@ -61,6 +61,8 @@ Bugs
 * Message decoration has been removed from the posting pipeline and added to
   bulk delivery to avoid duplicate decoration of personalized and VERPed
   messages.  (Closes #450)
+* The ``mailman inject`` command now reads standard input as documented if
+  there is no ``-f`` or ``--filename`` option.  (Closes #459)
 
 Command line
 ------------



View it on GitLab: 
https://gitlab.com/mailman/mailman/compare/811b8caf7fc5db8d46d5892f5f33df4fc3e5aba7...032f9326aad0f80c78cb1ca3235840233886ae50

---
View it on GitLab: 
https://gitlab.com/mailman/mailman/compare/811b8caf7fc5db8d46d5892f5f33df4fc3e5aba7...032f9326aad0f80c78cb1ca3235840233886ae50
You're receiving this email because of your account on gitlab.com.
_______________________________________________
Mailman-checkins mailing list
Mailman-checkins@python.org
Unsubscribe: 
https://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org

Reply via email to