summaryrefslogtreecommitdiff
path: root/src/mailman/runners/tests
Commit message (Collapse)AuthorAgeFilesLines
* Ignore syntactically invalid sender addresses.Mark Sapiro2017-06-301-0/+11
|
* Remove the dependency on httplib2.Barry Warsaw2017-02-061-3/+4
| | | | Closes #42
* Bump copyright years.Barry Warsaw2017-01-0414-14/+14
|
* Remove some unnecessary code and update a comment.Barry Warsaw2016-11-241-1/+1
|
* Closes: #259Barry Warsaw2016-10-311-1/+1
| | | | | Remove the digest mbox files after the digests are sent. Given by Aurélien Bompard.
* Implment review suggestionsAurélien Bompard2016-10-311-3/+3
|
* Remove digest mbox after sending itAurélien Bompard2016-10-311-0/+3
| | | | Fixes #259
* Simplify the implementation.Barry Warsaw2016-10-172-6/+5
| | | | | | | | | | | | | | | | | | | | | | This merges the SubscriptionManager and UnsubscriptionManager into a single SubscriptionManager implementation that handles both register() and unregister(). This allows us to use direct class-based adaptation instead of the more clunky getAdapter() API. We can also eliminate the funky _get_workflow() implementation detail. This has a couple of side-effects. .confirm() must lookup the token in the pendings database and pull out the pending type, dispatching to the proper class depending on the type, or raising a LookupError if the token is None or there is no pendable associated with the given token. This feels like an acceptable trade-off. However, this *also* means that IWorkflowStateManager must lose its 'name' argument in its methods. That's because we won't actually know the name until its too late. Honestly, the name wasn't providing much value anyway (it was always the subclass's name), so losing that seems fine too. The complication here is that the name was a primary key in the 'workflowstate' table, so we need to add its removal in the database migration.
* flake8 fixes.Barry Warsaw2016-10-161-3/+2
|
* Split registration (subscription) and unsubscription:Barry Warsaw2016-09-131-20/+60
| | | | | | | | * events * notices * handlers Also, be sure to do only one `leave` command per email.
* Fix more tests.Barry Warsaw2016-09-111-0/+2
|
* IWorkflowManager -> ISubscriptionManagerBarry Warsaw2016-09-012-5/+5
|
* CheckpointingBarry Warsaw2016-09-013-9/+6
|
* Intermediate CommitAbhilash Raj2016-09-013-6/+89
|
* New template system. Closes #249Barry Warsaw2016-07-161-0/+27
| | | | | The new template system is introduced for API 3.1. See ``src/mailman/rest/docs/templates.rst`` for details.
* Minor cleanups.Barry Warsaw2016-05-151-2/+2
|
* Fixed mailman/issue#234.Mark Sapiro2016-05-151-14/+22
| | | | | | | Wraps the message/rfc822 parts in a MIME digest in a multipart/digest part. Updated the tests and the doc test.
* Import order flake8 plugin.Barry Warsaw2016-03-272-3/+3
| | | | Fix lots of import order errors discovered by the new plugin.
* Clean up the runners directory.Barry Warsaw2016-03-2513-284/+109
|
* Close #208Barry Warsaw2016-03-201-4/+40
| | | | Don't let crashes in IArchiver plugins break handlers or runners.
* Make creating Link objects a more convenient.Barry Warsaw2016-01-251-4/+2
| | | | | | Link.__init__() can now take an IRule or the string naming a rule, which will be looked up in config.rules. Similarly, it can take an IChain or the name of a chain.
* Additional refactoring to use the QuerySequence wrapper, so that we can stillBarry Warsaw2016-01-061-1/+1
| | | | | | use len() and slicing on SQLAlchemy query results. We also don't need to list()-ify the results in the tests. This isn't perfect, but at least it doesn't introduce yet another layer violation.
* Make the members request pageableAurélien Bompard2016-01-061-1/+1
|
* Happy New Year.Barry Warsaw2016-01-0213-13/+13
|
* Allow list names to have command suffixesAurélien Bompard2015-11-291-0/+32
| | | | | | Fixes #168 Minor style fixes and add another test.
* 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)
* For now, treat `DeliveryMode.summary_digests` the same as `.mime_digests`.Barry Warsaw2015-09-061-1/+77
| | | | | (Closes #141). Also, don't enqueue a particular digest if there are no recipients for that digest.
* * Messages now include a `Message-ID-Hash` as the replacement forBarry Warsaw2015-06-142-9/+9
| | | | | | `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.
* Plumb the subscription policy through the REST API.Barry Warsaw2015-04-152-5/+8
|
* Prevent replay attacks with the confirmation token.Barry Warsaw2015-04-151-1/+1
|
* Full test suite passes.Barry Warsaw2015-04-141-0/+4
| | | | | | | | | | | | | * 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-142-3/+3
|
* Bump copyright years.Barry Warsaw2015-01-0413-13/+13
|
* Remove huge amounts of now unnecessary file boilerplate.Barry Warsaw2014-12-2213-78/+22
|
* Trunk merge.Barry Warsaw2014-12-221-36/+67
|\
| * LP: #1130696 - AttributeError on .senderBarry Warsaw2014-12-101-37/+67
| |\
| | * Make the MIMEDigester generate a subclass of MIMEMultipart with our additionsAurélien Bompard2014-12-091-35/+10
| |/ | | | | | | Fixes bug #1130696 (differently)
* | Move internationalized digest tests to unittests.Barry Warsaw2014-12-201-0/+75
| |
* | Fix the NNTP errorsBarry Warsaw2014-12-171-3/+4
| |
* | Fix LMTP runner tests.Barry Warsaw2014-12-171-1/+30
| |
* | Fix mta and lmtp tests.Barry Warsaw2014-12-171-1/+1
| |
* | Use listid instead of (fqdn) listname in the metadata pickle.Barry Warsaw2014-12-1511-66/+66
| | | | | | | | | | | | 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-151-1/+1
| | | | | | | | | | | | | | | | | | * 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.
* | Checkpointing.Barry Warsaw2014-11-301-3/+3
|/ | | | | | | | | | 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-291-0/+112
|\ | | | | | | | | | | | | | | | | | | | | 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-271-0/+96
|/ | | | Fixes: 1130957
* Use print functions consistently through, and update all __future__ imports toBarry Warsaw2014-04-282-2/+2
| | | | | | | | 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-062-0/+2
| | | | | | | | | | | | | | | | | | | | | | * 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-0112-12/+12
|