diff options
| author | Aurélien Bompard | 2014-10-03 17:08:11 +0200 |
|---|---|---|
| committer | Aurélien Bompard | 2014-10-03 17:08:11 +0200 |
| commit | 19850b6abd93a27fe22f80b20b8c7ba9bcb24205 (patch) | |
| tree | 008578f25fc5eb0652175cac2a96508be108c86e /src/mailman/testing/layers.py | |
| parent | 7806170485eafd3b8c8fdd3943a48dff1a8fd92d (diff) | |
| download | mailman-19850b6abd93a27fe22f80b20b8c7ba9bcb24205.tar.gz mailman-19850b6abd93a27fe22f80b20b8c7ba9bcb24205.tar.zst mailman-19850b6abd93a27fe22f80b20b8c7ba9bcb24205.zip | |
Diffstat (limited to 'src/mailman/testing/layers.py')
| -rw-r--r-- | src/mailman/testing/layers.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/mailman/testing/layers.py b/src/mailman/testing/layers.py index 3d2a50782..304f9a891 100644 --- a/src/mailman/testing/layers.py +++ b/src/mailman/testing/layers.py @@ -47,6 +47,7 @@ import tempfile from lazr.config import as_boolean from pkg_resources import resource_string +from sqlalchemy import MetaData from textwrap import dedent from zope.component import getUtility @@ -54,6 +55,7 @@ from mailman.config import config from mailman.core import initialize from mailman.core.initialize import INHIBIT_CONFIG_FILE from mailman.core.logging import get_handler +from mailman.database.model import Model from mailman.database.transaction import transaction from mailman.interfaces.domain import IDomainManager from mailman.testing.helpers import ( @@ -310,6 +312,34 @@ class RESTLayer(SMTPLayer): +class DatabaseLayer(MockAndMonkeyLayer): + """Layer for database tests""" + + @classmethod + def _drop_all_tables(cls): + Model.metadata.drop_all(config.db.engine) + md = MetaData() + md.reflect(bind=config.db.engine) + if "alembic_version" in md.tables: + md.tables["alembic_version"].drop(config.db.engine) + + @classmethod + def setUp(cls): + # Set up the basic configuration stuff. Turn off path creation. + config.create_paths = False + initialize.initialize_1(INHIBIT_CONFIG_FILE) + # Don't initialize the database. + + @classmethod + def tearDown(cls): + cls._drop_all_tables() + + @classmethod + def testTearDown(cls): + cls._drop_all_tables() + + + def is_testing(): """Return a 'testing' flag for use with the predictable factories. |
