diff options
| author | Aurélien Bompard | 2014-10-06 19:17:50 +0200 |
|---|---|---|
| committer | Aurélien Bompard | 2014-10-06 19:17:50 +0200 |
| commit | b023009538019927b5fe67f129469ee8d4951f91 (patch) | |
| tree | 5827acf4b9a16de0914e8b9db4740f3092a3bbf8 | |
| parent | 506b0fff2b4b1f068223d6e9cdfb254fd53bcdac (diff) | |
| download | mailman-b023009538019927b5fe67f129469ee8d4951f91.tar.gz mailman-b023009538019927b5fe67f129469ee8d4951f91.tar.zst mailman-b023009538019927b5fe67f129469ee8d4951f91.zip | |
Don't use a testing layer for database tests
| -rw-r--r-- | src/mailman/database/tests/test_factory.py | 15 | ||||
| -rw-r--r-- | src/mailman/testing/layers.py | 55 |
2 files changed, 10 insertions, 60 deletions
diff --git a/src/mailman/database/tests/test_factory.py b/src/mailman/database/tests/test_factory.py index 81febbde5..a87bca7be 100644 --- a/src/mailman/database/tests/test_factory.py +++ b/src/mailman/database/tests/test_factory.py @@ -32,7 +32,7 @@ from mock import Mock from sqlalchemy import MetaData, Table, Column, Integer, Unicode from mailman.config import config -from mailman.testing.layers import DatabaseLayer +from mailman.testing.layers import ConfigLayer from mailman.database.factory import SchemaManager, _reset from mailman.database.sqlite import SQLiteDatabase from mailman.database.alembic import alembic_cfg @@ -42,12 +42,15 @@ from mailman.database.model import Model class TestSchemaManager(unittest.TestCase): - layer = DatabaseLayer + layer = ConfigLayer def setUp(self): - config.db = SQLiteDatabase() - config.db.initialize() - config.db._reset = types.MethodType(_reset, config.db) + # Drop the existing database + 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) self.schema_mgr = SchemaManager(config.db) def tearDown(self): @@ -55,6 +58,8 @@ class TestSchemaManager(unittest.TestCase): version = Model.metadata.tables["version"] version.drop(config.db.engine, checkfirst=True) Model.metadata.remove(version) + # Restore a virgin DB + Model.metadata.create_all(config.db.engine) def _table_exists(self, tablename): diff --git a/src/mailman/testing/layers.py b/src/mailman/testing/layers.py index c1346b29f..99852e135 100644 --- a/src/mailman/testing/layers.py +++ b/src/mailman/testing/layers.py @@ -315,61 +315,6 @@ class RESTLayer(SMTPLayer): -class DatabaseLayer: - """Layer for database tests""" - - var_dir = None - - @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 - if not event.subscribers: - # only if not yet initialized by another layer - initialize.initialize_1(INHIBIT_CONFIG_FILE) - # Don't initialize the database. - cls.var_dir = tempfile.mkdtemp() - test_config = dedent(""" - [mailman] - layout: testing - [paths.testing] - var_dir: {0} - [devmode] - testing: yes - """.format(cls.var_dir)) - # Read the testing config and push it. - test_config += resource_string('mailman.testing', 'testing.cfg') - config.create_paths = True - config.push('test config', test_config) - # Write the configuration file for subprocesses and set up the config - # object to pass that properly on the -C option. - config_file = os.path.join(cls.var_dir, 'test.cfg') - with open(config_file, 'w') as fp: - fp.write(test_config) - print(file=fp) - config.filename = config_file - - @classmethod - def tearDown(cls): - assert cls.var_dir is not None, 'Layer not set up' - shutil.rmtree(cls.var_dir) - config.pop('test config') - cls.var_dir = None - - @classmethod - def testTearDown(cls): - cls._drop_all_tables() - - - def is_testing(): """Return a 'testing' flag for use with the predictable factories. |
