| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Messages sent to the list's moderators now include the actual recipient
addresses. Given by Tom Briles.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Also:
* Ignore coverage in the testing submodule.
* Remove some unreachable code.
* Spelling.
* Fix a bug in run_thru().
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
* Get rid of explicit __all__ settings and use the @public decorator.
* Get rid of ^L's
* Use expected_count argument for get_queue_messages()
* Various code modernizations.
* Other minor changes to make flake8 happy.
|
| |
|
|
|
|
|
|
|
|
|
| |
Closes #176
Also:
* IMessageStore no longer raises a ValueError if the Message-ID already
exists in the store; it just returns None.
* The internal handle_message() function no longer takes a `preserve`
argument, since messages are never removed from the IMessageStore.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
* 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`.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
documentation. Move non-documentation tests into a separate unittest file.
* Separate out the doctests for IRequest from the doctests for
app/moderator.py and place the latter in a separate file.
* Fix typo in app/membership.py (s/send_goodbye_msg/send_goodbye_message), but
LP: #1091321 tracks more needed fixes in this area.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-------------
* `[passlib]path` configuration variable renamed to `[passlib]configuration`.
* Postfix-specific configurations in the `[mta]` section are moved to a
separate file, named by the `[mta]configuration` variable.
* In the new `postfix.cfg` file, `postfix_map_cmd` is renamed to
`postmap_command`.
Also:
* More Python 2.7-isms, use assertMultiLineEqual() directly.
* Added external_configuration() and load_external() to mailman.config.config
* ConfigLayer does a blanket set of [postfix]postmap_command so subtests
generally won't have to.
|
| | |
|
| |
|
|
| |
(LP: #890675)
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
resources now accept a `held` path component. GETing this returns all held
messages for the mailing list. POSTing to a specific request id under this
url can dispose of the message using `Action` enums.
* `IRequests` interface is removed. Now just use adaptation from
`IListRequests` directly (which takes an `IMailingList` object).
* `handle_message()` now allows for `Action.hold` which is synonymous with
`Action.defer` (since the message is already being held).
* `IListRequests.get_request()` now takes an optional `request_type`
argument to narrow the search for the given request.
- also, print_function is now a standard __future__ import. The template has
been updated, but add this to modules as you edit them.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
automatically do the right thing in most cases. Keep test_suite() in
test_documentation.py since these dynamically set up docs tests properly.
Refactor test_passwords.py so that base class tests aren't bogusly run. Also,
remove test_membership.py which was essentially disabled because it was
testing the MM2 membership API.
|
| | |
|
| | |
|
|
|
Also:
* Use utilities.datetime.now() so that moderation related dates are
predictable during the test suite.
* When a message is accepted, drop it in the pipeline queue. The above bug
was caused by the message going in the incoming queue, and then being
re-moderated.
* Expose mailman.bin.master.Loop in __all__.
* Add some helpful debug logging.
|