diff options
| author | Barry Warsaw | 2013-11-25 21:26:15 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2013-11-25 21:26:15 -0500 |
| commit | 833633741f110354408b3e0cfd7f733a2541e97c (patch) | |
| tree | 4f63f9bb3a9b17a2250b398a6f80f51e6080a82d /src/mailman/database/tests/test_migrations.py | |
| parent | 91a39201f65747fde915495813e41ff324f87625 (diff) | |
| download | mailman-833633741f110354408b3e0cfd7f733a2541e97c.tar.gz mailman-833633741f110354408b3e0cfd7f733a2541e97c.tar.zst mailman-833633741f110354408b3e0cfd7f733a2541e97c.zip | |
Diffstat (limited to 'src/mailman/database/tests/test_migrations.py')
| -rw-r--r-- | src/mailman/database/tests/test_migrations.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/mailman/database/tests/test_migrations.py b/src/mailman/database/tests/test_migrations.py index d983f9891..44f594ba7 100644 --- a/src/mailman/database/tests/test_migrations.py +++ b/src/mailman/database/tests/test_migrations.py @@ -36,6 +36,7 @@ import unittest from datetime import datetime from operator import attrgetter from pkg_resources import resource_string +from sqlite3 import OperationalError from storm.exceptions import DatabaseError from zope.component import getUtility @@ -65,6 +66,23 @@ class MigrationTestBase(unittest.TestCase): def tearDown(self): self._database._cleanup() + def _table_missing_present(self, migrations, missing, present): + """The appropriate migrations leave some tables missing and present. + + :param migrations: Sequence of migrations to load. + :param missing: Tables which should be missing. + :param present: Tables which should be present. + """ + for migration in migrations: + self._database.load_migrations(migration) + self._database.store.commit() + for table in missing: + self.assertRaises(OperationalError, + self._database.store.execute, + 'select * from {};'.format(table)) + for table in present: + self._database.store.execute('select * from {};'.format(table)) + def _missing_present(self, table, migrations, missing, present): """The appropriate migrations leave columns missing and present. @@ -450,6 +468,15 @@ class TestMigration20130406Schema(MigrationTestBase): ('list_name',), ('list_id',)) + def test_pre_listarchiver_table(self): + self._table_missing_present(['20130405999999'], ('listarchiver',), ()) + + def test_post_listarchiver_table(self): + self._table_missing_present(['20130405999999', + '20130406000000'], + (), + ('listarchiver',)) + class TestMigration20130406MigratedData(MigrationTestBase): |
