summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Refactor MTA alias creation.Barry Warsaw2011-06-1011-52/+393
| | | | | | | | | | | | | * Create an IMailTransportAgentAliases utility that contains all the logic for generating all the aliases for a mailing list, both the fully-qualified ones and the local-part ones. * Add -f and -s options to `bin/mailman aliases` to facilitate outputing the aliases in other formats than the configured one, and for printing out a simple list of the aliases. * IMailTransportAgentAliases -> IMailTransportAgentLifecycle; also add a new definition for IMailTransportAgentAliases
* Major terminology shift:Barry Warsaw2011-06-0147-432/+441
| | | | | | | | | | | | | | | | | * Queue runners are now called just 'Runners' since several of them don't manage queue directories. * Ban the term 'qrunner' too. * The master queue runner watcher should now just be called the 'master' or the 'master runner'. * bin/qrunner -> bin/runner * mailman.qrunner log file -> mailman.runner * master-qrunner.lck -> master.lck * master-qrunner.pid -> master.pid Also: * Remove some obsolete files * Begin the .txt -> .rst renaming
* Rename 'queue' directory to 'runners' since not all subprocesses run a queue.Barry Warsaw2011-05-2940-266/+302
|
* Remove an obsolete directory.Barry Warsaw2011-05-282-46/+0
|
* Remove an unused module.Barry Warsaw2011-05-281-73/+0
|
* * Flesh out the BounceRunner, complete with tests.Barry Warsaw2011-05-274-109/+260
| | | | * Clean up the DSN bounce processor.
* * bounce_processing -> process_bouncesBarry Warsaw2011-05-275-157/+85
| | | | | * Finally get rid of BounceMixin * Test the simple case where the mailing list does no bounce processing.
* * bounce_unrecognized_goes_to_list_owner -> forward_unrecognized_bounces_to Barry Warsaw2011-05-2520-91/+291
| | | | | | | | | | | | * Add an additional option for unrecognized bounce disposition: send it to the site administrators. * Move maybe_forward() from src/mailman/queue/bounce.py to src/mailman/app/bounces.py, refactor and add tests. * Add a LogFileMark class to help with tests that want to check the output to a log file. * OwnerNotification gets a better signature. Instead of tomoderators, the last argument is a roster to send the notification to. If roster is None, then the notification goes to the site administrators.
* Eliminate the BounceMixin from the OutgoingRunner.Barry Warsaw2011-05-181-10/+2
|
* More testing and refactoring the temporary failures branch.Barry Warsaw2011-05-182-11/+71
|
* Work out what happens for permanent and temporary non-probe failures.Barry Warsaw2011-05-172-18/+100
|
* * Flesh out IBounceProcessor so that you can get an iterator over all eventsBarry Warsaw2011-05-175-9/+204
| | | | | | | and over just the unprocessed events. * In the outgoing queue runner, work out the logic for when SomeRecipientsFailed with permanent failures in a probe message.
* Test (and fix!) the path in the outgoing runner where a socket.error getsBarry Warsaw2011-05-173-10/+91
| | | | | | raised during the delivery function. Modify the ReopenableFileHandler so that the filename is a public attribute.
* More testsBarry Warsaw2011-05-141-0/+24
|
* More tests.Barry Warsaw2011-05-141-1/+23
|
* Another test.Barry Warsaw2011-05-141-0/+9
|
* * Fixed testsBarry Warsaw2011-05-142-4/+8
| | | | * Fix obvious typo in __init__(). How can we get Storm to help us with this?
* oh wellBarry Warsaw2011-05-142-4/+3
|
* checkpointingBarry Warsaw2011-05-142-6/+105
|
* Add tests for the outgoing queue runner.Barry Warsaw2011-05-144-7/+103
| | | | | | | * Use m.u.datetime.now() instead of datetime.now() * Add a predicate argument to make_testable_runner() so that we can e.g. pass in a function that causes the queue runner to run only once. * Minor improvement to get_queue_messages() so that it doesn't need a lambda.
* * 'where' -> contextBarry Warsaw2011-05-132-2/+5
| | | | * Improve documentation for Enum Storm type.
* * BounceEvent.where -> BounceEvent.contextBarry Warsaw2011-05-133-16/+43
| | | | * Add BounceContext enum
* Add bounce registration and bounce events.Barry Warsaw2011-05-136-11/+257
|
* add sample dataBarry Warsaw2011-05-091-0/+0
|
* Implement and test the extraction of the bouncing email address when a probeBarry Warsaw2011-05-093-43/+39
| | | | message bounces. This completes the refactoring of probes for MM3.
* Add test sample dataBarry Warsaw2011-05-091-0/+17
|
* Add non-English tests of the probe message.Barry Warsaw2011-05-083-11/+100
|
* Merge bounces branch (still incomplete, but tests pass).Barry Warsaw2011-05-078-112/+302
|\
| * checkpointingBarry Warsaw2011-05-066-45/+97
| |
| * * Fix setup.py version regexp.Barry Warsaw2011-05-034-69/+120
| | | | | | | | | | | | * Move get_verp() to class-based for easy overridding. Hook up StandardVERP but not yet ProbeVERP. * Use uuid.uuid4() to get unique id.
* | NEWSBarry Warsaw2011-05-031-0/+5
| |
* | Move the test timeout values into a configuration variable. Set devmode.waitBarry Warsaw2011-05-033-12/+21
|/ | | | to the timeout value you want.
* Another refactoring.Barry Warsaw2011-05-012-34/+4
|
* Fix refactor-o.Barry Warsaw2011-05-012-2/+2
|
* Start the enablement of bounce detection.Barry Warsaw2011-05-019-28/+302
| | | | | | | | | | * Move VERP header extraction to mailman.app.bounces, and ports the implementation to the get_verp() function. * Restore the [mta] verp_regexp value which got lost along the way. * Move mailman.email.utils to mailman.utilities.email and add a test for split_email() * Move specialized_message_from_string() from test_documentation to mailman.testing.helpers.
* * Fix styleguide (given by Mark Sapiro).Barry Warsaw2011-04-303-21/+21
| | | | * Post release version and NEWS file tweaks.
* Let's release 3.0.0a7 (Mission) today!Barry Warsaw2011-04-291-1/+1
|
* Some updates to the documentation in preparation for alpha 7.Barry Warsaw2011-04-293-22/+40
|
* Add NEWS entry.Barry Warsaw2011-04-271-0/+1
|
* One more refactoring.Barry Warsaw2011-04-271-0/+0
|
* Move the bouncer tests to the right directory.Barry Warsaw2011-04-27104-2/+2
|
* Remove the redundant src/mailman/tests/test_bounces.py file and ensure all theBarry Warsaw2011-04-278-292/+75
| | | | other bounce detector pass.
* Checkpointing for refactoring.Barry Warsaw2011-04-27126-83/+11897
|
* Update NEWS.txt.Barry Warsaw2011-04-261-1/+31
|
* Ensure that a member's address cannot be changed to an address they do notBarry Warsaw2011-04-252-0/+28
| | | | control.
* Complete the ability to change a subscription address, both internally and viaBarry Warsaw2011-04-2512-89/+514
| | | | | | | | | | | | | | the REST API. (LP: #643949) * New resource path in REST API: /addresses/<email>/memberships gets all the memberships for a given email address. * In the REST API, PUTting or PATCHing a list configuration now returns a 204 (No Content) success code instead of a 200 success code with an empty body. * When a user is subscribed with their preferred address, changing the preferred address also changes all subscriptions. * When a user is subscribed with a specific address, their subscription can be changed to any verified address they control. * Use a new naming scheme for doctests with multiple mailing lists.
* Allow users to subscribe to mailing lists through the REST API.Barry Warsaw2011-04-246-31/+125
| | | | | | | | * ISubscriptionService.join(): address -> subscriber. This is not backward compatible with the previous API! * Add get_user_by_id() to the IUserManager interface. It was already implemented, but the interface was missing the definition. * MissingUserError: new exception, purely for the REST API.
* Users subscribed to a mailing list via their preferred address show upBarry Warsaw2011-04-224-9/+69
| | | | | correctly in the REST API's list of members. This even correctly tracks changes in their preferred address.
* newlineBarry Warsaw2011-04-221-1/+1
|
* Give IMembers a unique member id. We have to do this in order to give them aBarry Warsaw2011-04-2214-71/+317
| | | | | | | | | | | | | | | | | | | | | | | path at the root of the resource tree (i.e. /members/X) and because when members can be subscribed by their IUser record (for preferred address), their canonical location cannot contain the address they are subscribed with. When their preferred address changes (without otherwise touching their membership), this address will change and that's not good for a canonical location. Other changes: * Added IMember.member_id attribute * Added ISubscriptionService.get_member() so member records can be retrieve by member id. * We can now get individual members by id via the REST API. * Extend the UniqueIDFactory so that it can take a 'context' (defaulting to None). The context is only used in the testing infrastructure so that separate files can be used for user ids and member ids. Otherwise, we'd have gaps in those sequences. * When *not* in testing mode, ensure that UIDs cannot be reused by keeping a table of all UIDs ever handed out. We *should* never get collisions, but this ensures it. * Clean up mailman.sql