| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
The `reason` attribute of `hold_message()` was always None. Serialize
the moderation reasons list and pass it to the function.
This allows the `reason` attribute in REST to actually contain the
moderation reason. It was always blank before.
|
| | |
|
| |
|
|
|
| |
Messages sent to the list's moderators now include the actual recipient
addresses. Given by Tom Briles.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Given by Aurélien Bompard.
Closes #226
|
| |
|
|
| |
Fixes #226.
|
| | |
|
| |
|
|
|
|
|
| |
This suppresses all errors in the file. Use `noqa`, although pep8
doesn't honor this for all errors.
There may be a plugin which helps.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
Slightly rewrite a test so that the event subscribers are more narrow.
Opportunistically remove ^L
|
| |
|
|
| |
This reverts commit 703fc135dfcd496a704562ddc263aa0f4f828de9.
|
| |
|
|
|
| |
Action.defer can't be used on header match links since the 'any' link
that jumped to the configuration default happens before header matches.
|
| |
|
|
| |
It makes it clearer what values are valid, and allows validation.
|
| |
|
|
|
|
|
| |
Add a numerical index property to HeaderMatch objects, and change the
HeaderMatchSet manager to take the order into account.
Items can now be inserted and removed by index.
|
| | |
|
| |
|
|
| |
Fix some comments.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Use `yield from` wherever appropriate.
* Use SA's .one_or_none() where appropriate.
- Fix a bug in MailingList.pass_extensions.
- Use ValueError in other places for consistency.
- Remove unreached/nonsense code.
- Simplify the SubscriptionService.find_member() and .find_members()
implementations.
- Boost coverage.
|
| | |
|
| |
|
|
|
|
| |
Implement the suggestions from the review.
Cleanups by Barry.
|
| |
|
|
|
| |
* Fix ``UnicodeEncodeError`` in the hold chain when sending the authorization
email to the mailing list moderators. (Closes: #144)
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Given by Aurélien Bompard, tweaked by Barry Warsaw.
Remove the inaccurate confirmation url and admindb urls from the substitution
dictionaries for postauth.txt and posthold.txt, and the templates.
|
| | |
|
| | |
|
| |
|
|
|
| |
* Shore up the coverage.ini file.
* Fix up Link.__repr__()
|
| |
|
|
|
|
|
|
| |
reflect this.
Also, mock out sys.stderr on some tests so that their nose2 output is quieter.
A few other minor coding style consistencies.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-------------
* `[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.
|
| |
|
|
|
| |
The code base is now also `python2.7 -3` clean, although there are still
some warnings in 3rd party dependencies. LP: #1073506
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The default hash is `sha512_crypt`.
* Events renamed and moved:
* `mailman.chains.accept.AcceptNotification`
* `mailman.chains.base.ChainNotification`
* `mailman.chains.discard.DiscardNotification`
* `mailman.chains.hold.HoldNotification`
* `mailman.chains.owner.OwnerNotification`
* `mailman.chains.reject.RejectNotification`
changed to (respectively):
* `mailman.interfaces.chains.AcceptEvent`
* `mailman.interfaces.chains.ChainEvent`
* `mailman.interfaces.chains.DiscardEvent`
* `mailman.interfaces.chains.HoldEvent`
* `mailman.interfaces.chains.AcceptOwnerEvent`
* `mailman.interfaces.chains.RejectEvent`
* A `ConfigurationUpdatedEvent` is triggered when the system-wide global
configuration stack is pushed or popped.
* With the switch to `passlib`_, `[passwords]password_scheme` has been
removed. Instead use `[passwords]path` to specify where to find the
`passlib.cfg` file. See the comments in `schema.cfg` for details.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bit. The previous `[spam.header.foo]` sections have been removed.
Instead, there's a new `[antispam]` section that contains a `header_checks`
variable. This variable takes multiple lines of `Header: regexp` values,
one per line. There is also a new `jump_chain` variable which names the
chain to jump to should any of the header checks (including the
list-specific, and programmatically added ones) match.
* Fixed a typo when returning the configuration file's header match checks.
(LP: #953497)
Also:
- Remove an unused method.
- Improve test coverage for mailman/app/bounces.py
- 100% test coverage for mailman/chains/headers.py
- Various other minor code cleanup.
- Fixed the 'any' rule, which was checking a bogus metadata dictionary key.
|
| | |
|