summaryrefslogtreecommitdiff
path: root/src/mailman/database/tests
diff options
context:
space:
mode:
authorBarry Warsaw2013-11-25 21:26:15 -0500
committerBarry Warsaw2013-11-25 21:26:15 -0500
commit833633741f110354408b3e0cfd7f733a2541e97c (patch)
tree4f63f9bb3a9b17a2250b398a6f80f51e6080a82d /src/mailman/database/tests
parent91a39201f65747fde915495813e41ff324f87625 (diff)
downloadmailman-833633741f110354408b3e0cfd7f733a2541e97c.tar.gz
mailman-833633741f110354408b3e0cfd7f733a2541e97c.tar.zst
mailman-833633741f110354408b3e0cfd7f733a2541e97c.zip
Diffstat (limited to 'src/mailman/database/tests')
-rw-r--r--src/mailman/database/tests/test_migrations.py27
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):