diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-08-31 11:46:55 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-09-10 17:53:53 -0400 |
commit | 450f5c0d6519a439f4025c3892fe4cf3ee2d892c (patch) | |
tree | 1f3f2467306304a5e9ccb25f10bfdf9989327ae2 /lib/sqlalchemy/testing/fixtures.py | |
parent | 96bb6dc56d1da2b4fa30afd08ac4dfa665752913 (diff) | |
download | sqlalchemy-450f5c0d6519a439f4025c3892fe4cf3ee2d892c.tar.gz |
Build out new declarative systems; deprecate mapper()
The ORM Declarative system is now unified into the ORM itself, with new
import spaces under ``sqlalchemy.orm`` and new kinds of mappings. Support
for decorator-based mappings without using a base class, support for
classical style-mapper() calls that have access to the declarative class
registry for relationships, and full integration of Declarative with 3rd
party class attribute systems like ``dataclasses`` and ``attrs`` is now
supported.
Fixes: #5508
Change-Id: I130b2b6edff6450bfe8a3e6baa099ff04b5471ff
Diffstat (limited to 'lib/sqlalchemy/testing/fixtures.py')
-rw-r--r-- | lib/sqlalchemy/testing/fixtures.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/sqlalchemy/testing/fixtures.py b/lib/sqlalchemy/testing/fixtures.py index 85d3374de..2d3b27917 100644 --- a/lib/sqlalchemy/testing/fixtures.py +++ b/lib/sqlalchemy/testing/fixtures.py @@ -15,11 +15,13 @@ from . import schema from .engines import drop_all_tables from .entities import BasicEntity from .entities import ComparableEntity +from .entities import ComparableMixin # noqa from .util import adict from .. import event from .. import util -from ..ext.declarative import declarative_base -from ..ext.declarative import DeclarativeMeta +from ..orm import declarative_base +from ..orm import registry +from ..orm.decl_api import DeclarativeMeta from ..schema import sort_tables_and_constraints @@ -383,10 +385,12 @@ class MappedTest(_ORMTest, TablesTest, assertions.AssertsExecutionResults): @classmethod def _setup_once_mappers(cls): if cls.run_setup_mappers == "once": + cls.mapper = cls._generate_mapper() cls._with_register_classes(cls.setup_mappers) def _setup_each_mappers(self): if self.run_setup_mappers == "each": + self.mapper = self._generate_mapper() self._with_register_classes(self.setup_mappers) def _setup_each_classes(self): @@ -394,6 +398,11 @@ class MappedTest(_ORMTest, TablesTest, assertions.AssertsExecutionResults): self._with_register_classes(self.setup_classes) @classmethod + def _generate_mapper(cls): + decl = registry() + return decl.map_imperatively + + @classmethod def _with_register_classes(cls, fn): """Run a setup method, framing the operation with a Base class that will catch new subclasses to be established within |