diff options
Diffstat (limited to 'lib/sqlalchemy/testing/fixtures.py')
-rw-r--r-- | lib/sqlalchemy/testing/fixtures.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/sqlalchemy/testing/fixtures.py b/lib/sqlalchemy/testing/fixtures.py index 1a1204898..5c587cb2f 100644 --- a/lib/sqlalchemy/testing/fixtures.py +++ b/lib/sqlalchemy/testing/fixtures.py @@ -7,6 +7,7 @@ import sys import sqlalchemy as sa from sqlalchemy.ext.declarative import declarative_base, DeclarativeMeta + class TestBase(object): # A sequence of database names to always run, regardless of the # constraints below. @@ -29,6 +30,7 @@ class TestBase(object): def assert_(self, val, msg=None): assert val, msg + class TablesTest(TestBase): # 'once', None @@ -208,9 +210,11 @@ class _ORMTest(object): sa.orm.session.Session.close_all() sa.orm.clear_mappers() + class ORMTest(_ORMTest, TestBase): pass + class MappedTest(_ORMTest, TablesTest, assertions.AssertsExecutionResults): # 'once', 'each', None run_setup_classes = 'once' @@ -252,7 +256,6 @@ class MappedTest(_ORMTest, TablesTest, assertions.AssertsExecutionResults): cls.classes.clear() _ORMTest.teardown_class() - @classmethod def _setup_once_classes(cls): if cls.run_setup_classes == 'once': @@ -275,18 +278,21 @@ class MappedTest(_ORMTest, TablesTest, assertions.AssertsExecutionResults): """ cls_registry = cls.classes + class FindFixture(type): def __init__(cls, classname, bases, dict_): cls_registry[classname] = cls return type.__init__(cls, classname, bases, dict_) - class _Base(object): __metaclass__ = FindFixture + class Basic(BasicEntity, _Base): pass + class Comparable(ComparableEntity, _Base): pass + cls.Basic = Basic cls.Comparable = Comparable fn() @@ -306,6 +312,7 @@ class MappedTest(_ORMTest, TablesTest, assertions.AssertsExecutionResults): def setup_mappers(cls): pass + class DeclarativeMappedTest(MappedTest): run_setup_classes = 'once' run_setup_mappers = 'once' @@ -317,17 +324,21 @@ class DeclarativeMappedTest(MappedTest): @classmethod def _with_register_classes(cls, fn): cls_registry = cls.classes + class FindFixtureDeclarative(DeclarativeMeta): def __init__(cls, classname, bases, dict_): cls_registry[classname] = cls return DeclarativeMeta.__init__( cls, classname, bases, dict_) + class DeclarativeBasic(object): __table_cls__ = schema.Table + _DeclBase = declarative_base(metadata=cls.metadata, metaclass=FindFixtureDeclarative, cls=DeclarativeBasic) cls.DeclarativeBasic = _DeclBase fn() + if cls.metadata.tables: cls.metadata.create_all(config.db) |