summaryrefslogtreecommitdiff
path: root/src/mailman/runners (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Happy New Year.Barry Warsaw2016-01-0225-25/+25
|
* Add a send-digests subcommand to send list digests right now.Barry Warsaw2015-12-201-1/+1
| | | | | | | | | | | | | | * Add a `mailman send-digests` subcommand which replaces the functionality of the MM2.1 senddigests.py cronjob. * Use mlist.data_path where appropriate instead of crafting it from config.LIST_DATA_DIR. This makes it more consistent to switch to using the list-id as the data subdirectory. * Refactor the to_digest handler so that we can implement maybe_send_digest_now() for the internal API. * Fix some typos in subcommand --help summaries.
* Allow list names to have command suffixesAurélien Bompard2015-11-292-0/+38
| | | | | | Fixes #168 Minor style fixes and add another test.
* Reorder the default-posting-chain to avoid spam.Aurélien Bompard2015-11-211-2/+2
| | | | | | Fixes: #163 Adapt unit tests.
* Core no longer depends on the standalone `mock` module. (Closes: #146)Barry Warsaw2015-09-221-1/+1
|
* For Python versions earlier than 3.5, use a compatibility layer for aBarry Warsaw2015-09-071-0/+16
| | | | backported smtpd module which can accept non-UTF-8 data. (Closes #140)
* Don't decode bytes in smtpd. Pass them through to the email package so it canBarry Warsaw2015-09-071-3/+3
| | | | convert them from bytes to message objects.
* Vendorize Python 3.5's smtpd module, which properly handles non-UTF-8 byteBarry Warsaw2015-09-072-5/+14
| | | | input. Use this version only for Python 3.4.
* For now, treat `DeliveryMode.summary_digests` the same as `.mime_digests`.Barry Warsaw2015-09-063-17/+121
| | | | | (Closes #141). Also, don't enqueue a particular digest if there are no recipients for that digest.
* Turn off tying the -E test suite option to debugging the database logger.Barry Warsaw2015-08-181-1/+1
| | | | | | | SQLAlchemy is generally pretty chatty and usually not necessary to debug. Set use_poll=True in asyncore.loop() which improves Python 3.5 compatibility. We were getting OSErrors in stop() when using select under Python 3.5.
* * REST API version 3.1 introduced. Mostly backward compatible with versionBarry Warsaw2015-07-181-0/+10
| | | | | | 3.0 except that UUIDs are represented as hex strings instead of 128-bit integers, since the latter are not compatible with all versions of JavaScript.
* * Messages now include a `Message-ID-Hash` as the replacement forBarry Warsaw2015-06-144-9/+12
| | | | | | `X-Message-ID-Hash` although the latter is still included for backward compatibility. Also be sure that all places which add the header use the same algorithm.
* Prepare for 3.1.Barry Warsaw2015-05-011-1/+1
| | | | Fix some tests that incorrectly hardcoded "3.0"
* Plumb the subscription policy through the REST API.Barry Warsaw2015-04-153-6/+9
|
* Prevent replay attacks with the confirmation token.Barry Warsaw2015-04-152-3/+3
|
* Full test suite passes.Barry Warsaw2015-04-142-0/+5
| | | | | | | | | | | | | * Make sure Registrar.discard() removces any workflow state manager state associated with the token, and that this is flushed to SA. * Adjust the email commands to the new IRegistrar API. * Update the IRegistrar interface. * Add IWorkflowStateManager.discard() and make `count` an attribute/property. * Mark two tests as expected failures due to LP: #1444184.
* Checkpointing.Barry Warsaw2015-04-143-6/+4
|
* Fix merge turd.Barry Warsaw2015-03-291-1/+1
|
* Merge abompard's subpolicy branch port with trunk. Still a WIP.Barry Warsaw2015-03-291-1/+1
|\
| * Resurrect Barry's subpolicy branch (lp:~barry/mailman/subpolicy)Aurélien Bompard2015-03-201-15/+4
| |
* | Replace add_member() with subscribe() helper.Barry Warsaw2015-03-261-10/+4
| |
* | Extended test helper subscribe() which takes an optional email address andBarry Warsaw2015-03-261-0/+4
| | | | | | | | returns the newly created member.
* | * Refactor add_member() so that it uses a RequestRecord namedtuple.Barry Warsaw2015-03-211-6/+10
|/ | | | | | * RequestRecord contains no password key so these are not part of the held requests database any more. * Pending record contains `email` now instead of `address`.
* We don't need the 'six' package any more.Barry Warsaw2015-01-043-9/+9
|
* Bump copyright years.Barry Warsaw2015-01-0425-25/+25
|
* * ``$cwd`` is now an additional substitution variable for the ``mailman.cfg``Barry Warsaw2015-01-032-12/+15
| | | | | | | | | | | | | file's ``[paths.*]`` sections. A new ``[paths.here]`` section is added, which puts the ``var_dir`` in ``$cwd``. It is made the default layout. * You can now view the contents of, inject messages into, and delete messages from the various queue directories via the ``<api>/queues`` resource. Also: inject_message() and inject_text() now return the filebase of the file injected into the queue directory.
* * You can access the system configuration via the resource pathBarry Warsaw2014-12-261-1/+1
| | | | | | | | | ``/3.0/system/configuration/<section>``. This returns a dictionary with the keys being the section's variables and the values being their value from ``mailman.cfg`` as verbatim strings. You can get a list of all section names via ``/3.0/system/configuration`` which returns a dictionary containing the ``http_etag`` and the section names as a sorted list under the ``sections`` key. The system configuration resource is read-only.
* Remove huge amounts of now unnecessary file boilerplate.Barry Warsaw2014-12-2225-116/+45
|
* Trunk merge.Barry Warsaw2014-12-222-39/+69
|\
| * LP: #1130696 - AttributeError on .senderBarry Warsaw2014-12-102-40/+69
| |\
| | * Make the MIMEDigester generate a subclass of MIMEMultipart with our additionsAurélien Bompard2014-12-092-37/+12
| |/ | | | | | | Fixes bug #1130696 (differently)
* | Refactor subject-prefix handler out of cook-headers handler and make all testsBarry Warsaw2014-12-211-3/+3
| | | | | | | | pass.
* | Move internationalized digest tests to unittests.Barry Warsaw2014-12-202-199/+76
| |
* | Only convert payload if it's bytes.Barry Warsaw2014-12-181-11/+10
| |
* | Fix the NNTP errorsBarry Warsaw2014-12-172-4/+5
| |
* | Fix LMTP runner tests.Barry Warsaw2014-12-172-47/+44
| |
* | Fix mta and lmtp tests.Barry Warsaw2014-12-172-6/+6
| |
* | More test repair.Barry Warsaw2014-12-152-10/+10
| |
* | Use listid instead of (fqdn) listname in the metadata pickle.Barry Warsaw2014-12-1517-93/+94
| | | | | | | | | | | | load_external() now always opens in utf-8 mode. More test repair.
* | * Read the .cfg files not as bytes any more, but as UTF-8 encoding files.Barry Warsaw2014-12-152-4/+8
| | | | | | | | | | | | | | | | | | * Revert LP: #1170347 to not .as_string() the message being added the mailbox, because Python 3.4 handles this properly by default. Fix up some lmtp code, though I don't thinkk it's quite right yet. Fix handler tests.
* | Port some of the commands.Barry Warsaw2014-12-131-1/+1
| |
* | Checkpointing.Barry Warsaw2014-11-304-18/+16
|/ | | | | | | | | | By using `six` I think I have most of the imports squared away. There's probably still uses of `unicode` built-ins that need fixing. The idea is to first get the test suite running (which it doesn't yet), and then to fix tests. There's a bug in lazr.config which requires us to patch it for now.
* * Fixed Unicode errors in the digest runner and when sending messages to theBarry Warsaw2014-11-292-4/+121
|\ | | | | | | | | | | | | | | | | | | | | site owner as a fallback. Given by Aurélien Bompard. (LP: #1130957). Also: * Convert some uses of the unicode() built-in to bytes.decode() in preparation for Python 3 and to eliminate some pyflakes errors. * Added LogFileMark.read() as a convenience method.
| * Fix some unicode issuesAurélien Bompard2014-11-272-1/+97
|/ | | | Fixes: 1130957
* Fix a few issues with `python2 -3` compatibility.Barry Warsaw2014-11-191-1/+1
|
* Tox-ify the test suite. Now you don't have to create a virtualenv separately.Barry Warsaw2014-11-071-6/+6
| | | | | | | | | | | To do this, we have to handle random test ordering, since tox explicitly sets PYTHONHASHSEED. That's a good thing for the future Python 3 port. Removed `mailman conf -t/--sort`; now the output is always sorted. RFC 2369 headers are now sorted before being added. etag repr dicts are sorted using pprint.pformat().
* Use print functions consistently through, and update all __future__ imports toBarry Warsaw2014-04-2811-64/+64
| | | | | | | | reflect this. Also, mock out sys.stderr on some tests so that their nose2 output is quieter. A few other minor coding style consistencies.
* Several internal improvements:Barry Warsaw2014-01-063-0/+3
| | | | | | | | | | | | | | | | | | | | | | * New events: - ConfirmationNeededEvent is triggered when a pendable requiring confirmation is created. This allows us to define an event handler for this event which sends the user notification. - SubscriptionEvent is triggered when a member is added to a mailing list. This lets us define an event handler which sends the welcome message. * send_welcome_message() now takes a member parameter instead of an address, which lets us directly access the member's delivery mode and user display name (if the member has a user, which it might not in some cases). * Use the list id in the pendable record instead of the list name for robustness (the latter can change but the former is permanent). * Test more registration conditions. * In the bin/runner command line switch handling, default `verbose` to None instead of False. This makes it work better with nose's -E switch (log to stderr). * In call_api(), if a POST, PUT, or PATCH method is used and data is None, encode the empty dictionary; seems like the behavior of urlencode() has changed, so this is safer. * Fix style and pyflakes warnings.
* Bump copyright years.Barry Warsaw2014-01-0124-24/+24
|
* More fixes.Barry Warsaw2013-11-261-0/+1
|