| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
| |
Closes #42
|
| | |
|
| |
|
|
|
|
|
|
| |
Also:
* Change doctest cleanups to be an ExitStack.
* Added [dmarc]cache_lifetime setting.
* Cleanup pass through dmarc-mitigation.rst.
* Be sure the cached org domain file is cleaned up when the world is reset.
|
| |
|
|
| |
Also, use the better way to set the LMTP ident.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
* events
* notices
* handlers
Also, be sure to do only one `leave` command per email.
|
| | |
|
| |
|
|
|
| |
The new template system is introduced for API 3.1. See
``src/mailman/rest/docs/templates.rst`` for details.
|
| | |
|
| |
|
|
| |
Closes #224
|
| |
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
| |
* Update some comments.
* Slightly rewrite a conditional test.
* Coding style fixes.
* Add a convenience to get_queue_message().
* Add NEWS.
|
| |
|
|
|
| |
This refactors the setting of a user's preferred address to the first in
their list of linked addresses.
|
| |
|
|
|
| |
* Python 3-ify super() calls.
* Remove a bunch of obsolete exception classes.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| | |
|
| | |
|
| |
|
|
| |
returns the newly created member.
|
| | |
|
| | |
|
| | |
|
| |\ |
|
| | |\
| | |
| | |
| | | |
(LP: #1130696)
|
| | |/| |
|
| | |/
| |
| |
| | |
Fixes bug #1130696 (differently)
|
| | | |
|
| | | |
|
| | | |
|
| |/
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
Currently, only /<api>/system and its subpaths work, but basic auth does work
too. Requires a refactoring modification to falcon.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
`legacy-announce` style is added. This is similar to the `legacy-default`
except set up for announce-only lists.
Also, major refactoring of the default style into (hopefully) smaller
composable units.
|
| |
|
|
|
|
| |
addresses and memberships. (LP: #1074374)
Also: Clean up pyflakes warning by removing an obsolete __all__ entry.
|
| |
|
|
|
| |
The code base is now also `python2.7 -3` clean, although there are still
some warnings in 3rd party dependencies. LP: #1073506
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
magic in the _post_process() method, more ConfigurationUpdatedEvents. More
centralization of event initialization.
Added property Configuration.language_configs.
Instead of initializing events in initialize_2(), initialize them in
initialize_1() and do it before the configuration is loaded.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| | |
- Rewrite soem of the code to use the new transaction context manager,
instead of explicitly accessing the config.db global.
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
can be tested separately.
- Add an `until` argument to load_migrations() so that we can load only up to
a given timestamp.
- In load_migrations(), ignore files in which the `version` part of the file
name is empty.
- In migrations.rst, use the new, better way of ensuring post-test cleanup.
- Add tests for partial upgrades.
- LP: #971013 - schema migrations for beta 2.
- LP: #967238 - IMailingList.archive + IMailingList.archive_private ->
IMailingList.archive_policy, and add ArchivePolicy enum.
- Move the `chdir` context manager to helpers.py and add `temporary_db`
context manager.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
- Add a `cleanups` global to doctests. This can be used to register
functions which will get called automatically at doctest tearDown time.
|