summaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Coverage improvements.Barry Warsaw2015-12-296-10/+53
| | | | | | | | * Boost coverage. * Don't report coverage on the test modules. * In one test, when acquiring the lock, set a timeout. Hopefully this will eliminate the occasional test deadlock. * Fix a buglet in wrap()
* Boost coverage.Barry Warsaw2015-12-262-9/+90
| | | | | Use Python 3.5 to run the coverage tests. Clean up the code style a bit.
* Tweak the API.Barry Warsaw2015-12-261-23/+37
|
* Give the predictable ID factories similar APIs.Aurélien Bompard2015-12-265-34/+54
|
* Return predictable token IDs in testing mode.Aurélien Bompard2015-12-262-17/+33
| | | | | | This commits builds upon the mailman.utilities.uid.UniqueIDFactory to generate predictable tokens when the testing mode is activated. This will make VCR tapes more diffable between runs.
* The ``mailman members`` command can now be used to display members based onBarry Warsaw2015-12-225-86/+270
| | | | | subscription roles. Also, the positional "list" argument can now accept list names or list-ids.
* Bump coverage to 100%Barry Warsaw2015-12-222-4/+39
|
* Expose the "bump digest" and "send digest" functionality though the REST APIBarry Warsaw2015-12-226-9/+238
| | | | | | | via the ``<api>/lists/<list-id>/digest`` end-point. GETting this resource returns the ``next_digest_number`` and ``volume`` as the same values accessible through the list's configuraiton resource. POSTing to the resource with either ``send=True``, ``bump=True``, or both invokes the given action.
* Port bump-digests to MM3, via the `mailman digests` command.Barry Warsaw2015-12-223-28/+110
| | | | | Fix a buglet where if maybe_send_digest_now() was called before a digest has been prepared, a FileNotFoundError would be raised.
* Refactor bump_digest_number_and_volume() and maybe_send_digest_now() intoBarry Warsaw2015-12-226-175/+463
| | | | | | | | | their own module inside the mailman.app package. With the latter, remove the "all lists" functionality and require the mlist argument. We'll handle the "all lists" use case higher up the stack. Also, rename the send-digests handler digests since we'll next add the bump functionality.
* Be liberal with the transaction.Barry Warsaw2015-12-212-8/+13
|
* Add a test and a fix for the no-args version of `mailman send-digests`.Barry Warsaw2015-12-202-7/+74
|
* Move the data_paths.Barry Warsaw2015-12-204-5/+45
|
* Add a send-digests subcommand to send list digests right now.Barry Warsaw2015-12-2013-43/+433
| | | | | | | | | | | | | | * 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.
* NEWSBarry Warsaw2015-12-191-0/+3
|
* Digests improvements:Barry Warsaw2015-12-1911-16/+211
| | | | | | | * digestable -> digests_enabled * nondigestable: removed * Exposed digests_enabled, digest_send_periodic, digest_volume_frequency in REST.
* Slightly better suggestions for creating the Alembic file.Barry Warsaw2015-12-191-7/+4
|
* Update NEWS.Barry Warsaw2015-12-171-0/+2
|
* Fix the error code for a corner case.Barry Warsaw2015-12-172-7/+7
| | | | | | | I.e. when the URL is good, but the request dictionary contains a bogus attribute, you should get a 400 error, not a 404. Also, fix some comments.
* Remove code accidentally pulled in from another branch.Barry Warsaw2015-12-172-10/+0
|
* Many improvements to listconf.py.Barry Warsaw2015-12-173-64/+304
| | | | | | | | | | | | | | | | Closes #182 * Improve the documentation, especially in describing how to PUT and PATCH to list configuration subresources. * Improve the return codes for many error corner cases. Specifically, this makes more consistent when a 400 error is returned or a 404 error is returned. * Improve the handling of some weird corner cases, and add tests. * Fix the setting of error response reasons by not trying to .format() into a bytes object (which isn't allowed in Python 3). * Add lots of comments to the code, which improves the readability of all the twisty little turns. * 100% code coverage for listconf.py!
* adds tests for new digest attributesYashu Seth2015-12-161-0/+2
|
* adds digest_send_periodic, digest_volume_frequency attributesYashu Seth2015-12-161-0/+2
|
* A few minor cleanups.Barry Warsaw2015-12-165-33/+29
|
* Fix a leftover type argumentAurélien Bompard2015-12-161-1/+1
|
* Bring back the constructor for PendedKeyValueAurélien Bompard2015-12-161-0/+4
|
* Implement suggestions from the reviewAurélien Bompard2015-12-165-26/+47
|
* Add a commit to avoid a lock in PostgreSQLAurélien Bompard2015-12-161-0/+5
|
* Handle data migrationAurélien Bompard2015-12-161-0/+14
|
* Resolve conflicts.Barry Warsaw2015-12-161-2/+2
|
* Add a commit to avoid a lock in PostgreSQLAurélien Bompard2015-12-162-4/+6
|
* Handle data migrationAurélien Bompard2015-12-162-0/+128
|
* Update the REST query to use the find() methodAurélien Bompard2015-12-161-16/+3
|
* Add indexes on the Pendable fields that can be queried upon.Aurélien Bompard2015-12-162-13/+39
| | | | | | | - Pendable.token: queried in the add() and confirm() methods - Pendable.expiration_date: queried on evict() - PendableKeyValue.key and PendableKeyValue.value: queried in the find() method
* Improve the unit test for the find methodAurélien Bompard2015-12-161-9/+28
|
* Make sure that Pendables always have a typeAurélien Bompard2015-12-1613-13/+27
|
* Add a find method for pending requestsAurélien Bompard2015-12-162-6/+45
|
* Use the relationship instead of an explicit queryAurélien Bompard2015-12-161-4/+2
|
* Use the relationship cascade feature to delete key-valuesAurélien Bompard2015-12-162-9/+62
|
* Add a couple indexes on MemberAurélien Bompard2015-12-152-2/+27
|
* _resource_as_dict() may not return None.Barry Warsaw2015-12-124-3/+9
| | | | Add some assertions to prove this is always the case.
* Reject notifications contained no reason.Aurélien Bompard2015-12-123-2/+88
| | | | | | Implement the suggestions from the review. Cleanups by Barry.
* Merge branch 'abompard/73'Barry Warsaw2015-12-113-36/+231
|\ | | | | | | | | | | Large performance improvement in SubscriptionService.find_members(), along with a refactoring which will allow future improvements, many new tests, and a bug fix. Minor branch cleanups by Barry.
| * Refactor the SubscriptionService.find_members method to be pure SQLAurélien Bompard2015-12-112-36/+227
|/ | | | | | | | | | Additional cleanups by Barry. Fix the SubscriptionService.find_members SQL query on PostgreSQL. Assert that an unsupported use case is actually unsupported. Various little clean ups.
* Allow a Member's moderation_action to be changed by the REST API.Aurélien Bompard2015-12-085-5/+102
| | | | Cleanups by Barry. Closes !67
* Handle deleting nonexistent messages from the message store. Closes: #167Aurélien Bompard2015-12-025-13/+63
|
* Allow list names to have command suffixesAurélien Bompard2015-11-293-2/+42
| | | | | | Fixes #168 Minor style fixes and add another test.
* Optimize the roster SQL queryAurélien Bompard2015-11-221-3/+5
| | | | | | Measured improvement: about 100x faster. (!) Reformatting.
* When deleting an Address, dependencies must be deleted firstAurélien Bompard2015-11-214-6/+62
| | | | | SQLite doesn't not enforce foreign key constraints, but PostgreSQL does, and without this fix, IntegrityErrors get raised.
* Fix the approved rule when there is no list passwordAurélien Bompard2015-11-213-0/+10
|