summaryrefslogtreecommitdiff
path: root/src/mailman/database/tests
Commit message (Collapse)AuthorAgeFilesLines
...
| * Merge from Abhilash's branchAurélien Bompard2014-10-061-2/+3
| |\ | |/ |/|
| * Fix DB unit testsAurélien Bompard2014-10-061-35/+19
| |
| * Add unit tests for the automatic migration codeAurélien Bompard2014-10-032-0/+144
|/
* Migrations will be replaced with Alchemy.Barry Warsaw2014-09-226-779/+0
| | | | | | We don't need the raw SQL schema stuff any more. We don't need the Version table any more.
* Test repair:Barry Warsaw2014-09-211-1/+8
| | | | | | | | * Remove an unused import. * Add skips for all migration unit tests. * Fix model class attribute typo. * .values() returns tuples, so adjust for that. * Add a test.
* Bump copyright years.Barry Warsaw2014-01-011-1/+1
|
* Checkpointing.Barry Warsaw2013-11-251-0/+27
|
* Test repair, and import enum from the right place.Barry Warsaw2013-09-011-2/+3
|
* Migrate bounceevent.list_name -> bounceevent.list_idBarry Warsaw2013-09-011-0/+50
| | | | | | | * Rename StormBaseDatabase._create() -> .initialize() * Refactor database initialization. * make_listid() helper. * Add a pivot() helper for schema migrations.
* Bump copyright years.Barry Warsaw2013-01-011-1/+1
|
* Remove mailinglist.admin_member_chunksize.Barry Warsaw2012-12-301-2/+4
|
* Remove mailinglist.private_roster.Barry Warsaw2012-12-301-2/+2
|
* Remove unused columns mailinglist.subscribe_policy,Barry Warsaw2012-12-301-2/+6
| | | | mailinglist.unsubscribe_policy, mailinglist.subscribe_auto_approval.
* Remove mailinglist.send_reminders column too.Barry Warsaw2012-12-301-2/+3
|
* * The column `mailinglist.new_member_options` was unused, and has beenBarry Warsaw2012-12-301-0/+9
| | | | removed.
* Revert the addition of the mailinglist.style_name column, as well as theBarry Warsaw2012-12-291-9/+1
| | | | | | | | | | | | IMailingList.style_name attribute. The problem is, there's nothing to guarantee that only one style will get run, and there's no sense in keeping track of the last style applied. Also: * Remove ListManager.create()'s setting of .personalize and .display_name. These should be left to the styles. (There's no reason why only these two would be set here.) * Fix some typos.
* LP: #975692 phase 1Barry Warsaw2012-12-281-4/+19
| | | | | | | | | | | | | | | | | * Rework list style management. No more style priorities or matching.. Now, you name a style explicitly to apply and that's it. * create_list() now takes a `style` argument. * config file now names both a default style to use, and a set of paths to scan for IStyle instances. (This could be a model for other plugins.) * added IMailingList.style_name to record the last style applied, but this is going to be removed in subsequent revisions. Also: * Move find_components() and scan_module() from app/finder.py to utilities/modules.py * Cleaned up lifecycle.rst for better documentation. Some tests moved to test_lifecycle.py. * Remove some unnecessary test tearDown() code.
* DatabaseBarry Warsaw2012-10-161-78/+114
| | | | | | | | | | | | -------- * The `ban` table now uses list-ids to cross-reference the mailing list, since these cannot change even if the mailing list is moved or renamed. Interfaces ---------- * The `IBanManager` is no longer a global utility. Instead, you adapt an `IMailingList` to an `IBanManager` to manage the bans for a specific mailing list. To manage the global bans, adapt ``None``.
* Port the schema migration changes for LP: #1024509 to PostgreSQL.Barry Warsaw2012-09-051-0/+1
|
* * Schema migrations (LP: #1024509)Barry Warsaw2012-09-041-0/+21
| | | | - member.mailing_list -> list_id
* * The link between members and the mailing lists they are subscribed to, isBarry Warsaw2012-09-041-0/+10
| | | | | | | | | | | | | | | now via the RFC 2369 `list_id` instead of the fqdn listname (i.e. posting address). This is because while the posting address can change if the mailing list is moved to a new server, the list id is fixed. (LP: #1024509) + IListManager.get_by_list_id() added. + IListManager.list_ids added. + IMailingList.list_id added. + Several internal APIs that accepted fqdn list names now require list ids, e.g. ISubscriptionService.join() and .find_members(). + IMember.list_id attribute added; .mailing_list is now an alias that retrieves and returns the IMailingList. - list_id added (LP: #1024509)
* * Removed obsolete `IMailingList` attribute `generic_nonmember_action.Barry Warsaw2012-08-191-0/+2
| | | | (LP: #975696)
* * The policy for archiving has now been collapsed into a single enum, calledBarry Warsaw2012-07-262-2/+2
| | | | | | | | | | | | | | | | | ArchivePolicy. This describes the three states of never archive, archive privately, and archive_publicly. (LP: #967238) Database -------- * Schema migrations (LP: #971013) - include_list_post_header -> allow_list_posts - news_prefix_subject_too -> nntp_prefix_subject_too - news_moderation -> newsgroup_moderation - archive and archive_private have been collapsed into archive_policy. - nntp_host has been removed. * The PostgreSQL port of the schema accidentally added a moderation_callback column to the mailinglist table. Since this is unused in Mailman, it was simply commented out of the base schema for PostgreSQL.
* Working for SQLite:Barry Warsaw2012-07-251-6/+85
| | | | | | include_list_post_header -> allow_list_posts Also add a bunch more migration tests.
* Add a temporary database factory so we can remove more cruft from theBarry Warsaw2012-07-251-15/+11
| | | | | | | | | individual database classes themselves. This does mean that the temporary factory must know something special about the sqlite and postgresql databases, but I think that's an acceptable trade-off. This should make the test code cleaner, and allow me to write better support for temporary PostgreSQL databases.
* A few more tweaks to get PostgreSQL working.Barry Warsaw2012-07-251-3/+4
| | | | | - store.rollback() is better than store.execute('ABORT;') - We need to do a commit after the migrations are loaded.
* One more refactoring.Barry Warsaw2012-07-251-11/+11
|
* Refactor once again for SQLite/PostgreSQL differences.Barry Warsaw2012-07-251-65/+28
|
* No need to parameterize the exceptions, since Storm does this for us.Barry Warsaw2012-07-251-2/+3
|
* Very nearly there with PostgreSQL support for testing the beta2 migration.Barry Warsaw2012-07-253-43/+170
| | | | | | | | | - Improve migration logging - Disable pre_reset() and post_reset() on migrations, which might need to be re-enabled for SQLite support. - Be sure to record the migration version in PostgreSQL. - Parameterize the Error that will occur. - Better sample data for PostgreSQL and SQLite, which have different formats.
* Checkpointing Postgres port of test suite.Barry Warsaw2012-07-232-70/+334
| | | | | | | | | - Refactor load_schema() into a separate load_sql() method. - Add API for test suite to make a temporary database. - Add code to migrate the PostgreSQL database. - Comment out `moderation_callback` from the PostgreSQL SQL; this must have snuck in accidentally via the contributed port. - Refactor test_migrations.py
* Add a few more tests.Barry Warsaw2012-07-201-1/+18
|
* Get test suite completely working:Barry Warsaw2012-07-201-14/+15
| | | | | | | - migrations.rst needs to handle new standard migration - Add ResetHelper() to refactor out common migration test cooperation. - Handle temporary database. - Fix some attribute names.
* Separate out the migration test methods so that the ones testing that theBarry Warsaw2012-04-203-20/+36
| | | | | | | | columns got renamed don't in fact check the data in those tables. Better separation of concerns. Rename mailman.database.transaction.txn to ...transactional and use it in a couple of additional spots.
* newsgroup_moderationBarry Warsaw2012-04-081-0/+7
|
* - Rename the model attributes.Barry Warsaw2012-04-081-7/+3
| | | | - news_moderation -> newsgroup_moderation
* - Refactor the way databases are schema-migrated so that load_migrations()Barry Warsaw2012-04-082-0/+133
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.