summaryrefslogtreecommitdiff
path: root/src/mailman/utilities
Commit message (Collapse)AuthorAgeFilesLines
* Instantiate components only in add_components, not at lower levels.modules-no-instantiateJ08nY2017-08-302-15/+15
| | | | | | - The scan_module and find_components functions are also useful when they don't instantiate the components they load, and instantiation is left to add_components.
* PR288 vettedBarry Warsaw2017-08-292-130/+108
|
* Convert to click for CLI optionsBarry Warsaw2017-07-225-116/+131
|
* Provide a better way to avoid instantiating some componentsBarry Warsaw2017-06-172-14/+200
|
* Enforce a stricter coding style.Barry Warsaw2017-01-261-12/+12
|
* Bump copyright years.Barry Warsaw2017-01-0425-25/+25
|
* Use `atpublic` for @public instead of internal copy.Barry Warsaw2016-11-2915-16/+17
|
* Merge branch 'master' into py36Barry Warsaw2016-11-282-1/+3
|\
| * Merge branch 'fix-import-header-filters' into 'master' Barry Warsaw2016-11-262-1/+3
| |\ | | | | | | | | | | | | | | | | | | Cover another header match import case This branch just covers one more import conversion case seen in the wild. See merge request !163
| | * Cover another header match import caseAurélien Bompard2016-07-192-1/+3
| | |
* | | Handle a Python 3.6 difference in interact().Barry Warsaw2016-11-252-4/+12
|/ / | | | | | | | | | | | | Also: * Fix a regexp that 3.6 raises an exception on. * Remove a deprecated attribute from passlib.cfg.
* | Fix the Flake8 ignore tagsAurélien Bompard2016-11-212-6/+6
| |
* | Added unsubscribe instructions to list:member:generic:footer.txtFrancesco Ariis2016-08-252-4/+8
| |
* | Rebase mailman/mailman!180 and cleanup # noqaBarry Warsaw2016-07-285-16/+19
|/
* New template system. Closes #249Barry Warsaw2016-07-167-178/+367
| | | | | The new template system is introduced for API 3.1. See ``src/mailman/rest/docs/templates.rst`` for details.
* Clean up the environment properly.Barry Warsaw2016-05-231-24/+48
|
* run the tests with temporary directory and packagesAbhilash Raj2016-05-231-14/+43
|
* add test for module import failure in the presence of emacs lock filesAbhilash Raj2016-05-221-0/+46
|
* ignore modules starting with '.' when importingAbhilash Raj2016-05-161-1/+1
| | | | | Sometimes the backups are stored in the same directory by text editors as dotfiles which leads to ImportError.
* Use contextlib.suppress() where appropriate.Barry Warsaw2016-04-303-16/+13
|
* Ignore anything in /tmp and improve coverage.Barry Warsaw2016-04-091-1/+1
|
* Fix a mock.Barry Warsaw2016-04-081-1/+1
|
* Fix mailman shell processing of $PYTHONSTARTUP.Barry Warsaw2016-04-082-6/+103
| | | | Closes #224
* flake8 clean.Barry Warsaw2016-04-061-1/+1
|
* public() takes keyword arguments.Barry Warsaw2016-04-041-16/+8
|
* Replace execfile() with a Python 3 compatible alternative.Barry Warsaw2016-04-011-4/+2
|
* Use flake8-respect-noqa plugin and fix more complaints.Barry Warsaw2016-04-011-1/+1
|
* Don't use `flake8: noqa`.Barry Warsaw2016-04-013-6/+6
| | | | | | | This suppresses all errors in the file. Use `noqa`, although pep8 doesn't honor this for all errors. There may be a plugin which helps.
* Allow fall backs for moderation actions.Barry Warsaw2016-04-012-2/+2
| | | | | | | | | The `moderation_action` for members and nonmember can now be ``None`` which signals falling back to the appropriate list default action, e.g. `default_member_action` and `default_nonmember_action`. Given by Aurélien Bompard. Closes #189
* Import the unmoderated members with action 'defer'Aurélien Bompard2016-03-312-3/+7
|
* Members and nonmembers moderation action fallbackAurélien Bompard2016-03-312-4/+3
| | | | | | | | Members and nonmember's moderation action should be None by default, and in that case the moderation rule should fallback to the mailing list's default action. Fixes: #189
* Import order flake8 plugin.Barry Warsaw2016-03-271-3/+2
| | | | Fix lots of import order errors discovered by the new plugin.
* Clean up the utilities directory.Barry Warsaw2016-03-2521-273/+149
|
* Clean up the core directory.Barry Warsaw2016-03-242-2/+2
| | | | | | | mailman/core/errors.py is gone now. We had a duplicate base exception which now always comes from mailman/interfaces/errors.py. Obsolete/unused exceptions are remove. The other exceptions are moved to better locations.
* Last cleanups.Barry Warsaw2016-02-291-1/+2
| | | | | | | | | * Remove an unused import. * Opportunistically remove ^Ls * Add a missing interface attribute. * Fix up some docstrings. * Rename a parameter in an interface for clarity. * Random code style cleanups.
* Revert "Rename the HeaderMatch.chain column to action"Aurélien Bompard2016-02-292-10/+10
| | | | This reverts commit 703fc135dfcd496a704562ddc263aa0f4f828de9.
* Rename the HeaderMatch.chain column to actionAurélien Bompard2016-02-292-10/+10
| | | | It makes it clearer what values are valid, and allows validation.
* The order of a mailing list's header matches is significantAurélien Bompard2016-02-291-3/+3
| | | | | | | Add a numerical index property to HeaderMatch objects, and change the HeaderMatchSet manager to take the order into account. Items can now be inserted and removed by index.
* Allow List-ID in decoration template URIs.Barry Warsaw2016-02-272-14/+25
| | | | | | | | Closes #196 In mailman: URIs (e.g. IMailingList.header_uri and .footer_uri), you used to be able to only use fqdn-listnames. But since List-IDs are more stable, let's allow those too. Silently deprecate using the fqdn-listname.
* Several optimizations:Barry Warsaw2016-01-111-2/+1
| | | | | | | | | | | | * Use `yield from` wherever appropriate. * Use SA's .one_or_none() where appropriate. - Fix a bug in MailingList.pass_extensions. - Use ValueError in other places for consistency. - Remove unreached/nonsense code. - Simplify the SubscriptionService.find_member() and .find_members() implementations. - Boost coverage.
* Delegate more to the underlying query object and don't use a cached results.Barry Warsaw2016-01-102-4/+10
|
* Boost coverage.Barry Warsaw2016-01-091-0/+35
|
* Docstring.Barry Warsaw2016-01-061-0/+6
|
* Additional refactoring to use the QuerySequence wrapper, so that we can stillBarry Warsaw2016-01-061-0/+42
| | | | | | use len() and slicing on SQLAlchemy query results. We also don't need to list()-ify the results in the tests. This isn't perfect, but at least it doesn't introduce yet another layer violation.
* Boost coverage.Barry Warsaw2016-01-031-2/+2
| | | | | | Use coverage.ini to ignore a few common idioms, so as to reduce code clutter. Invoke coverage slightly differently in the tox.ini.
* Happy New Year.Barry Warsaw2016-01-0219-19/+19
|
* Coverage improvements.Barry Warsaw2015-12-294-7/+49
| | | | | | | | * Boost coverage. * Don't report coverage on the test modules. * In one test, when acquiring the lock, set a timeout. Hopefully this will eliminate the occasional test deadlock. * Fix a buglet in wrap()
* Boost coverage.Barry Warsaw2015-12-262-9/+90
| | | | | Use Python 3.5 to run the coverage tests. Clean up the code style a bit.
* Tweak the API.Barry Warsaw2015-12-261-23/+37
|
* Give the predictable ID factories similar APIs.Aurélien Bompard2015-12-261-25/+45
|