summaryrefslogtreecommitdiff
path: root/src/mailman/queue
Commit message (Collapse)AuthorAgeFilesLines
* Rename 'queue' directory to 'runners' since not all subprocesses run a queue.Barry Warsaw2011-05-2928-5466/+0
|
* Remove an unused module.Barry Warsaw2011-05-281-73/+0
|
* * Flesh out the BounceRunner, complete with tests.Barry Warsaw2011-05-272-28/+195
| | | | * Clean up the DSN bounce processor.
* * bounce_processing -> process_bouncesBarry Warsaw2011-05-272-155/+80
| | | | | * 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-254-41/+3
| | | | | | | | | | | | * 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-172-4/+118
| | | | | | | 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-172-7/+88
| | | | | | 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-141-3/+7
| | | | * Fix obvious typo in __init__(). How can we get Storm to help us with this?
* oh wellBarry Warsaw2011-05-141-2/+2
|
* checkpointingBarry Warsaw2011-05-142-6/+105
|
* Add tests for the outgoing queue runner.Barry Warsaw2011-05-143-4/+92
| | | | | | | * 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.
* Implement and test the extraction of the bouncing email address when a probeBarry Warsaw2011-05-091-37/+0
| | | | message bounces. This completes the refactoring of probes for MM3.
* * Fix setup.py version regexp.Barry Warsaw2011-05-031-2/+2
| | | | | | * Move get_verp() to class-based for easy overridding. Hook up StandardVERP but not yet ProbeVERP. * Use uuid.uuid4() to get unique id.
* Another refactoring.Barry Warsaw2011-05-012-34/+4
|
* Fix refactor-o.Barry Warsaw2011-05-011-1/+1
|
* Remove the redundant src/mailman/tests/test_bounces.py file and ensure all theBarry Warsaw2011-04-271-3/+3
| | | | other bounce detector pass.
* Checkpointing for refactoring.Barry Warsaw2011-04-271-3/+3
|
* Refactor .subscribe() from IAddress to IMailingList.Barry Warsaw2011-04-161-1/+1
|
* Reimplement wrap() using modern techniques, and finally get rid of Utils.py!Barry Warsaw2011-03-174-6/+5
|
* Utils.maketext() and Utils.findtext() are gone.Barry Warsaw2011-03-161-10/+10
|
* nntpsplit() is replaced by lazr.config.as_host_port().Barry Warsaw2011-02-251-2/+3
|
* Move oneline() out of Utils.py.Barry Warsaw2011-02-251-1/+2
|
* Remove some unused/untested stuff regarding password creation from Utils.py.Barry Warsaw2011-01-041-0/+1
| | | | Also, remove a obsolete test.
* Split member and nonmember moderation.Barry Warsaw2011-01-021-19/+18
| | | | | | | | | | | | | | | | * member-moderation happens at the same place in the built-in chain that the previously named moderation rule happens. nonmember-moderation happens after all the other normal moderation rules. * Handle unsubscribed nonmember posts. Other changes: * Message.senders now filters out Nones and empty strings. * Various test cleanups and simplifications. * More `address` -> `email` fixes. * Give Link class a useful repr. * Fix a potential UnboundLocalError. * Various other small changes.
* Happy New Year.Barry Warsaw2011-01-0115-15/+15
|
* Because it was just to damn confusing, rename IAddress.address toBarry Warsaw2011-01-012-4/+4
| | | | | | IAddress.email and IAddress.original_address to IAddress.original_email. From now on we'll use "address" to talk about the IAddress object and "email" to talk about the textual email address.
* * Simplify the membership.txt doctest.Barry Warsaw2010-12-313-13/+85
| | | | | | | * Add test to show that the incoming runner adds all sender addresses to the global user manager. * New doctest helper: dump_list() * Other random cleanups.
* Fairly significant change to the way member and nonmember moderation occurs.Barry Warsaw2010-12-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Now, nonmembers are represented by a separate roster of IMembers, the latter which has grown a `moderation_action` enum. When that action is `defer`, then the normal processing rules apply. Anything else and the `moderation` chain is jumped to for a shortcut to moderation (which may include immediate acceptance). TODO: handle unregistered nonmembers. Details: * The member-moderation rule is renamed to just moderation, and handles both members and nonmembers (though the latter must currently be registered). * The moderation rule is moved up in the builtin chain. It is now checked after `approved`, `emergency`, and `loop`, but before the normal moderation checks. This means that nonmember postings will be (by default) held much earlier. * IMember.is_moderated is removed. * IMember.moderation_action is added. * IMailingList.default_member_moderation is removed. * IMailingList.default_member_action and IMailingList.default_nonmember_action are added. * MemberRole.nonmember is added.
* This is part 1 of the merge of Jimmy Bergman's branchBarry Warsaw2010-12-281-70/+67
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lp:~jimmy-sigint/mailman/restapi_additional_attributes Ostensibly, this adds support for a few additional attributes through the REST API: * default_member_moderation * generic_nonmember_action * member_moderation_action * reply_goes_to_list * send_welcome_msg * welcome_msg However, I had never previously fleshed out the conversion of default_member_moderation and member_moderation_action into the MM3 way of things. That is now done. Non-member moderation still needs to be done. Specific changes: * mailman.chains.base.Chain no longer self registers * The built-in chain gets a new link for checking 'member-moderation'. If this rule matches, it jumps to the 'member-moderation' chain, which checks member_moderation_action and returns a link that jumps to the appropriate terminal chain. * Chain initialization is done by the same auto-detection as rules, handlers, etc. The one tricky thing is that abstract base classes such as Chain and TerminalChainBase can't be instantiated. For now, there's an ugly special case to skip these. * default_member_moderation is now exposed in the IMailingList interface. * Member.is_moderated gets set in the constructor from the mailing list's default_member_moderation. * The 'moderation' rule is renamed 'member-moderation'. TODO: * Work out non-member moderation * Add member_moderation_action to IMailingList * Double check tests for reply_goes_to_list, send_welcome_msg, and welcome_msg
* | Insulate the test environment from the running environment. Sadly, the testBarry Warsaw2010-12-221-2/+2
| | | | | | | | | | | | ports are still hard coded. Also, 'bin/mailman info' dumps the REST root url and credentials.
* | Upgrade from using the locknix package to using flufl.lock.Barry Warsaw2010-11-271-1/+1
|/
* Fix the obvious errors identified by pyflakes. Skip false positives (mostlyBarry Warsaw2010-10-088-13/+8
| | | | | due to _() interpolation) and a few other problems that did not have immediately obvious fixes.
* More documentation cleanups.Barry Warsaw2010-09-148-15/+59
|
* More documentation updatesBarry Warsaw2010-09-102-15/+24
|
* More documentation updatesBarry Warsaw2010-09-101-22/+23
|
* Fix an importBarry Warsaw2010-08-081-1/+1
|
* Refactor all bounce detectors.Barry Warsaw2010-08-081-3/+3
|
* checkpointingBarry Warsaw2010-08-071-5/+6
|
* No longer touch the Sender or Errors-To headers. We can no longer justifyBarry Warsaw2010-06-291-3/+1
| | | | | setting these based on RFC 5322, and modern MTAs no longer need us to do so for proper bounce processing.
* List-Post header should be retained in MIME digest messages (LP: 526143)Barry Warsaw2010-03-281-4/+6
|
* More refactoring:Barry Warsaw2010-02-251-1/+0
| | | | | | | * Rework the [webservice] section to be more useful to restish. * Get rid of the resource_type_link * Add and test some helpers. * Move the root resources to a different module.
* Refactoring the REST support by removing unnecessary stuff and moving otherBarry Warsaw2010-02-251-1/+1
| | | | | | stuff around. We no longer need APIValueError or IResolvePathNames. Also, refactor the creation of the REST server so that it could be used with other WSGI frameworks.
* Checkpointint support for different path layouts, allowing us to optionallyBarry Warsaw2010-01-271-2/+3
| | | | | | | | support the Filesystem Hierarchy Standard. This is done through the configuration file. * add a --paths/-p option to 'bin/mailman info' * PIDFILE -> PID_FILE
* Happy New Year.Barry Warsaw2010-01-0115-15/+15
|