summaryrefslogtreecommitdiff
path: root/src/mailman/rest/tests
Commit message (Collapse)AuthorAgeFilesLines
* Fix coverage, deprecate, but run non-plugin (post|pre)_hooks.pluggable-componentsJ08nY2017-08-071-0/+2
|
* Add new logger which plugins can use.J08nY2017-08-071-0/+1
|
* Add optional external configuration to plugins.J08nY2017-08-071-0/+1
| | | | | - Adds an optional 'conriguration' option similar to the one in [mta] which plugins can use to load their specific configs from.
* Add REST-ability to plugins.J08nY2017-08-071-0/+104
| | | | | | | | | | | | | | | | | | | | - Adds the rest_object method to the IPlugin interface. This method is called by the REST api to route requests to the plugin's REST api. All attributes are proxied, so the object becomes a true REST object in the ObjectRouter hierarchy. For example see the RESTExample and ExamplePlugin classes in mailman.testing.plugin. The plugin might return None from this method, in which case all calls to it's REST api route will return 404 NotFound. - Adds new routes to the REST api. For version >= 3.1: - /3.1/plugins Returns a dictionary with plugin names as keys, and their configs as values. - /3.1/plugins/<plugin_name> Proxies everything to plugin's rest_object, if plugin with such name exists and provides a non-null rest_object, else NotFound.
* Add per-plugin hooks, add docs about plugins.J08nY2017-08-071-3/+1
| | | | | | | | | | | | | | | - Removes pre_hook, post_hook and ext_dir. With the latter being unused. Warns on startup if the hooks are present in config. - Adds IPlugin interface with pre_hook and post_hook methods. - Adds 'class' config parameter to plugins, which can be set to a class implementing the IPlugin interface, it will be initialized once on Mailman's startup, then before the DB setup the pre_hook will be run, after DB and other components the post_hook will be run. Plugin instances are stored in the config.plugins dict, with keys being their configuration section names.
* Add pluggable components.J08nY2017-08-071-0/+1
| | | | | | | | | | | | | | | | | - Adds the notion of a 'plugin'. - A plugin has a package path and a flag specifying whether it's enabled or not. - Adds a find_pluggable_components function similar to the find_components one. This one dynamically searches not only the mailman package but all of plugins. - e.g. find_pluggable_components('rules', IRule) finds all IRule components in mailman.rules but also in example_plugin.rules for plugin names example_plugin. - Uses the find_pluggable_components function in place of find_components when searching for Rules, Handlers, Chains, EmailCommands, and Styles.
* Rename metadata key for clarityBarry Warsaw2017-08-043-0/+3
|
* Fix the template name of the welcome message.Barry Warsaw2017-05-241-5/+5
| | | | | | | | | | | | | | | | | We did not previously complete the renaming of the templates. Rename: * user:ack:welcome -> list:user:notice:welcome * user:ack:goodbye -> list:user:notice:goodbye The new names are what are actually used in send_welcome_message() and send_goodbye_message() so the old names were actually never used. NOTE: If you added welcome or goodbye templates through REST from git head, the old names will not be used. Given that this wasn't a feature in 3.0, and the above use case is very unlikely, I've decided not to do a migration. If anybody is affected, the changes can be made manually in withlist. Closes: #337
* Add self_links to the system configuration resources.Barry Warsaw2017-05-231-0/+4
| | | | Closes #335
* Fix two problems and close #260Barry Warsaw2017-04-221-0/+15
|
* Updated rest/lists.py to handle list name error exceptions and addedMark Sapiro2017-02-191-0/+22
| | | | | | tests for for the exceptions. Enhanced the InvalidListNameError exception to return the invalid name.
* Fixed broken tests.Mark Sapiro2017-02-191-0/+1
|
* Remove the dependency on httplib2.Barry Warsaw2017-02-0613-432/+423
| | | | Closes #42
* Create users sequentially for uid stability.Barry Warsaw2017-01-291-0/+2
|
* Enforce a stricter coding style.Barry Warsaw2017-01-262-3/+3
|
* Bump copyright years.Barry Warsaw2017-01-0420-20/+20
|
* Implement caching suffix list with in-tree fallback.Barry Warsaw2017-01-011-0/+1
| | | | | | | | Also: * Change doctest cleanups to be an ExitStack. * Added [dmarc]cache_lifetime setting. * Cleanup pass through dmarc-mitigation.rst. * Be sure the cached org domain file is cleaned up when the world is reset.
* Fix some fallout from the previous commit.Barry Warsaw2016-12-311-4/+15
|
* Simplified the various list settings and remamed several things.Mark Sapiro2016-12-261-4/+2
|
* Merged from master.Mark Sapiro2016-12-091-1/+24
|\
| * Starting to clean up the branch.Barry Warsaw2016-11-281-11/+4
| |
| * Fix Flake8 errorsAurélien Bompard2016-11-281-8/+7
| |
| * Learn to encode Messages and Header instances to JSONAurélien Bompard2016-11-281-1/+32
| |
* | Merge branch 'dmarc' of gitlab.com:msapiro/mailman into dmarcMark Sapiro2016-11-262-0/+10
|\ \ | |/ |/|
| * Added new list DMARC attributes to rest/listconf.py and updated tests.Mark Sapiro2016-11-011-0/+6
| |
| * Merge gitlab.com:mailman/mailman into dmarcMark Sapiro2016-11-011-0/+8
| |\
| * | DMARC mitigations, part 1a.Mark Sapiro2016-10-311-0/+4
| | |
* | | Merge branch 'hide-system-disabled-archivers' into 'master' Barry Warsaw2016-11-261-5/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't show the disabled archivers in the REST API Previously, system-disabled archivers were shown in the REST API. As a result it was possible to enable them without a validation error, but they would stay disabled on the next API GET call (their actual activation status depends on the list-specific *and* the system-wide status). Because one can't add a configuration overlay to the running REST server in testing mode, the prototype archiver was disabled in the testing configuration. This is where most of the changes in this commit come from. See merge request !87
| * | | Fix testsAurélien Bompard2016-08-181-1/+1
| | | |
| * | | Don't show the disabled archivers in the REST APIAurélien Bompard2016-08-181-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Because one can't add a configuration overlay to the running REST server in testing mode, the prototype archiver was disabled in the testing configuration. This is where most of the changes in this commit come from.
* | | | Fix QA.Barry Warsaw2016-11-251-1/+0
| | | |
* | | | Add NEWS and a little bit of cleanup.Barry Warsaw2016-11-251-5/+5
| | | |
* | | | Rename test email and use resource filename instead of __file__.Abhilash Raj2016-11-253-4/+6
| | | |
* | | | Return 'defective message' for a bad held messageAbhilash Raj2016-11-252-0/+27
| | | | | | | | | | | | | | | | | | | | If a message can't be parsed by Python due to bad structure, don't raise an error but return a generic 'this message is defective' string instead.
* | | | Fix the Flake8 ignore tagsAurélien Bompard2016-11-211-1/+1
| |_|/ |/| |
* | | Support HTTP/1.1 by default.Barry Warsaw2016-10-301-2/+2
| | | | | | | | | | | | | | | This works around Python issue 28548 and fixes #288. Test given by Amit.
* | | Test invalid url response.amitt0012016-10-301-0/+8
| |/ |/|
* | Fixed a bunch of things in PATCHing domains and added tests and NEWS.Mark Sapiro2016-10-221-0/+50
| |
* | Simplify the implementation.Barry Warsaw2016-10-172-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This merges the SubscriptionManager and UnsubscriptionManager into a single SubscriptionManager implementation that handles both register() and unregister(). This allows us to use direct class-based adaptation instead of the more clunky getAdapter() API. We can also eliminate the funky _get_workflow() implementation detail. This has a couple of side-effects. .confirm() must lookup the token in the pendings database and pull out the pending type, dispatching to the proper class depending on the type, or raising a LookupError if the token is None or there is no pendable associated with the given token. This feels like an acceptable trade-off. However, this *also* means that IWorkflowStateManager must lose its 'name' argument in its methods. That's because we won't actually know the name until its too late. Honestly, the name wasn't providing much value anyway (it was always the subclass's name), so losing that seems fine too. The complication here is that the name was a primary key in the 'workflowstate' table, so we need to add its removal in the database migration.
* | flake8 fixes.Barry Warsaw2016-10-161-1/+1
| |
* | Split registration (subscription) and unsubscription:Barry Warsaw2016-09-133-3/+3
| | | | | | | | | | | | | | | | * events * notices * handlers Also, be sure to do only one `leave` command per email.
* | IWorkflowManager -> ISubscriptionManagerBarry Warsaw2016-09-012-6/+7
| |
* | CheckpointingBarry Warsaw2016-09-012-2/+2
| |
* | Intermediate CommitAbhilash Raj2016-09-012-7/+8
| |
* | Use a multiline value and update NEWSAurélien Bompard2016-08-311-2/+2
| |
* | REST: allow MailingList.info to be setAurélien Bompard2016-08-301-0/+16
| |
* | Close #273Barry Warsaw2016-08-231-1/+1
| | | | | | | | | | A mailing list's ``description`` must not contain newlines. Given by Aurélien Bompard.
* | Forbid newlines in MailingList.descriptionAurélien Bompard2016-08-231-0/+12
|/ | | | Fixes: #273
* Rebase mailman/mailman!180 and cleanup # noqaBarry Warsaw2016-07-281-1/+1
|
* New template system. Closes #249Barry Warsaw2016-07-166-6/+688
| | | | | The new template system is introduced for API 3.1. See ``src/mailman/rest/docs/templates.rst`` for details.