| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| |
|
|
| |
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.
|
| |
|
|
|
| |
* Python 3-ify super() calls.
* Remove a bunch of obsolete exception classes.
|
| |
|
|
|
|
|
|
| |
- Fix an interface description.
- Fix a copyright year.
- Fix quote styles.
- Tweak a test.
- Add a test.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
We now have an IAPI interface which defines methods to convert to/from
UUIDs to their REST representations, and to calculate the API-homed full
URL path to a resource. Add implementations API30 and API31 to handle
the two different implementations so far. This also simplifies the
various path_to() calls.
Also: Add support for diff_cover to tox.ini to check that all
differences against the master branch have full test coverage.
|
| |
|
|
|
|
| |
Rather than sprinkle API version string tests all over the place, create
an IAPI interface which encapsulates the differences between API 3.0 and
3.1, and arrange for this to be used to convert to and from UUIDs.
|
| |
|
|
|
|
| |
Increase coverage.
Add ISubscriptionService.find_member() as per discussion.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
|
| |
* digestable -> digests_enabled
* nondigestable: removed
* Exposed digests_enabled, digest_send_periodic, digest_volume_frequency in
REST.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Add a doctest for the `owners` top-level resource.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
`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.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
once their subscription is completed.
Remove some dead tests.
Update an interface.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
"token owner". The latter describes who owns the token --i.e. which phase of
the workflow is being waited on. It can either be no one, the subscriber, or
the moderator.
Tokens and token owners are properly initialized and reset when the workflow
is completed, so we always know which step of the process is being waited on.
Also, remove ISubscriptionService.join() since this will now be handled by the
IRegistrar adapter.
|
| |\
| |
| |
| | |
accept lists of strings.
|
| |\ \
| |/
|/|
| |
| |
| | |
It now properly supports email verification and subscription confirmation
by the user, and approval by the moderator using unique tokens.
``IMailingList`` objects now have a ``subscription_policy`` attribute.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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.
|
| | |\ |
|
| | |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
the mailing list (via preferred address/user or explicit address).
IMember.get_member() is defined to return the explicit address when members
are subscribed in both ways.
IMember.get_memberships() returns a sequence of length 0, 1, or 2 containing
all the member records associated with the email address.
Fixed the AbstractMemberRoster methods query to properly return subscriptions
via the user's preferred address and via an explicit address.
|
| | | |
|
| | |
| |
| |
| |
| | |
* The workflow state manager no longer allows updates via .save().
* Restoring a workflow state evicts the record from the database.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
course. This commit contains test failures because the next step is to hook
everything up.
Changes here include:
* confirm.txt removes the URL since we can't know that.
* Changes to the ConfirmationNeededEvent
* Create the Pendable early in the workflow.
* Clean up test.
* Update IRegistrar docstring.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
To handle the case of restoring a saved workflow, allow the subscriber to be
None in the constructor, but assert that it is not None after the first
workflow step.
Add setters/getters for handling save/restore.
In the base workflow interface, rename key to token.
|
| | |\
| |/
|/| |
|
| | | |
|
| |\ \ |
|
| | | |
| | |
| | |
| | | |
* add and remove owners using the address
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Change `Owner` to `DomainOwner`
* Fix indentation errors in docs
* add multiple owners using `add_owners`
* all dummy addresses should be using example.com, example.org to avoid conflict ever
* add dummy tests
|