summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/testing/fixtures.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/testing/fixtures.py')
-rw-r--r--lib/sqlalchemy/testing/fixtures.py15
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)