| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
* Fix executable location now that we're not using buildout.
* Fix enum repr.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
styles (by name) via `.../lists/styles`. Create a list in a specific style
by using POST data `style_name=<style>`. (LP: #975692)
Also:
* Rewrite list.rst and some of configuration.rst to be more readable as
documentation. Bad-path tests are moved to unittests.
* Some improvements to printing lists as part of REST responses. This
eliminates the ugly u''-prefixes on strings.
|
| |
|
|
|
|
| |
Also, allow doctest cleanups to be tuples, in which case the first item is the
callable and the subsequent items are the arguments. Makes for
config.pop()'ing much nicer.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
can be tested separately.
- Add an `until` argument to load_migrations() so that we can load only up to
a given timestamp.
- In load_migrations(), ignore files in which the `version` part of the file
name is empty.
- In migrations.rst, use the new, better way of ensuring post-test cleanup.
- Add tests for partial upgrades.
- LP: #971013 - schema migrations for beta 2.
- LP: #967238 - IMailingList.archive + IMailingList.archive_private ->
IMailingList.archive_policy, and add ArchivePolicy enum.
- Move the `chdir` context manager to helpers.py and add `temporary_db`
context manager.
|
| |
|
|
|
| |
- Add a `cleanups` global to doctests. This can be used to register
functions which will get called automatically at doctest tearDown time.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
automatically do the right thing in most cases. Keep test_suite() in
test_documentation.py since these dynamically set up docs tests properly.
Refactor test_passwords.py so that base class tests aren't bogusly run. Also,
remove test_membership.py which was essentially disabled because it was
testing the MM2 membership API.
|
| |
|
|
|
|
|
|
|
|
| |
* 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 a case in a list's /members API where the listname is bogus.
* Catch NotAMemberError form delete_member() and return not_found.
* Refactor REST helpers so that call_api() can be used in unittests without
doing any prints to stdout.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
initialization. buildout.cfg is now really simple; it calls one method.
That method does all the relevant layer initializations. This better
localizes what has to be set up before testing can even begin.
* IUsers now have a created_on property which contains the datetime at which
the user record was created.
* Rework the date and uid factories so that they consult the
MockAndMonkeyLayer for the current testing flag. Also, those factories
register themselves with the layer so that they'll get automatically reset
between tests, without the layer actually having to know about them.
* Move the User model object initialization into User.__init__() from the user
manager. The User now also adds itself to the store.
* Add a 'uid factory' for unique id creation, which is test suite aware.
|
| |
|
|
|
|
|
|
|
| |
subscription bans so as not to have to rely on BLOBS or pickles in the
database.
Also, be sure to include .rst files in both doctests and in the packaged
tarballs. With the now awesome reST mode for Emacs, I plan to rename all .txt
doctest files to .rst.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| | |
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
* 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.
|
| | |
|
| |\
| |
| |
| | |
corrections by Barry.
|
| |/
|
|
| |
regarding the basic auth for the REST server.
|
| |
|
|
| |
considerably.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
RESTful. We have to use httplib2 to get DELETE and PUT.
This is a prototype and could still use much cleanup.
|
| | |
|
| |
|
|
|
|
|
|
| |
means commit() is now transaction.commit() in doctests.
Add tests of extended domain creation, which exposes the need to unlock the
database (via transaction.abort()) so that the foreground test process doesn't
lock the background REST server process.
|
| |
|
|
|
|
|
|
|
| |
webserver.
Fix the https/http urls.
Add the adapter for HTTPCharsets so POSTs work properly. Nice little cargo
cult from lazr.restful.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
Add an IDomainManager and a global domain manager which can be gotten by
adapting the global config object.
Add an IDomainCollection interface for exposing the domain manager onto the
API.
|
| |
|
|
| |
to the varnish.
|
| |
|
|
| |
given, then SMTPLayer is used by default.
|
| |
|
|
| |
useful information. It's GET only atm.
|
| |
|
|
|
|
|
|
|
| |
Message.sender (property) and Message.get_senders() to Message.senders
(another property). The semantics of .sender is slightly different too; it no
longer consults config.mailman.use_envelope_sender.
Add absolute_import and unicode_literals to Utils.py, and clean up a few
imports.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This moves actual digest creation and sending into a new queue runner. That
way, digest creation does not block the main incoming processor. Lots of code
clean up and reorganization too, and many fixes.
digest_last_sent_at: Make this a DateTime
digest_size_threshold: Make this a Float
digest_volume_frequency: Make this an Enum
DigestFrequency: new enum
Fix up IMailingList interface to reflect reality.
In Runner base class, allow for msg.get_sender() to return a False value. If
this happens (as it can with the empty marker messages used to signal the
digester that there's work to do), just use the list's preferred language.
Give the retry.py and incoming.py queue runner modules some proper epilogues.
The EmptyingRunner (for testing) logs itself as the runner its wrapping.
The digest file name now ends in .mmdf since that's the format we're using.
Add 'create_list' to doctest globals.
Add a Mailbox class to add support for the context manager protocol.
|
|
|
correctly regardless of how it's used.
|