summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * start of archiving workBarry Warsaw2008-06-146-54/+30
|/
* Handle commands in the body of a plain text email message.Barry Warsaw2008-04-262-1/+49
|
* Update and reorganize the command queue runner so that it works with theBarry Warsaw2008-04-2626-165/+351
|\ | | | | | | | | plugin architecture. Update the Echo command to the new architecture. Add a doctest of course.
| * temporary start on command processor rewriteBarry Warsaw2008-04-227-149/+236
|/
* Remove unnecessary 3rd party package.Barry Warsaw2008-04-081-1/+0
|
* Bump the version numberBarry Warsaw2008-04-082-3/+7
|
* NEWS.txt is only the 3.0 news. OLD-NEWS.txt is copied from the 2.1 tree.Barry Warsaw2008-04-012-2659/+2836
|
* Remove some documents that are either no longer appropriate, or now live inBarry Warsaw2008-04-0120-7748/+109
| | | | | | | | the mailman-administrivia package. Update the README.txt and NEWS.txt files for the first alpha release, and add an ALPHA.txt file to describe what little you can do with the alpha release <wink>.
* One more version change fix.Barry Warsaw2008-03-311-1/+1
|
* One more version change.Barry Warsaw2008-03-311-1/+1
|
* mailman.Version -> mailman.versionBarry Warsaw2008-03-3140-76/+72
|
* Fix the archiver doctest.Barry Warsaw2008-03-312-4/+6
|
* Fix the scrubber doctest.Barry Warsaw2008-03-311-1/+1
|
* Fix the incoming doctest.Barry Warsaw2008-03-311-7/+12
|
* Add code name.Barry Warsaw2008-03-302-1/+2
|
* Make all the SMTP_LOG_* templates, PEP 292 compatible. Make them consistentlyBarry Warsaw2008-03-308-124/+81
| | | | | | | | | | | put the Message-ID first in the log message. Dict the MsgSafeDict class as unnecessary now. Fix the DEFAULT_MSG_FOOTER. Back out an earlier unnecessary change for virgin queue pipelines. Add a bunch of debugging to the mail Runner loops.
* More fixes to get end-to-end delivery basically working.Barry Warsaw2008-03-3010-143/+178
| | | | | | | | | | | | | | | - Add a VirginPipeline for the virgin queue, which is mostly the same as the BuiltInPipeline, so refactor the commonality into a BasePipeline. - Simplify and update bin/dumpdb. - Rename inject() to inject_text() and add inject_message(). Both interfaces will be useful. - When enqueuing and not using _plaintext, use the highest pickle protocol supported. - Fix the archive runner's calculation of whether to clobber the message's Date: header. - Fix the outgoing queue's deliver_after calculation. - Update the virgin queue runner. It doesn't need to inherit from IncomingRunner any more; it can just execute the 'virgin' pipeline.
* More fixes to get the basic end-to-end delivery mechanisms working.Barry Warsaw2008-03-3014-97/+146
| | | | | | | | | - Lots of Pipermail work just to get it to play nice with the new apis. - Fix ARCHIVE_SCRUBBER - Lots of changes to mailman.app.archiving, especially to provide an adapter from the new MailingList api to the one expected by Pipermail (e.g. archive_dir()). - Add a test of the basic pipermail archiver.
* Stable sort the output.Barry Warsaw2008-03-281-1/+3
|
* Added a test of the OutgoingRunner, and subsequent changes to make it pass,Barry Warsaw2008-03-2716-35/+156
| | | | | | | | | | | | | | including: - MailingList.full_path -> IMailingList.data_path and implement this as a property on the MailingList object. - Fix the 'decorate' handler to work with the new member/user data model, instead of the old MemberAdaptor interface. - Fix a few problems with the smtp-direct handler, though this needs more work and tests. - Add some debug logging to both the test smtplistener and the SMTPServer proxy. Fix the proxy's consumption of messages from the thread queue. - Fix the smtplistener's calculation of the X-Peer header.
* Lots of little patches trying to get a simple end-to-end test working. ThereBarry Warsaw2008-03-259-55/+64
| | | | | | | | | | | | should be tests for these. :/ - Disable MTA hack in remove_list() - Convert bin/inject to SingleMailingListOptions - Remove an unnecessary import - Fix qrunner restarts in bin/master - Add IMailinglist.pipeline so that this value persists - Move Runner.SLEEPTIME into the __init__() so that it isn't hurt by order of configuration initialization.
* merge pycon branchBarry Warsaw2008-03-254-2/+112
|\
| * Flesh out and make working IUser.memberships, with tests.Barry Warsaw2008-03-252-13/+29
| |
| * The start of exposing memberships in the IUser.Barry Warsaw2008-03-244-2/+96
|/
* Move AlreadySubscribedError to interfaces/member.py in the (new) preferenceBarry Warsaw2008-03-238-177/+193
| | | | | | | | for putting exceptions close to the interfaces where they are used. MakeRandomPassword() returns unicodes now. Flesh out bin/add_members.py and bin/list_members.py
* Rename rmlist to remove_list, and let it take multiple -l command lineBarry Warsaw2008-03-226-85/+102
| | | | | | arguments. Added a MultipleMailingListOptions subclass.
* Several fixes to command line scripts.Barry Warsaw2008-03-226-108/+150
| | | | | | - Add an options base class that groks unicode argument types - Rename newlist to create_list - Update list_lists, master, qrunner
* Convert bin/qrunner to use the new Options class.Barry Warsaw2008-03-211-37/+43
|
* Added a common option parsing class, and converted master to it.Barry Warsaw2008-03-212-34/+96
|
* Don't timeout in TestableMaster.start(). Just wait until all queue runnersBarry Warsaw2008-03-211-2/+2
| | | | have been started, no matter what.
* Add some debug logging.Barry Warsaw2008-03-151-0/+3
|
* merging threadBarry Warsaw2008-03-133-44/+137
|\
| * Move mailman.database.txnsupport to mailman.database.transaction and updateBarry Warsaw2008-03-133-44/+137
| | | | | | | | | | | | | | | | the txn() decorator. It no longer requires a _withtxn() method since it knows how to commit and abort the current transaction using the global database. Flesh out the lmtp.txt doctest with documentation for both bogus and valid subaddresses.
| * merge down threadBarry Warsaw2008-03-124-14/+44
| |\
| * \ merge down-threadBarry Warsaw2008-03-123-4/+30
| |\ \
* | \ \ merging threadBarry Warsaw2008-03-135-18/+74
|\ \ \ \ | | |_|/ | |/| |
| * | | Add some randomization to the way tests are run. This isn't complete (seeBarry Warsaw2008-03-122-12/+38
| | | | | | | | | | | | | | | | | | | | the help for bin/testall --randomize for details), but it still better than nothing.
| * | | Sprinkle a few more transaction API calls around to make sure the databaseBarry Warsaw2008-03-123-2/+6
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | doesn't remain in a locked state, hosing other processes. - Move a commit to the end of StockDatabase._create() - Add an abort to the Exception clause if there's an error while dequeuing - Add an abort to the Exception clause if there's an error while finishing - Add a commit after _doperiodic() and _shortcircuit() is called. - Add a commit to the end of cleaning_teardown() in test_documentation.py This now makes all the tests pass even when all of them are run.
| * | Add transaction API to IDatabase, e.g. begin(), commit(), and abort(). Add anBarry Warsaw2008-03-123-4/+30
| |/ | | | | | | implementation of these to StockDatabase. Expose 'commit' to doctest globals.
* | merged from upstreamBarry Warsaw2008-03-131-1/+0
|\ \ | |/ |/|
| * Removed bogus >From line from hotpop_01.txt bounce test message.Mark Sapiro2008-03-101-1/+0
| |
* | Add a working (though not yet complete) test for the LMTP runner.Barry Warsaw2008-03-1212-114/+286
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor the TestableMaster class so that doctests don't need to do all the threading and event fiddling themselves. Hide all that in the test class. In bin/master, add the -r/--runner option to allow overriding the set of queue runners to start from the command line. This is much more convenient than fiddling the config file (which is still supported), and it allows us to start a subset of the runners from the TestableMaster class. Refactor the calculation of queue runner shortcut names into Configuration.add_qrunner(). This way, it's easy to share between bin/qrunner and bin/master. Use pkg_resource in bin/testall to create the test configuration file. We're still using mailman.__file__ as the target to os.walk() though, so this conversion isn't complete. In bin/testall, update to the new convention of putting .options and .arguments on the parser instance, so we only need to pass back one thing. In test_documentation.py, use config.verbosity instead of config.options.verbosity. Wind that through to bin/testall while we're at it. Update loginit.py so that defaults for all the logging options can be found in a [*] section. This is better than [DEFAULT] because the latter requires %-interpolation and still requires each sublogger to be specified explicitly. Now we just set values in the [*] section and have them apply to all loggers. Allow for passing bin/testall's -v and -e options to any subprocesses that get created, e.g. via the TestableMaster. Now testall will write a logging.cfg file with a [*] entry as appropriate. It's DEFAULT_DATABASE_URL now, not SQLALCHEMY_ENGINE_URL. StockDatabase._reset() requires that the store be rolled back before it's reset. Otherwise if there are outstanding transactions, the reset will fail with an OperationalError. Update the LMTPRunner. Have it return a 501 error if the message has defects. Most defective messages are spam. Make the LMTPRunner startable and stoppable. Just because it's asyncore based doesn't mean that's not possible <wink>. Enable the LMTP runner in tests.
* Fix a typo in a roster name.Barry Warsaw2008-03-065-75/+71
| | | | | | | | | | Remove an outdated comment. Add an SMTPServer wrapper class to the test helpers module. This will be used in tests of the outgoing queue, which actually needs to talk to an SMTP server. Adapt the smtpd-based server to being run under thread control, and remove some now unnecessary code.
* Bite the bullet: rename the Mailman package to mailman.Barry Warsaw2008-02-27531-935/+921
|
* Rework the master.py script and the master.txt doctest so that it's muchBarry Warsaw2008-02-274-192/+193
| | | | | | easier to test, and to use in other tests. Do this by moving most of the guts of master.py into a class that can be subclassed, and thus run in a subthread to avoid blocking the test. We don't need to sleep anymore.
* Make the import of Mailman.configuration.config explicit in doctests.Barry Warsaw2008-02-265-5/+10
|
* Add a test for mailmanctl and master.py. Also fix a bug in master where itBarry Warsaw2008-02-263-1/+110
| | | | wasn't waiting on all the children before it exited itself.
* Update mailmanctl for the new master.py script. Fortunately, we can simplifyBarry Warsaw2008-02-253-374/+97
| | | | | | | | | | | this considerably, since it now just checks the permissions, handles command parsing, and then just (in the child) execs master.py. master.py handles the log files, etc. Added 'BIN_DIR' to the configuration object. Remove references to instance.cfg in the comments; that was never implemented. I still need tests for both mailmanctl and master.
* Rework the basic infrastructure for qrunner process control. Split out theBarry Warsaw2008-02-2513-77/+477
| | | | | | | | | | | | | | | | | | | | | | | | functionality of mailmanctl into a separate master watcher script. mailmanctl has not yet been updated but that'll happen next. Fix DELIVERY_MODULE to name a handler instead of a module. Change make_instance to use pkg_resources instead of module.__file__. Change the qrunner and master processes coordination so that the qrunners are not restarted on SIGINT, because otherwise C-c just doesn't work. Now SIGUSR1 is how we'll implement 'mailman restart'. Add a database commit so that initializing the schema doesn't lock the sqlite database. Also, don't try to initialize the schema if the tables already exist. Use some sqlite magic to do this test. Move mailman.cfg.in into a new package Mailman/extras inside the tree. Also, MAILMAN_UID and MAILMAN_GID should be integers not strings. Convert the command runner to use an IHandler instance instead of handler module. Similarly for the outgoing runner, DELIVERY_MODULE now names an IHandler instance instead of a handler module.
* The start of a cleaning up of Errors.py. Eventually, I want to get rid ofBarry Warsaw2008-02-1915-101/+176
| | | | | | | | | this module, in favor of moving exceptions into the interface modules that they are appropriate for. For now, this is just the low-hanging fruit. Along the way, clean up by reSTifying some interfaces and implementations.