From 257f9130c321aaa948690d0e49c7352ad1188abd Mon Sep 17 00:00:00 2001 From: Gord Thompson Date: Thu, 12 Aug 2021 13:04:28 -0600 Subject: [PATCH] Modernize tests - calling_mapper_directly a few changes for py2k: * map_imperatively() includes the check that a class is being sent, this was only working for mapper() before * the test suite didn't place the py2k "autouse" workaround in the correct order, seemingly, tried to adjust the per-test ordering setup in pytestplugin.py Change-Id: I4cc39630724e810953cfda7b2afdadc8b948e3c2 --- lib/sqlalchemy/orm/decl_base.py | 40 +- lib/sqlalchemy/testing/fixtures.py | 15 +- lib/sqlalchemy/testing/plugin/pytestplugin.py | 47 +- lib/sqlalchemy/testing/warnings.py | 5 - test/aaa_profiling/test_memusage.py | 78 +- test/aaa_profiling/test_misc.py | 12 +- test/aaa_profiling/test_orm.py | 81 +- test/dialect/postgresql/test_compiler.py | 9 +- test/dialect/postgresql/test_types.py | 8 +- test/ext/test_associationproxy.py | 283 +++---- test/ext/test_baked.py | 23 +- test/ext/test_deprecations.py | 9 +- test/ext/test_horizontal_shard.py | 53 +- test/ext/test_mutable.py | 27 +- test/ext/test_orderinglist.py | 9 +- test/ext/test_serializer.py | 5 +- test/orm/_fixtures.py | 17 +- test/orm/declarative/test_inheritance.py | 15 +- test/orm/inheritance/test_abc_inheritance.py | 7 +- test/orm/inheritance/test_abc_polymorphic.py | 9 +- test/orm/inheritance/test_assorted_poly.py | 127 +-- test/orm/inheritance/test_basic.py | 424 ++++++---- test/orm/inheritance/test_concrete.py | 131 ++-- test/orm/inheritance/test_magazine.py | 31 +- test/orm/inheritance/test_manytomany.py | 25 +- test/orm/inheritance/test_poly_linked_list.py | 36 +- test/orm/inheritance/test_poly_persistence.py | 23 +- test/orm/inheritance/test_productspec.py | 61 +- test/orm/inheritance/test_relationship.py | 103 +-- test/orm/inheritance/test_selects.py | 13 +- test/orm/inheritance/test_single.py | 165 ++-- test/orm/test_association.py | 7 +- test/orm/test_assorted_eager.py | 63 +- test/orm/test_backref_mutations.py | 33 +- test/orm/test_bind.py | 45 +- test/orm/test_bulk.py | 33 +- test/orm/test_bundle.py | 7 +- test/orm/test_cache_key.py | 5 +- test/orm/test_cascade.py | 252 +++--- test/orm/test_collection.py | 41 +- test/orm/test_compile.py | 37 +- test/orm/test_composites.py | 35 +- test/orm/test_core_compilation.py | 27 +- test/orm/test_cycles.py | 88 ++- test/orm/test_dataclasses_py3k.py | 9 +- test/orm/test_default_strategies.py | 37 +- test/orm/test_defaults.py | 17 +- test/orm/test_deferred.py | 115 +-- test/orm/test_deprecations.py | 304 ++++++-- test/orm/test_dynamic.py | 45 +- test/orm/test_eager_relations.py | 437 ++++++----- test/orm/test_evaluator.py | 3 +- test/orm/test_events.py | 130 ++-- test/orm/test_expire.py | 201 ++--- test/orm/test_froms.py | 145 ++-- test/orm/test_generative.py | 19 +- test/orm/test_hasparent.py | 7 +- test/orm/test_immediate_load.py | 21 +- test/orm/test_inspect.py | 24 +- test/orm/test_instrumentation.py | 35 +- test/orm/test_joins.py | 63 +- test/orm/test_lambdas.py | 9 +- test/orm/test_lazy_relations.py | 160 ++-- test/orm/test_loading.py | 7 +- test/orm/test_lockmode.py | 15 +- test/orm/test_manytomany.py | 31 +- test/orm/test_mapper.py | 57 +- test/orm/test_merge.py | 200 +++-- test/orm/test_naturalpks.py | 97 +-- test/orm/test_onetoone.py | 13 +- test/orm/test_options.py | 95 ++- test/orm/test_pickled.py | 83 +- test/orm/test_query.py | 113 +-- test/orm/test_relationship_criteria.py | 20 +- test/orm/test_relationships.py | 723 +++++++++--------- test/orm/test_scoping.py | 5 +- test/orm/test_selectable.py | 16 +- test/orm/test_selectin_relations.py | 206 ++--- test/orm/test_session.py | 136 ++-- test/orm/test_subquery_relations.py | 225 +++--- test/orm/test_sync.py | 5 +- test/orm/test_transaction.py | 117 +-- test/orm/test_unitofwork.py | 268 ++++--- test/orm/test_unitofworkv2.py | 177 +++-- test/orm/test_update_delete.py | 29 +- test/orm/test_utils.py | 19 +- test/orm/test_validators.py | 39 +- test/orm/test_versioning.py | 85 +- 88 files changed, 4039 insertions(+), 3087 deletions(-) diff --git a/lib/sqlalchemy/orm/decl_base.py b/lib/sqlalchemy/orm/decl_base.py index e1945e8ee9..bf1bc537da 100644 --- a/lib/sqlalchemy/orm/decl_base.py +++ b/lib/sqlalchemy/orm/decl_base.py @@ -176,19 +176,28 @@ class _MapperConfig(object): return cfg_cls(registry, cls_, dict_, table, mapper_kw) - def __init__(self, registry, cls_): - self.cls = cls_ + def __init__(self, registry, cls_, mapper_kw): + self.cls = util.assert_arg_type(cls_, type, "cls_") self.classname = cls_.__name__ self.properties = util.OrderedDict() self.declared_attr_reg = {} - instrumentation.register_class( - self.cls, - finalize=False, - registry=registry, - declarative_scan=self, - init_method=registry.constructor, - ) + if not mapper_kw.get("non_primary", False): + instrumentation.register_class( + self.cls, + finalize=False, + registry=registry, + declarative_scan=self, + init_method=registry.constructor, + ) + else: + manager = attributes.manager_of_class(self.cls) + if not manager or not manager.is_mapped: + raise exc.InvalidRequestError( + "Class %s has no primary mapper configured. Configure " + "a primary mapper first before setting up a non primary " + "Mapper." % self.cls + ) def set_cls_attribute(self, attrname, value): @@ -210,15 +219,18 @@ class _ImperativeMapperConfig(_MapperConfig): table, mapper_kw, ): - super(_ImperativeMapperConfig, self).__init__(registry, cls_) + super(_ImperativeMapperConfig, self).__init__( + registry, cls_, mapper_kw + ) self.dict_ = {} self.local_table = self.set_cls_attribute("__table__", table) with mapperlib._CONFIGURE_MUTEX: - clsregistry.add_class( - self.classname, self.cls, registry._class_registry - ) + if not mapper_kw.get("non_primary", False): + clsregistry.add_class( + self.classname, self.cls, registry._class_registry + ) self._setup_inheritance(mapper_kw) @@ -288,7 +300,7 @@ class _ClassScanMapperConfig(_MapperConfig): mapper_kw, ): - super(_ClassScanMapperConfig, self).__init__(registry, cls_) + super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) self.dict_ = dict(dict_) if dict_ else {} self.persist_selectable = None diff --git a/lib/sqlalchemy/testing/fixtures.py b/lib/sqlalchemy/testing/fixtures.py index 01a838c56d..f04056c5e5 100644 --- a/lib/sqlalchemy/testing/fixtures.py +++ b/lib/sqlalchemy/testing/fixtures.py @@ -638,12 +638,17 @@ class MappedTest(TablesTest, assertions.AssertsExecutionResults): @classmethod def _setup_once_mappers(cls): if cls.run_setup_mappers == "once": - cls.mapper = cls._generate_mapper() + cls.mapper_registry, cls.mapper = cls._generate_registry() cls._with_register_classes(cls.setup_mappers) def _setup_each_mappers(self): + if self.run_setup_mappers != "once": + ( + self.__class__.mapper_registry, + self.__class__.mapper, + ) = self._generate_registry() + if self.run_setup_mappers == "each": - self.__class__.mapper = self._generate_mapper() self._with_register_classes(self.setup_mappers) def _setup_each_classes(self): @@ -651,9 +656,9 @@ class MappedTest(TablesTest, assertions.AssertsExecutionResults): self._with_register_classes(self.setup_classes) @classmethod - def _generate_mapper(cls): - decl = registry() - return decl.map_imperatively + def _generate_registry(cls): + decl = registry(metadata=cls._tables_metadata) + return decl, decl.map_imperatively @classmethod def _with_register_classes(cls, fn): diff --git a/lib/sqlalchemy/testing/plugin/pytestplugin.py b/lib/sqlalchemy/testing/plugin/pytestplugin.py index d28048f70f..6c6287060b 100644 --- a/lib/sqlalchemy/testing/plugin/pytestplugin.py +++ b/lib/sqlalchemy/testing/plugin/pytestplugin.py @@ -479,7 +479,16 @@ def setup_test_methods(request): self = request.instance - # 1. run outer xdist-style setup + # before this fixture runs: + + # 1. function level "autouse" fixtures under py3k (examples: TablesTest + # define tables / data, MappedTest define tables / mappers / data) + + # 2. run homegrown function level "autouse" fixtures under py2k + if py2k: + reinvent_fixtures_py2k.run_fn_fixture_setup(request) + + # 3. run outer xdist-style setup if hasattr(self, "setup_test"): asyncio._maybe_async(self.setup_test) @@ -489,15 +498,7 @@ def setup_test_methods(request): if hasattr(self, "setUp"): asyncio._maybe_async(self.setUp) - # 2. run homegrown function level "autouse" fixtures under py2k - if py2k: - reinvent_fixtures_py2k.run_fn_fixture_setup(request) - # inside the yield: - - # 3. function level "autouse" fixtures under py3k (examples: TablesTest - # define tables / data, MappedTest define tables / mappers / data) - # 4. function level fixtures defined on test functions themselves, # e.g. "connection", "metadata" run next @@ -509,33 +510,33 @@ def setup_test_methods(request): # yield finishes: - # 7. pytest hook pytest_runtest_teardown hook runs, this is associated + # 7. function level fixtures defined on test functions + # themselves, e.g. "connection" rolls back the transaction, "metadata" + # emits drop all + + # 8. pytest hook pytest_runtest_teardown hook runs, this is associated # with fixtures close all sessions, provisioning.stop_test_class(), # engines.testing_reaper -> ensure all connection pool connections # are returned, engines created by testing_engine that aren't the # config engine are disposed - # 8. function level fixtures defined on test functions - # themselves, e.g. "connection" rolls back the transaction, "metadata" - # emits drop all - - # 9. function level "autouse" fixtures under py3k (examples: TablesTest / - # MappedTest delete table data, possibly drop tables and clear mappers - # depending on the flags defined by the test class) - - # 10. run homegrown function-level "autouse" fixtures under py2k - if py2k: - reinvent_fixtures_py2k.run_fn_fixture_teardown(request) - asyncio._maybe_async(plugin_base.after_test_fixtures, self) - # 11. run outer xdist-style teardown + # 10. run xdist-style teardown if hasattr(self, "tearDown"): asyncio._maybe_async(self.tearDown) if hasattr(self, "teardown_test"): asyncio._maybe_async(self.teardown_test) + # 11. run homegrown function-level "autouse" fixtures under py2k + if py2k: + reinvent_fixtures_py2k.run_fn_fixture_teardown(request) + + # 12. function level "autouse" fixtures under py3k (examples: TablesTest / + # MappedTest delete table data, possibly drop tables and clear mappers + # depending on the flags defined by the test class) + def getargspec(fn): if sys.version_info.major == 3: diff --git a/lib/sqlalchemy/testing/warnings.py b/lib/sqlalchemy/testing/warnings.py index f72d53d676..67ed452a06 100644 --- a/lib/sqlalchemy/testing/warnings.py +++ b/lib/sqlalchemy/testing/warnings.py @@ -65,11 +65,6 @@ def setup_filters(): # be "error" however for I98b8defdf7c37b818b3824d02f7668e3f5f31c94 # we are moving one at a time for msg in [ - # - # ORM configuration - # - r"Calling the mapper\(\) function directly outside of a " - "declarative registry", # # ORM Query # diff --git a/test/aaa_profiling/test_memusage.py b/test/aaa_profiling/test_memusage.py index d196793a40..b99741ddb2 100644 --- a/test/aaa_profiling/test_memusage.py +++ b/test/aaa_profiling/test_memusage.py @@ -23,7 +23,6 @@ from sqlalchemy.orm import declarative_base from sqlalchemy.orm import join as orm_join from sqlalchemy.orm import joinedload from sqlalchemy.orm import Load -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import selectinload from sqlalchemy.orm import Session @@ -358,7 +357,7 @@ class MemUsageTest(EnsureZeroed): go() -class MemUsageWBackendTest(EnsureZeroed): +class MemUsageWBackendTest(fixtures.MappedTest, EnsureZeroed): __tags__ = ("memory_intensive",) __requires__ = "cpython", "memory_process_intensive", "no_asyncio" @@ -408,7 +407,7 @@ class MemUsageWBackendTest(EnsureZeroed): metadata.create_all(self.engine) - m1 = mapper( + m1 = self.mapper_registry.map_imperatively( A, table1, properties={ @@ -417,7 +416,7 @@ class MemUsageWBackendTest(EnsureZeroed): ) }, ) - m2 = mapper(B, table2) + m2 = self.mapper_registry.map_imperatively(B, table2) @profile_memory() def go(): @@ -498,7 +497,7 @@ class MemUsageWBackendTest(EnsureZeroed): metadata.create_all() - m1 = mapper( + m1 = self.mapper_registry.map_imperatively( A, table1, properties={ @@ -508,7 +507,9 @@ class MemUsageWBackendTest(EnsureZeroed): }, _compiled_cache_size=50, ) - m2 = mapper(B, table2, _compiled_cache_size=50) + m2 = self.mapper_registry.map_imperatively( + B, table2, _compiled_cache_size=50 + ) @profile_memory() def go(): @@ -568,7 +569,9 @@ class MemUsageWBackendTest(EnsureZeroed): class Wide(object): pass - mapper(Wide, wide_table, _compiled_cache_size=10) + self.mapper_registry.map_imperatively( + Wide, wide_table, _compiled_cache_size=10 + ) metadata.create_all(self.engine) with Session(self.engine) as session: @@ -614,7 +617,7 @@ class MemUsageWBackendTest(EnsureZeroed): class SomeClass(object): pass - mapper(SomeClass, some_table) + self.mapper_registry.map_imperatively(SomeClass, some_table) metadata.create_all(self.engine) @@ -722,12 +725,12 @@ class MemUsageWBackendTest(EnsureZeroed): @profile_memory() def go(): - mapper( + self.mapper_registry.map_imperatively( A, table1, properties={"bs": relationship(B, order_by=table2.c.col1)}, ) - mapper(B, table2) + self.mapper_registry.map_imperatively(B, table2) sess = create_session(self.engine) a1 = A(col2="a1") @@ -791,9 +794,15 @@ class MemUsageWBackendTest(EnsureZeroed): "id", Integer, primary_key=True, test_needs_autoincrement=True ), ) - mapper(A, a, polymorphic_identity="a", polymorphic_on=a.c.type) - mapper(ASub, asub, inherits=A, polymorphic_identity="asub") - mapper(B, b, properties={"as_": relationship(A)}) + self.mapper_registry.map_imperatively( + A, a, polymorphic_identity="a", polymorphic_on=a.c.type + ) + self.mapper_registry.map_imperatively( + ASub, asub, inherits=A, polymorphic_identity="asub" + ) + self.mapper_registry.map_imperatively( + B, b, properties={"as_": relationship(A)} + ) metadata.create_all(self.engine) sess = Session(self.engine) @@ -836,8 +845,10 @@ class MemUsageWBackendTest(EnsureZeroed): Column("id", Integer, primary_key=True), Column("a_id", ForeignKey("a.id")), ) - m1 = mapper(A, a, properties={"bs": relationship(B)}) - mapper(B, b) + m1 = self.mapper_registry.map_imperatively( + A, a, properties={"bs": relationship(B)} + ) + self.mapper_registry.map_imperatively(B, b) @profile_memory() def go(): @@ -883,13 +894,16 @@ class MemUsageWBackendTest(EnsureZeroed): class B(A): pass - mapper( + clear_mappers() + self.mapper_registry.map_imperatively( A, table1, polymorphic_on=table1.c.col2, polymorphic_identity="a", ) - mapper(B, table2, inherits=A, polymorphic_identity="b") + self.mapper_registry.map_imperatively( + B, table2, inherits=A, polymorphic_identity="b" + ) sess = create_session(self.engine) a1 = A() @@ -961,7 +975,7 @@ class MemUsageWBackendTest(EnsureZeroed): class B(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( A, table1, properties={ @@ -970,7 +984,7 @@ class MemUsageWBackendTest(EnsureZeroed): ) }, ) - mapper(B, table2) + self.mapper_registry.map_imperatively(B, table2) sess = create_session(self.engine) a1 = A(col2="a1") @@ -1039,7 +1053,7 @@ class MemUsageWBackendTest(EnsureZeroed): class T1(object): pass - t1_mapper = mapper(T1, t1) + t1_mapper = self.mapper_registry.map_imperatively(T1, t1) @testing.emits_warning() @profile_memory() @@ -1047,7 +1061,7 @@ class MemUsageWBackendTest(EnsureZeroed): class T2(object): pass - t2_mapper = mapper(T2, t2) + t2_mapper = self.mapper_registry.map_imperatively(T2, t2) t1_mapper.add_property("bar", relationship(t2_mapper)) s1 = Session(testing.db) # this causes the path_registry to be invoked @@ -1086,8 +1100,14 @@ class MemUsageWBackendTest(EnsureZeroed): class Bar(object): pass - mapper( - Foo, table1, properties={"bars": relationship(mapper(Bar, table2))} + self.mapper_registry.map_imperatively( + Foo, + table1, + properties={ + "bars": relationship( + self.mapper_registry.map_imperatively(Bar, table2) + ) + }, ) metadata.create_all(self.engine) session = sessionmaker(self.engine) @@ -1134,8 +1154,14 @@ class MemUsageWBackendTest(EnsureZeroed): class Bar(object): pass - mapper( - Foo, table1, properties={"bars": relationship(mapper(Bar, table2))} + self.mapper_registry.map_imperatively( + Foo, + table1, + properties={ + "bars": relationship( + self.mapper_registry.map_imperatively(Bar, table2) + ) + }, ) metadata.create_all(self.engine) session = sessionmaker(self.engine) @@ -1211,7 +1237,7 @@ class CycleTest(_fixtures.FixtureTest): def user_name(self): return self.name - mapper(Foo, users) + self.mapper_registry.map_imperatively(Foo, users) # unfortunately there's a lot of cycles with an aliased() # for now, however calling upon clause_element does not seem diff --git a/test/aaa_profiling/test_misc.py b/test/aaa_profiling/test_misc.py index 5b30a3968b..ba3283f556 100644 --- a/test/aaa_profiling/test_misc.py +++ b/test/aaa_profiling/test_misc.py @@ -1,3 +1,4 @@ +import sqlalchemy from sqlalchemy import Column from sqlalchemy import Enum from sqlalchemy import ForeignKey @@ -8,7 +9,6 @@ from sqlalchemy import String from sqlalchemy import Table from sqlalchemy import testing from sqlalchemy.orm import join as ormjoin -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import eq_ from sqlalchemy.testing import fixtures @@ -59,6 +59,8 @@ class CacheKeyTest(fixtures.TestBase): # a whole new model of setup/teardown, since pytest "fixture" # sort of purposely works badly with setup/teardown + registry = sqlalchemy.orm.registry() + metadata = MetaData() parent = Table( "parent", @@ -82,14 +84,16 @@ class CacheKeyTest(fixtures.TestBase): class Child(testing.entities.BasicEntity): pass - mapper( + registry.map_imperatively( Parent, parent, properties={"children": relationship(Child, backref="parent")}, ) - mapper(Child, child) + registry.map_imperatively(Child, child) + + yield Parent, Child - return Parent, Child + registry.dispose() @testing.fixture(scope="function") def stmt_fixture_one(self, mapping_fixture): diff --git a/test/aaa_profiling/test_orm.py b/test/aaa_profiling/test_orm.py index 727d48fcac..e9771fc673 100644 --- a/test/aaa_profiling/test_orm.py +++ b/test/aaa_profiling/test_orm.py @@ -13,7 +13,6 @@ from sqlalchemy.orm import defer from sqlalchemy.orm import join as orm_join from sqlalchemy.orm import joinedload from sqlalchemy.orm import Load -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import selectinload from sqlalchemy.orm import Session @@ -68,12 +67,12 @@ class MergeTest(NoCache, fixtures.MappedTest): cls.tables.child, ) - mapper( + cls.mapper_registry.map_imperatively( Parent, parent, properties={"children": relationship(Child, backref="parent")}, ) - mapper(Child, child) + cls.mapper_registry.map_imperatively(Child, child) @classmethod def insert_data(cls, connection): @@ -189,8 +188,10 @@ class LoadManyToOneFromIdentityTest(fixtures.MappedTest): cls.tables.child, ) - mapper(Parent, parent, properties={"child": relationship(Child)}) - mapper(Child, child) + cls.mapper_registry.map_imperatively( + Parent, parent, properties={"child": relationship(Child)} + ) + cls.mapper_registry.map_imperatively(Child, child) @classmethod def insert_data(cls, connection): @@ -284,7 +285,7 @@ class MergeBackrefsTest(NoCache, fixtures.MappedTest): def setup_mappers(cls): A, B, C, D = cls.classes.A, cls.classes.B, cls.classes.C, cls.classes.D a, b, c, d = cls.tables.a, cls.tables.b, cls.tables.c, cls.tables.d - mapper( + cls.mapper_registry.map_imperatively( A, a, properties={ @@ -293,9 +294,9 @@ class MergeBackrefsTest(NoCache, fixtures.MappedTest): "ds": relationship(D, backref="a"), }, ) - mapper(B, b) - mapper(C, c) - mapper(D, d) + cls.mapper_registry.map_imperatively(B, b) + cls.mapper_registry.map_imperatively(C, c) + cls.mapper_registry.map_imperatively(D, d) @classmethod def insert_data(cls, connection): @@ -361,7 +362,7 @@ class DeferOptionsTest(NoCache, fixtures.MappedTest): def setup_mappers(cls): A = cls.classes.A a = cls.tables.a - mapper(A, a) + cls.mapper_registry.map_imperatively(A, a) @classmethod def insert_data(cls, connection): @@ -441,12 +442,12 @@ class AttributeOverheadTest(NoCache, fixtures.MappedTest): cls.tables.child, ) - mapper( + cls.mapper_registry.map_imperatively( Parent, parent, properties={"children": relationship(Child, backref="parent")}, ) - mapper(Child, child) + cls.mapper_registry.map_imperatively(Child, child) def test_attribute_set(self): Parent, Child = self.classes.Parent, self.classes.Child @@ -520,12 +521,12 @@ class SessionTest(NoCache, fixtures.MappedTest): cls.tables.child, ) - mapper( + cls.mapper_registry.map_imperatively( Parent, parent, properties={"children": relationship(Child, backref="parent")}, ) - mapper(Child, child) + cls.mapper_registry.map_imperatively(Child, child) def test_expire_lots(self): Parent, Child = self.classes.Parent, self.classes.Child @@ -571,7 +572,7 @@ class QueryTest(NoCache, fixtures.MappedTest): Parent = cls.classes.Parent parent = cls.tables.parent - mapper(Parent, parent) + cls.mapper_registry.map_imperatively(Parent, parent) def _fixture(self): Parent = self.classes.Parent @@ -668,9 +669,13 @@ class SelectInEagerLoadTest(NoCache, fixtures.MappedTest): A, B, C = cls.classes("A", "B", "C") a, b, c = cls.tables("a", "b", "c") - mapper(A, a, properties={"bs": relationship(B)}) - mapper(B, b, properties={"cs": relationship(C)}) - mapper(C, c) + cls.mapper_registry.map_imperatively( + A, a, properties={"bs": relationship(B)} + ) + cls.mapper_registry.map_imperatively( + B, b, properties={"cs": relationship(C)} + ) + cls.mapper_registry.map_imperatively(C, c) @classmethod def insert_data(cls, connection): @@ -799,13 +804,21 @@ class JoinedEagerLoadTest(NoCache, fixtures.MappedTest): A, B, C, D, E, F, G = cls.classes("A", "B", "C", "D", "E", "F", "G") a, b, c, d, e, f, g = cls.tables("a", "b", "c", "d", "e", "f", "g") - mapper(A, a, properties={"bs": relationship(B), "es": relationship(E)}) - mapper(B, b, properties={"cs": relationship(C)}) - mapper(C, c, properties={"ds": relationship(D)}) - mapper(D, d) - mapper(E, e, properties={"fs": relationship(F), "gs": relationship(G)}) - mapper(F, f) - mapper(G, g) + cls.mapper_registry.map_imperatively( + A, a, properties={"bs": relationship(B), "es": relationship(E)} + ) + cls.mapper_registry.map_imperatively( + B, b, properties={"cs": relationship(C)} + ) + cls.mapper_registry.map_imperatively( + C, c, properties={"ds": relationship(D)} + ) + cls.mapper_registry.map_imperatively(D, d) + cls.mapper_registry.map_imperatively( + E, e, properties={"fs": relationship(F), "gs": relationship(G)} + ) + cls.mapper_registry.map_imperatively(F, f) + cls.mapper_registry.map_imperatively(G, g) @classmethod def insert_data(cls, connection): @@ -1094,8 +1107,10 @@ class BranchedOptionTest(NoCache, fixtures.MappedTest): A, B, C, D, E, F, G = cls.classes("A", "B", "C", "D", "E", "F", "G") a, b, c, d, e, f, g = cls.tables("a", "b", "c", "d", "e", "f", "g") - mapper(A, a, properties={"bs": relationship(B), "gs": relationship(G)}) - mapper( + cls.mapper_registry.map_imperatively( + A, a, properties={"bs": relationship(B), "gs": relationship(G)} + ) + cls.mapper_registry.map_imperatively( B, b, properties={ @@ -1105,11 +1120,11 @@ class BranchedOptionTest(NoCache, fixtures.MappedTest): "fs": relationship(F), }, ) - mapper(C, c) - mapper(D, d) - mapper(E, e) - mapper(F, f) - mapper(G, g) + cls.mapper_registry.map_imperatively(C, c) + cls.mapper_registry.map_imperatively(D, d) + cls.mapper_registry.map_imperatively(E, e) + cls.mapper_registry.map_imperatively(F, f) + cls.mapper_registry.map_imperatively(G, g) configure_mappers() @@ -1192,7 +1207,7 @@ class AnnotatedOverheadTest(NoCache, fixtures.MappedTest): A = cls.classes.A a = cls.tables.a - mapper(A, a) + cls.mapper_registry.map_imperatively(A, a) @classmethod def insert_data(cls, connection): diff --git a/test/dialect/postgresql/test_compiler.py b/test/dialect/postgresql/test_compiler.py index 0b56d89876..5ada6f592f 100644 --- a/test/dialect/postgresql/test_compiler.py +++ b/test/dialect/postgresql/test_compiler.py @@ -41,7 +41,7 @@ from sqlalchemy.dialects.postgresql import TSRANGE from sqlalchemy.dialects.postgresql.base import PGDialect from sqlalchemy.dialects.postgresql.psycopg2 import PGDialect_psycopg2 from sqlalchemy.orm import aliased -from sqlalchemy.orm import mapper +from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import Session from sqlalchemy.sql import column from sqlalchemy.sql import literal_column @@ -2728,7 +2728,7 @@ class InsertOnConflictTest(fixtures.TestBase, AssertsCompiledSQL): ) -class DistinctOnTest(fixtures.TestBase, AssertsCompiledSQL): +class DistinctOnTest(fixtures.MappedTest, AssertsCompiledSQL): """Test 'DISTINCT' with SQL expression language and orm.Query with an emphasis on PG's 'DISTINCT ON' syntax. @@ -2825,7 +2825,8 @@ class DistinctOnTest(fixtures.TestBase, AssertsCompiledSQL): class Foo(object): pass - mapper(Foo, self.table) + clear_mappers() + self.mapper_registry.map_imperatively(Foo, self.table) sess = Session() subq = sess.query(Foo).subquery() @@ -2842,7 +2843,7 @@ class DistinctOnTest(fixtures.TestBase, AssertsCompiledSQL): class Foo(object): pass - mapper(Foo, self.table) + self.mapper_registry.map_imperatively(Foo, self.table) a1 = aliased(Foo) sess = Session() self.assert_compile( diff --git a/test/dialect/postgresql/test_types.py b/test/dialect/postgresql/test_types.py index bb8e44876f..92641fcc60 100644 --- a/test/dialect/postgresql/test_types.py +++ b/test/dialect/postgresql/test_types.py @@ -3034,17 +3034,15 @@ class HStoreRoundTripTest(fixtures.TablesTest): ) self._assert_data([{r"key \"foo\"": r'value \"bar"\ xyz'}], connection) - def test_orm_round_trip(self, connection): - from sqlalchemy import orm - + def test_orm_round_trip(self, registry): class Data(object): def __init__(self, name, data): self.name = name self.data = data - orm.mapper(Data, self.tables.data_table) + registry.map_imperatively(Data, self.tables.data_table) - with orm.Session(connection) as s: + with fixtures.fixture_session() as s: d = Data( name="r1", data={"key1": "value1", "key2": "value2", "key3": "value3"}, diff --git a/test/ext/test_associationproxy.py b/test/ext/test_associationproxy.py index 56797104c6..bbb430a6f5 100644 --- a/test/ext/test_associationproxy.py +++ b/test/ext/test_associationproxy.py @@ -76,7 +76,7 @@ class ObjectCollection(object): return iter(self.values) -class AutoFlushTest(fixtures.TablesTest): +class AutoFlushTest(fixtures.MappedTest): @classmethod def define_tables(cls, metadata): Table( @@ -102,9 +102,6 @@ class AutoFlushTest(fixtures.TablesTest): Column("name", String(50)), ) - def teardown_test(self): - clear_mappers() - def _fixture(self, collection_class, is_dict=False): class Parent(object): collection = association_proxy("_collection", "child") @@ -124,7 +121,7 @@ class AutoFlushTest(fixtures.TablesTest): def __init__(self, child): self.child = child - mapper( + self.mapper_registry.map_imperatively( Parent, self.tables.parent, properties={ @@ -135,12 +132,12 @@ class AutoFlushTest(fixtures.TablesTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Association, self.tables.association, properties={"child": relationship(Child, backref="association")}, ) - mapper(Child, self.tables.child) + self.mapper_registry.map_imperatively(Child, self.tables.child) return Parent, Child, Association @@ -198,13 +195,10 @@ class AutoFlushTest(fixtures.TablesTest): ) -class _CollectionOperations(fixtures.TestBase): - def setup_test(self): - collection_class = self.collection_class - - metadata = MetaData() - - parents_table = Table( +class _CollectionOperations(fixtures.MappedTest): + @classmethod + def define_tables(cls, metadata): + Table( "Parent", metadata, Column( @@ -212,7 +206,7 @@ class _CollectionOperations(fixtures.TestBase): ), Column("name", String(128)), ) - children_table = Table( + Table( "Children", metadata, Column( @@ -223,13 +217,17 @@ class _CollectionOperations(fixtures.TestBase): Column("name", String(128)), ) - class Parent(object): + @classmethod + def setup_mappers(cls): + collection_class = cls.collection_class + + class Parent(cls.Basic): children = association_proxy("_children", "name") def __init__(self, name): self.name = name - class Child(object): + class Child(cls.Basic): if collection_class and issubclass(collection_class, dict): def __init__(self, foo, name): @@ -241,7 +239,8 @@ class _CollectionOperations(fixtures.TestBase): def __init__(self, name): self.name = name - mapper( + parents_table, children_table = cls.tables("Parent", "Children") + cls.mapper_registry.map_imperatively( Parent, parents_table, properties={ @@ -253,16 +252,7 @@ class _CollectionOperations(fixtures.TestBase): ) }, ) - mapper(Child, children_table) - - metadata.create_all(testing.db) - - self.metadata = metadata - self.session = fixture_session() - self.Parent, self.Child = Parent, Child - - def teardown_test(self): - self.metadata.drop_all(testing.db) + cls.mapper_registry.map_imperatively(Child, children_table) def roundtrip(self, obj): if obj not in self.session: @@ -273,7 +263,8 @@ class _CollectionOperations(fixtures.TestBase): return self.session.query(type_).get(id_) def _test_sequence_ops(self): - Parent, Child = self.Parent, self.Child + Parent, Child = self.classes("Parent", "Child") + self.session = fixture_session() p1 = Parent("P1") @@ -495,7 +486,9 @@ class CustomDictTest(_CollectionOperations): collection_class = DictCollection def test_mapping_ops(self): - Parent, Child = self.Parent, self.Child + Parent, Child = self.classes("Parent", "Child") + + self.session = fixture_session() p1 = Parent("P1") @@ -573,7 +566,7 @@ class CustomDictTest(_CollectionOperations): assert_raises(TypeError, set, [p1.children]) def test_bulk_replace(self): - Parent = self.Parent + Parent = self.classes.Parent p1 = Parent("foo") p1.children = {"a": "v a", "b": "v b", "c": "v c"} @@ -596,7 +589,9 @@ class SetTest(_CollectionOperations): collection_class = set def test_set_operations(self): - Parent, Child = self.Parent, self.Child + Parent, Child = self.classes.Parent, self.classes.Child + + self.session = fixture_session() p1 = Parent("P1") @@ -703,7 +698,7 @@ class SetTest(_CollectionOperations): assert_raises(TypeError, set, [p1.children]) def test_set_comparisons(self): - Parent = self.Parent + Parent = self.classes.Parent p1 = Parent("P1") p1.children = ["a", "b", "c"] @@ -740,7 +735,7 @@ class SetTest(_CollectionOperations): @testing.requires.python_fixed_issue_8743 def test_set_comparison_empty_to_empty(self): # test issue #3265 which was fixed in Python version 2.7.8 - Parent = self.Parent + Parent = self.classes.Parent p1 = Parent("P1") p1.children = [] @@ -763,7 +758,9 @@ class SetTest(_CollectionOperations): is_(set_0 != set_a, False) def test_set_mutation(self): - Parent = self.Parent + Parent = self.classes.Parent + + self.session = fixture_session() # mutations for op in ( @@ -845,7 +842,7 @@ class SetTest(_CollectionOperations): raise def test_bulk_replace(self): - Parent = self.Parent + Parent = self.classes.Parent p1 = Parent("foo") p1.children = {"a", "b", "c"} @@ -869,7 +866,9 @@ class CustomObjectTest(_CollectionOperations): collection_class = ObjectCollection def test_basic(self): - Parent = self.Parent + Parent = self.classes.Parent + + self.session = fixture_session() p = Parent("p1") self.assert_(len(list(p.children)) == 0) @@ -886,10 +885,9 @@ class CustomObjectTest(_CollectionOperations): class ProxyFactoryTest(ListTest): - def setup_test(self): - metadata = MetaData() - - parents_table = Table( + @classmethod + def define_tables(cls, metadata): + Table( "Parent", metadata, Column( @@ -897,7 +895,7 @@ class ProxyFactoryTest(ListTest): ), Column("name", String(128)), ) - children_table = Table( + Table( "Children", metadata, Column( @@ -908,6 +906,10 @@ class ProxyFactoryTest(ListTest): Column("name", String(128)), ) + @classmethod + def setup_mappers(cls): + parents_table, children_table = cls.tables("Parent", "Children") + class CustomProxy(_AssociationList): def __init__(self, lazy_collection, creator, value_attr, parent): getter, setter = parent._default_getset(lazy_collection) @@ -915,7 +917,7 @@ class ProxyFactoryTest(ListTest): self, lazy_collection, creator, getter, setter, parent ) - class Parent(object): + class Parent(cls.Basic): children = association_proxy( "_children", "name", @@ -926,11 +928,11 @@ class ProxyFactoryTest(ListTest): def __init__(self, name): self.name = name - class Child(object): + class Child(cls.Basic): def __init__(self, name): self.name = name - mapper( + cls.mapper_registry.map_imperatively( Parent, parents_table, properties={ @@ -939,19 +941,13 @@ class ProxyFactoryTest(ListTest): ) }, ) - mapper(Child, children_table) - - metadata.create_all(testing.db) - - self.metadata = metadata - self.session = fixture_session() - self.Parent, self.Child = Parent, Child + cls.mapper_registry.map_imperatively(Child, children_table) def test_sequence_ops(self): self._test_sequence_ops() -class ScalarTest(fixtures.TestBase): +class ScalarTest(fixtures.MappedTest): @testing.provide_metadata def test_scalar_proxy(self): metadata = self.metadata @@ -993,7 +989,7 @@ class ScalarTest(fixtures.TestBase): for attr in kw: setattr(self, attr, kw[attr]) - mapper( + self.mapper_registry.map_imperatively( Parent, parents_table, properties={ @@ -1002,7 +998,7 @@ class ScalarTest(fixtures.TestBase): ) }, ) - mapper(Child, children_table) + self.mapper_registry.map_imperatively(Child, children_table) metadata.create_all(testing.db) session = fixture_session() @@ -1107,12 +1103,14 @@ class ScalarTest(fixtures.TestBase): class B(object): pass - mapper( + self.mapper_registry.map_imperatively( A, a, properties=dict(a2b_single=relationship(A2B, uselist=False)) ) - mapper(A2B, a2b, properties=dict(b=relationship(B))) - mapper(B, b) + self.mapper_registry.map_imperatively( + A2B, a2b, properties=dict(b=relationship(B)) + ) + self.mapper_registry.map_imperatively(B, b) a1 = A() assert a1.a2b_name is None @@ -1145,8 +1143,10 @@ class ScalarTest(fixtures.TestBase): def __init__(self, foo): self.foo = foo - mapper(Parent, p, properties={"child": relationship(Child)}) - mapper(Child, c) + self.mapper_registry.map_imperatively( + Parent, p, properties={"child": relationship(Child)} + ) + self.mapper_registry.map_imperatively(Child, c) p1 = Parent() @@ -1157,11 +1157,11 @@ class ScalarTest(fixtures.TestBase): eq_(set_.mock_calls, [call(child, "y")]) -class LazyLoadTest(fixtures.TestBase): - def setup_test(self): - metadata = MetaData() +class LazyLoadTest(fixtures.MappedTest): + @classmethod + def define_tables(cls, metadata): - parents_table = Table( + Table( "Parent", metadata, Column( @@ -1169,7 +1169,7 @@ class LazyLoadTest(fixtures.TestBase): ), Column("name", String(128)), ) - children_table = Table( + Table( "Children", metadata, Column( @@ -1180,26 +1180,19 @@ class LazyLoadTest(fixtures.TestBase): Column("name", String(128)), ) - class Parent(object): + @classmethod + def setup_mappers(cls): + class Parent(cls.Basic): children = association_proxy("_children", "name") def __init__(self, name): self.name = name - class Child(object): + class Child(cls.Basic): def __init__(self, name): self.name = name - mapper(Child, children_table) - metadata.create_all(testing.db) - - self.metadata = metadata - self.session = fixture_session() - self.Parent, self.Child = Parent, Child - self.table = parents_table - - def teardown_test(self): - self.metadata.drop_all(testing.db) + cls.mapper_registry.map_imperatively(Child, cls.tables.Children) def roundtrip(self, obj): self.session.add(obj) @@ -1209,11 +1202,13 @@ class LazyLoadTest(fixtures.TestBase): return self.session.query(type_).get(id_) def test_lazy_list(self): - Parent, Child = self.Parent, self.Child + Parent, Child = self.classes("Parent", "Child") - mapper( + self.session = fixture_session() + + self.mapper_registry.map_imperatively( Parent, - self.table, + self.tables.Parent, properties={ "_children": relationship( Child, lazy="select", collection_class=list @@ -1233,11 +1228,13 @@ class LazyLoadTest(fixtures.TestBase): self.assert_("_children" in p.__dict__) def test_eager_list(self): - Parent, Child = self.Parent, self.Child + Parent, Child = self.classes("Parent", "Child") - mapper( + self.session = fixture_session() + + self.mapper_registry.map_imperatively( Parent, - self.table, + self.tables.Parent, properties={ "_children": relationship( Child, lazy="joined", collection_class=list @@ -1254,11 +1251,13 @@ class LazyLoadTest(fixtures.TestBase): self.assert_(len(p._children) == 3) def test_slicing_list(self): - Parent, Child = self.Parent, self.Child + Parent, Child = self.classes("Parent", "Child") - mapper( + self.session = fixture_session() + + self.mapper_registry.map_imperatively( Parent, - self.table, + self.tables.Parent, properties={ "_children": relationship( Child, lazy="select", collection_class=list @@ -1276,11 +1275,13 @@ class LazyLoadTest(fixtures.TestBase): eq_(["b", "c"], p.children[-2:]) def test_lazy_scalar(self): - Parent, Child = self.Parent, self.Child + Parent, Child = self.classes("Parent", "Child") - mapper( + self.session = fixture_session() + + self.mapper_registry.map_imperatively( Parent, - self.table, + self.tables.Parent, properties={ "_children": relationship(Child, lazy="select", uselist=False) }, @@ -1295,11 +1296,13 @@ class LazyLoadTest(fixtures.TestBase): self.assert_(p._children is not None) def test_eager_scalar(self): - Parent, Child = self.Parent, self.Child + Parent, Child = self.classes("Parent", "Child") - mapper( + self.session = fixture_session() + + self.mapper_registry.map_imperatively( Parent, - self.table, + self.tables.Parent, properties={ "_children": relationship(Child, lazy="joined", uselist=False) }, @@ -1364,12 +1367,12 @@ class ReconstitutionTest(fixtures.MappedTest): Parent.kids = association_proxy("children", "name") def test_weak_identity_map(self): - mapper( + self.mapper_registry.map_imperatively( Parent, self.tables.parents, properties=dict(children=relationship(Child)), ) - mapper(Child, self.tables.children) + self.mapper_registry.map_imperatively(Child, self.tables.children) session = fixture_session() def add_child(parent_name, child_name): @@ -1384,12 +1387,12 @@ class ReconstitutionTest(fixtures.MappedTest): assert set(p.kids) == set(["c1", "c2"]), p.kids def test_copy(self): - mapper( + self.mapper_registry.map_imperatively( Parent, self.tables.parents, properties=dict(children=relationship(Child)), ) - mapper(Child, self.tables.children) + self.mapper_registry.map_imperatively(Child, self.tables.children) p = Parent("p1") p.kids.extend(["c1", "c2"]) p_copy = copy.copy(p) @@ -1398,12 +1401,12 @@ class ReconstitutionTest(fixtures.MappedTest): assert set(p_copy.kids) == set(["c1", "c2"]), p_copy.kids def test_pickle_list(self): - mapper( + self.mapper_registry.map_imperatively( Parent, self.tables.parents, properties=dict(children=relationship(Child)), ) - mapper(Child, self.tables.children) + self.mapper_registry.map_imperatively(Child, self.tables.children) p = Parent("p1") p.kids.extend(["c1", "c2"]) r1 = pickle.loads(pickle.dumps(p)) @@ -1414,14 +1417,14 @@ class ReconstitutionTest(fixtures.MappedTest): # assert r2 == ['c1', 'c2'] def test_pickle_set(self): - mapper( + self.mapper_registry.map_imperatively( Parent, self.tables.parents, properties=dict( children=relationship(Child, collection_class=set) ), ) - mapper(Child, self.tables.children) + self.mapper_registry.map_imperatively(Child, self.tables.children) p = Parent("p1") p.kids.update(["c1", "c2"]) r1 = pickle.loads(pickle.dumps(p)) @@ -1432,7 +1435,7 @@ class ReconstitutionTest(fixtures.MappedTest): # assert r2 == set(['c1', 'c2']) def test_pickle_dict(self): - mapper( + self.mapper_registry.map_imperatively( Parent, self.tables.parents, properties=dict( @@ -1444,7 +1447,7 @@ class ReconstitutionTest(fixtures.MappedTest): ) ), ) - mapper(KVChild, self.tables.children) + self.mapper_registry.map_imperatively(KVChild, self.tables.children) p = Parent("p1") p.kids.update({"c1": "v1", "c2": "v2"}) assert p.kids == {"c1": "c1", "c2": "c2"} @@ -1603,8 +1606,10 @@ class ComparatorTest(fixtures.MappedTest, AssertsCompiledSQL): cls.classes.Singular, ) - mapper(User, users, properties={"singular": relationship(Singular)}) - mapper( + cls.mapper_registry.map_imperatively( + User, users, properties={"singular": relationship(Singular)} + ) + cls.mapper_registry.map_imperatively( Keyword, keywords, properties={ @@ -1615,7 +1620,7 @@ class ComparatorTest(fixtures.MappedTest, AssertsCompiledSQL): }, ) - mapper( + cls.mapper_registry.map_imperatively( UserKeyword, userkeywords, properties={ @@ -1625,7 +1630,7 @@ class ComparatorTest(fixtures.MappedTest, AssertsCompiledSQL): ), }, ) - mapper( + cls.mapper_registry.map_imperatively( Singular, singular, properties={"keywords": relationship(Keyword)} ) @@ -2294,26 +2299,33 @@ class ComparatorTest(fixtures.MappedTest, AssertsCompiledSQL): ) -class DictOfTupleUpdateTest(fixtures.TestBase): - def setup_test(self): - class B(object): - def __init__(self, key, elem): - self.key = key - self.elem = elem - - class A(object): - elements = association_proxy("orig", "elem", creator=B) +class DictOfTupleUpdateTest(fixtures.MappedTest): + run_create_tables = None - m = MetaData() - a = Table("a", m, Column("id", Integer, primary_key=True)) - b = Table( + @classmethod + def define_tables(cls, metadata): + Table("a", metadata, Column("id", Integer, primary_key=True)) + Table( "b", - m, + metadata, Column("id", Integer, primary_key=True), Column("aid", Integer, ForeignKey("a.id")), Column("elem", String), ) - mapper( + + @classmethod + def setup_mappers(cls): + a, b = cls.tables("a", "b") + + class B(cls.Basic): + def __init__(self, key, elem): + self.key = key + self.elem = elem + + class A(cls.Basic): + elements = association_proxy("orig", "elem", creator=B) + + cls.mapper_registry.map_imperatively( A, a, properties={ @@ -2322,32 +2334,31 @@ class DictOfTupleUpdateTest(fixtures.TestBase): ) }, ) - mapper(B, b) - self.A = A - self.B = B + cls.mapper_registry.map_imperatively(B, b) def test_update_one_elem_dict(self): - a1 = self.A() + + a1 = self.classes.A() a1.elements.update({("B", 3): "elem2"}) eq_(a1.elements, {("B", 3): "elem2"}) def test_update_multi_elem_dict(self): - a1 = self.A() + a1 = self.classes.A() a1.elements.update({("B", 3): "elem2", ("C", 4): "elem3"}) eq_(a1.elements, {("B", 3): "elem2", ("C", 4): "elem3"}) def test_update_one_elem_list(self): - a1 = self.A() + a1 = self.classes.A() a1.elements.update([(("B", 3), "elem2")]) eq_(a1.elements, {("B", 3): "elem2"}) def test_update_multi_elem_list(self): - a1 = self.A() + a1 = self.classes.A() a1.elements.update([(("B", 3), "elem2"), (("C", 4), "elem3")]) eq_(a1.elements, {("B", 3): "elem2", ("C", 4): "elem3"}) def test_update_one_elem_varg(self): - a1 = self.A() + a1 = self.classes.A() assert_raises_message( ValueError, "dictionary update sequence requires " "2-element tuples", @@ -2356,7 +2367,7 @@ class DictOfTupleUpdateTest(fixtures.TestBase): ) def test_update_multi_elem_varg(self): - a1 = self.A() + a1 = self.classes.A() assert_raises_message( TypeError, "update expected at most 1 arguments, got 2", @@ -2367,6 +2378,8 @@ class DictOfTupleUpdateTest(fixtures.TestBase): class CompositeAccessTest(fixtures.DeclarativeMappedTest): + run_create_tables = None + @classmethod def setup_classes(cls): class Point(cls.Basic): @@ -2835,6 +2848,7 @@ class ScalarRemoveListObjectCascade( ScalarRemoveTest, fixtures.DeclarativeMappedTest ): + run_create_tables = None useobject = True cascade_scalar_deletes = True uselist = True @@ -2844,6 +2858,7 @@ class ScalarRemoveScalarObjectCascade( ScalarRemoveTest, fixtures.DeclarativeMappedTest ): + run_create_tables = None useobject = True cascade_scalar_deletes = True uselist = False @@ -2853,6 +2868,7 @@ class ScalarRemoveListScalarCascade( ScalarRemoveTest, fixtures.DeclarativeMappedTest ): + run_create_tables = None useobject = False cascade_scalar_deletes = True uselist = True @@ -2862,6 +2878,7 @@ class ScalarRemoveScalarScalarCascade( ScalarRemoveTest, fixtures.DeclarativeMappedTest ): + run_create_tables = None useobject = False cascade_scalar_deletes = True uselist = False @@ -2871,6 +2888,7 @@ class ScalarRemoveListObjectNoCascade( ScalarRemoveTest, fixtures.DeclarativeMappedTest ): + run_create_tables = None useobject = True cascade_scalar_deletes = False uselist = True @@ -2880,6 +2898,7 @@ class ScalarRemoveScalarObjectNoCascade( ScalarRemoveTest, fixtures.DeclarativeMappedTest ): + run_create_tables = None useobject = True cascade_scalar_deletes = False uselist = False @@ -2889,6 +2908,7 @@ class ScalarRemoveListScalarNoCascade( ScalarRemoveTest, fixtures.DeclarativeMappedTest ): + run_create_tables = None useobject = False cascade_scalar_deletes = False uselist = True @@ -2898,6 +2918,7 @@ class ScalarRemoveScalarScalarNoCascade( ScalarRemoveTest, fixtures.DeclarativeMappedTest ): + run_create_tables = None useobject = False cascade_scalar_deletes = False uselist = False @@ -3300,6 +3321,8 @@ class SynonymOfProxyTest(AssertsCompiledSQL, fixtures.DeclarativeMappedTest): class ProxyHybridTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL): __dialect__ = "default" + run_create_tables = None + @classmethod def setup_classes(cls): from sqlalchemy.ext.hybrid import hybrid_property @@ -3436,6 +3459,8 @@ class ProxyHybridTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL): class ProxyPlainPropertyTest(fixtures.DeclarativeMappedTest): + run_create_tables = None + @classmethod def setup_classes(cls): diff --git a/test/ext/test_baked.py b/test/ext/test_baked.py index d62e5c0bca..8e96dd3adb 100644 --- a/test/ext/test_baked.py +++ b/test/ext/test_baked.py @@ -8,7 +8,6 @@ from sqlalchemy import func from sqlalchemy import testing from sqlalchemy.ext import baked from sqlalchemy.orm import exc as orm_exc -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.orm import subqueryload @@ -36,7 +35,7 @@ class StateChangeTest(BakedTest): def setup_mappers(cls): User = cls.classes.User - mapper(User, cls.tables.users) + cls.mapper_registry.map_imperatively(User, cls.tables.users) def _assert_cache_key(self, key, elements): eq_(key, tuple(elem.__code__ for elem in elements)) @@ -131,7 +130,7 @@ class LikeQueryTest(BakedTest): def setup_mappers(cls): User = cls.classes.User - mapper(User, cls.tables.users) + cls.mapper_registry.map_imperatively(User, cls.tables.users) def test_first_no_result(self): User = self.classes.User @@ -296,7 +295,7 @@ class LikeQueryTest(BakedTest): class AddressUser(object): pass - mapper( + self.mapper_registry.map_imperatively( AddressUser, self.tables.users.outerjoin(self.tables.addresses), properties={ @@ -369,7 +368,7 @@ class ResultPostCriteriaTest(BakedTest): Address = cls.classes.Address Order = cls.classes.Order - mapper( + cls.mapper_registry.map_imperatively( User, cls.tables.users, properties={ @@ -379,8 +378,8 @@ class ResultPostCriteriaTest(BakedTest): "orders": relationship(Order, order_by=cls.tables.orders.c.id), }, ) - mapper(Address, cls.tables.addresses) - mapper(Order, cls.tables.orders) + cls.mapper_registry.map_imperatively(Address, cls.tables.addresses) + cls.mapper_registry.map_imperatively(Order, cls.tables.orders) @contextlib.contextmanager def _fixture(self): @@ -450,7 +449,7 @@ class ResultTest(BakedTest): Address = cls.classes.Address Order = cls.classes.Order - mapper( + cls.mapper_registry.map_imperatively( User, cls.tables.users, properties={ @@ -460,8 +459,8 @@ class ResultTest(BakedTest): "orders": relationship(Order, order_by=cls.tables.orders.c.id), }, ) - mapper(Address, cls.tables.addresses) - mapper(Order, cls.tables.orders) + cls.mapper_registry.map_imperatively(Address, cls.tables.addresses) + cls.mapper_registry.map_imperatively(Order, cls.tables.orders) def test_cachekeys_on_constructor(self): User = self.classes.User @@ -985,7 +984,7 @@ class CustomIntegrationTest(testing.AssertsCompiledSQL, BakedTest): User = self.classes.User Address = self.classes.Address - mapper( + self.mapper_registry.map_imperatively( User, self.tables.users, properties={ @@ -997,7 +996,7 @@ class CustomIntegrationTest(testing.AssertsCompiledSQL, BakedTest): ) }, ) - mapper(Address, self.tables.addresses) + self.mapper_registry.map_imperatively(Address, self.tables.addresses) return User, Address def _query_fixture(self): diff --git a/test/ext/test_deprecations.py b/test/ext/test_deprecations.py index b6976299b3..09f904487a 100644 --- a/test/ext/test_deprecations.py +++ b/test/ext/test_deprecations.py @@ -1,7 +1,6 @@ from sqlalchemy import testing from sqlalchemy.ext.automap import automap_base from sqlalchemy.ext.horizontal_shard import ShardedSession -from sqlalchemy.orm import mapper from sqlalchemy.testing import eq_ from sqlalchemy.testing import fixtures from sqlalchemy.testing import mock @@ -39,11 +38,11 @@ class MutableIncludeNonPrimaryTest(test_mutable.MutableWithScalarJSONTest): def setup_mappers(cls): foo = cls.tables.foo - mapper(Foo, foo) + cls.mapper_registry.map_imperatively(Foo, foo) with testing.expect_deprecated( "The mapper.non_primary parameter is deprecated" ): - mapper( + cls.mapper_registry.map_imperatively( Foo, foo, non_primary=True, properties={"foo_bar": foo.c.data} ) @@ -55,11 +54,11 @@ class MutableAssocIncludeNonPrimaryTest( def setup_mappers(cls): foo = cls.tables.foo - mapper(Foo, foo) + cls.mapper_registry.map_imperatively(Foo, foo) with testing.expect_deprecated( "The mapper.non_primary parameter is deprecated" ): - mapper( + cls.mapper_registry.map_imperatively( Foo, foo, non_primary=True, properties={"foo_bar": foo.c.data} ) diff --git a/test/ext/test_horizontal_shard.py b/test/ext/test_horizontal_shard.py index a40bdfcd86..a0bc8bbe54 100644 --- a/test/ext/test_horizontal_shard.py +++ b/test/ext/test_horizontal_shard.py @@ -9,7 +9,6 @@ from sqlalchemy import Float from sqlalchemy import ForeignKey from sqlalchemy import inspect from sqlalchemy import Integer -from sqlalchemy import MetaData from sqlalchemy import select from sqlalchemy import sql from sqlalchemy import String @@ -21,7 +20,6 @@ from sqlalchemy import util from sqlalchemy.ext.horizontal_shard import ShardedSession from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import deferred -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import selectinload from sqlalchemy.orm import Session @@ -41,15 +39,17 @@ class ShardTest(object): __skip_if__ = (lambda: util.win32,) __requires__ = ("sqlite",) + run_create_tables = None + schema = None - def setup_test(self): + @classmethod + def define_tables(cls, metadata): global db1, db2, db3, db4, weather_locations, weather_reports - db1, db2, db3, db4 = self._dbs = self._init_dbs() - - meta = self.tables_test_metadata = MetaData() - ids = Table("ids", meta, Column("nextid", Integer, nullable=False)) + cls.tables.ids = ids = Table( + "ids", metadata, Column("nextid", Integer, nullable=False) + ) def id_generator(ctx): # in reality, might want to use a separate transaction for this. @@ -61,33 +61,37 @@ class ShardTest(object): ) return nextid - weather_locations = Table( + cls.tables.weather_locations = weather_locations = Table( "weather_locations", - meta, + metadata, Column("id", Integer, primary_key=True, default=id_generator), Column("continent", String(30), nullable=False), Column("city", String(50), nullable=False), - schema=self.schema, + schema=cls.schema, ) - weather_reports = Table( + cls.tables.weather_reports = Table( "weather_reports", - meta, + metadata, Column("id", Integer, primary_key=True), Column("location_id", Integer, ForeignKey(weather_locations.c.id)), Column("temperature", Float), Column("report_time", DateTime, default=datetime.datetime.now), - schema=self.schema, + schema=cls.schema, ) + def setup_test(self): + global db1, db2, db3, db4 + db1, db2, db3, db4 = self._dbs = self._init_dbs() + for db in (db1, db2, db3, db4): - meta.create_all(db) + self.tables_test_metadata.create_all(db) + ids = self.tables.ids with db1.begin() as conn: conn.execute(ids.insert(), dict(nextid=1)) self.setup_session() - self.setup_mappers() @classmethod def setup_session(cls): @@ -161,7 +165,9 @@ class ShardTest(object): if id_: self.id = id_ - mapper( + weather_locations = cls.tables.weather_locations + + cls.mapper_registry.map_imperatively( WeatherLocation, weather_locations, properties={ @@ -170,7 +176,9 @@ class ShardTest(object): }, ) - mapper(Report, weather_reports) + weather_reports = cls.tables.weather_reports + + cls.mapper_registry.map_imperatively(Report, weather_reports) def _fixture_data(self): tokyo = WeatherLocation("Asia", "Tokyo") @@ -655,7 +663,7 @@ class ShardTest(object): assert inspect(t).deleted is (t.temperature >= 80) -class DistinctEngineShardTest(ShardTest, fixtures.TestBase): +class DistinctEngineShardTest(ShardTest, fixtures.MappedTest): def _init_dbs(self): db1 = testing_engine( "sqlite:///shard1_%s.db" % provision.FOLLOWER_IDENT, @@ -675,7 +683,6 @@ class DistinctEngineShardTest(ShardTest, fixtures.TestBase): return self.dbs def teardown_test(self): - clear_mappers() testing_reaper.checkin_all() for i in range(1, 5): @@ -711,7 +718,7 @@ class DistinctEngineShardTest(ShardTest, fixtures.TestBase): ) -class AttachedFileShardTest(ShardTest, fixtures.TestBase): +class AttachedFileShardTest(ShardTest, fixtures.MappedTest): """Use modern schema conventions along with SQLite ATTACH.""" schema = "changeme" @@ -734,14 +741,12 @@ class AttachedFileShardTest(ShardTest, fixtures.TestBase): return db1, db2, db3, db4 def teardown_test(self): - clear_mappers() - testing_reaper.checkin_all() for i in range(1, 5): os.remove("shard%d_%s.db" % (i, provision.FOLLOWER_IDENT)) -class TableNameConventionShardTest(ShardTest, fixtures.TestBase): +class TableNameConventionShardTest(ShardTest, fixtures.MappedTest): """This fixture uses a single SQLite database along with a table naming convention to achieve sharding. Event hooks are used to rewrite SQL statements. @@ -779,7 +784,7 @@ class TableNameConventionShardTest(ShardTest, fixtures.TestBase): return db1, db2, db3, db4 -class MultipleDialectShardTest(ShardTest, fixtures.TestBase): +class MultipleDialectShardTest(ShardTest, fixtures.MappedTest): __only_on__ = "postgresql" schema = "changeme" diff --git a/test/ext/test_mutable.py b/test/ext/test_mutable.py index 676d7d8b78..1d88deb7a0 100644 --- a/test/ext/test_mutable.py +++ b/test/ext/test_mutable.py @@ -16,7 +16,6 @@ from sqlalchemy.orm import attributes from sqlalchemy.orm import column_property from sqlalchemy.orm import composite from sqlalchemy.orm import declarative_base -from sqlalchemy.orm import mapper from sqlalchemy.orm.instrumentation import ClassManager from sqlalchemy.orm.mapper import Mapper from sqlalchemy.testing import assert_raises @@ -109,7 +108,7 @@ class _MutableDictTestBase(_MutableDictTestFixture): def setup_mappers(cls): foo = cls.tables.foo - mapper(Foo, foo) + cls.mapper_registry.map_imperatively(Foo, foo) def test_coerce_none(self): sess = fixture_session() @@ -330,7 +329,7 @@ class _MutableListTestBase(_MutableListTestFixture): def setup_mappers(cls): foo = cls.tables.foo - mapper(Foo, foo) + cls.mapper_registry.map_imperatively(Foo, foo) def test_coerce_none(self): sess = fixture_session() @@ -636,7 +635,7 @@ class _MutableSetTestBase(_MutableSetTestFixture): def setup_mappers(cls): foo = cls.tables.foo - mapper(Foo, foo) + cls.mapper_registry.map_imperatively(Foo, foo) def test_coerce_none(self): sess = fixture_session() @@ -926,7 +925,7 @@ class MutableColumnDefaultTest(_MutableDictTestFixture, fixtures.MappedTest): def setup_mappers(cls): foo = cls.tables.foo - mapper(Foo, foo) + cls.mapper_registry.map_imperatively(Foo, foo) def test_evt_on_flush_refresh(self): # test for #3427 @@ -1133,8 +1132,8 @@ class MutableAssocWithAttrInheritTest( foo = cls.tables.foo subfoo = cls.tables.subfoo - mapper(Foo, foo) - mapper(SubFoo, subfoo, inherits=Foo) + cls.mapper_registry.map_imperatively(Foo, foo) + cls.mapper_registry.map_imperatively(SubFoo, subfoo, inherits=Foo) MutableDict.associate_with_attribute(Foo.data) def test_in_place_mutation(self): @@ -1332,7 +1331,7 @@ class MutableCompositeColumnDefaultTest( cls.Point = cls._type_fixture() - mapper( + cls.mapper_registry.map_imperatively( Foo, foo, properties={"data": composite(cls.Point, foo.c.x, foo.c.y)}, @@ -1359,7 +1358,7 @@ class MutableCompositesUnpickleTest(_CompositeTestBase, fixtures.MappedTest): cls.Point = cls._type_fixture() - mapper( + cls.mapper_registry.map_imperatively( FooWithEq, foo, properties={"data": composite(cls.Point, foo.c.x, foo.c.y)}, @@ -1378,7 +1377,7 @@ class MutableCompositesTest(_CompositeTestBase, fixtures.MappedTest): Point = cls._type_fixture() - mapper( + cls.mapper_registry.map_imperatively( Foo, foo, properties={"data": composite(Point, foo.c.x, foo.c.y)} ) @@ -1489,7 +1488,7 @@ class MutableCompositeCallableTest(_CompositeTestBase, fixtures.MappedTest): # in this case, this is not actually a MutableComposite. # so we don't expect it to track changes - mapper( + cls.mapper_registry.map_imperatively( Foo, foo, properties={ @@ -1523,7 +1522,7 @@ class MutableCompositeCustomCoerceTest( Point = cls._type_fixture() - mapper( + cls.mapper_registry.map_imperatively( Foo, foo, properties={"data": composite(Point, foo.c.x, foo.c.y)} ) @@ -1568,10 +1567,10 @@ class MutableInheritedCompositesTest(_CompositeTestBase, fixtures.MappedTest): Point = cls._type_fixture() - mapper( + cls.mapper_registry.map_imperatively( Foo, foo, properties={"data": composite(Point, foo.c.x, foo.c.y)} ) - mapper(SubFoo, subfoo, inherits=Foo) + cls.mapper_registry.map_imperatively(SubFoo, subfoo, inherits=Foo) def test_in_place_mutation_subclass(self): sess = fixture_session() diff --git a/test/ext/test_orderinglist.py b/test/ext/test_orderinglist.py index 13ebda24e7..6fa559ee37 100644 --- a/test/ext/test_orderinglist.py +++ b/test/ext/test_orderinglist.py @@ -4,7 +4,7 @@ from sqlalchemy import MetaData from sqlalchemy import String from sqlalchemy import testing from sqlalchemy.ext.orderinglist import ordering_list -from sqlalchemy.orm import mapper +from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import relationship from sqlalchemy.testing import eq_ from sqlalchemy.testing import fixtures @@ -59,7 +59,7 @@ def alpha_ordering(index, collection): return s -class OrderingListTest(fixtures.TestBase): +class OrderingListTest(fixtures.MappedTest): def setup_test(self): global metadata, slides_table, bullets_table, Slide, Bullet slides_table, bullets_table = None, None @@ -105,7 +105,8 @@ class OrderingListTest(fixtures.TestBase): def __repr__(self): return '' % (self.text, self.position) - mapper( + clear_mappers() + self.mapper_registry.map_imperatively( Slide, slides_table, properties={ @@ -118,7 +119,7 @@ class OrderingListTest(fixtures.TestBase): ) }, ) - mapper(Bullet, bullets_table) + self.mapper_registry.map_imperatively(Bullet, bullets_table) metadata.create_all(testing.db) diff --git a/test/ext/test_serializer.py b/test/ext/test_serializer.py index 12e4255fa7..2e9225419f 100644 --- a/test/ext/test_serializer.py +++ b/test/ext/test_serializer.py @@ -16,7 +16,6 @@ from sqlalchemy.orm import class_mapper from sqlalchemy.orm import column_property from sqlalchemy.orm import configure_mappers from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import scoped_session from sqlalchemy.orm import sessionmaker @@ -68,7 +67,7 @@ class SerializeTest(AssertsCompiledSQL, fixtures.MappedTest): def setup_mappers(cls): global Session Session = scoped_session(sessionmaker(testing.db)) - mapper( + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -77,7 +76,7 @@ class SerializeTest(AssertsCompiledSQL, fixtures.MappedTest): ) }, ) - mapper(Address, addresses) + cls.mapper_registry.map_imperatively(Address, addresses) configure_mappers() @classmethod diff --git a/test/orm/_fixtures.py b/test/orm/_fixtures.py index 56679a8001..6715cb7fea 100644 --- a/test/orm/_fixtures.py +++ b/test/orm/_fixtures.py @@ -4,7 +4,6 @@ from sqlalchemy import String from sqlalchemy import util from sqlalchemy.orm import backref from sqlalchemy.orm import configure_mappers -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import fixtures from sqlalchemy.testing.schema import Column @@ -99,7 +98,7 @@ class FixtureTest(fixtures.MappedTest): # use OrderedDict on this one to support some tests that # assert the order of attributes (e.g. orm/test_inspect) - mapper( + cls.mapper_registry.map_imperatively( User, users, properties=util.OrderedDict( @@ -119,7 +118,7 @@ class FixtureTest(fixtures.MappedTest): ] ), ) - mapper( + cls.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -129,8 +128,8 @@ class FixtureTest(fixtures.MappedTest): ) }, ) - mapper(Dingaling, dingalings) - mapper( + cls.mapper_registry.map_imperatively(Dingaling, dingalings) + cls.mapper_registry.map_imperatively( Order, orders, properties={ @@ -141,7 +140,7 @@ class FixtureTest(fixtures.MappedTest): "address": relationship(Address), # m2o }, ) - mapper( + cls.mapper_registry.map_imperatively( Item, items, properties={ @@ -150,8 +149,8 @@ class FixtureTest(fixtures.MappedTest): ) # m2m }, ) - mapper(Keyword, keywords) - mapper( + cls.mapper_registry.map_imperatively(Keyword, keywords) + cls.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -161,7 +160,7 @@ class FixtureTest(fixtures.MappedTest): }, ) - mapper(CompositePk, composite_pk_table) + cls.mapper_registry.map_imperatively(CompositePk, composite_pk_table) configure_mappers() diff --git a/test/orm/declarative/test_inheritance.py b/test/orm/declarative/test_inheritance.py index e5da21447a..1740ee90b3 100644 --- a/test/orm/declarative/test_inheritance.py +++ b/test/orm/declarative/test_inheritance.py @@ -4,14 +4,12 @@ from sqlalchemy import Integer from sqlalchemy import String from sqlalchemy import testing from sqlalchemy.orm import class_mapper -from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import close_all_sessions from sqlalchemy.orm import configure_mappers -from sqlalchemy.orm import declarative_base from sqlalchemy.orm import declared_attr from sqlalchemy.orm import deferred -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship +from sqlalchemy.orm.decl_api import registry from sqlalchemy.testing import assert_raises from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import eq_ @@ -29,11 +27,12 @@ Base = None class DeclarativeTestBase(fixtures.TestBase, testing.AssertsExecutionResults): def setup_test(self): global Base - Base = declarative_base() + self.mapper_registry = registry() + Base = self.mapper_registry.generate_base() def teardown_test(self): close_all_sessions() - clear_mappers() + self.mapper_registry.dispose() Base.metadata.drop_all(testing.db) @@ -334,7 +333,7 @@ class DeclarativeInheritanceTest(DeclarativeTestBase): Column("kind", String(50)), ) - mapper( + self.mapper_registry.map_imperatively( Person, person_table, polymorphic_on="kind", @@ -367,7 +366,7 @@ class DeclarativeInheritanceTest(DeclarativeTestBase): Column("kind", String(50)), ) - mapper( + self.mapper_registry.map_imperatively( Person, person_table, polymorphic_on="kind", @@ -400,7 +399,7 @@ class DeclarativeInheritanceTest(DeclarativeTestBase): Column("kind", String(50)), ) - mapper( + self.mapper_registry.map_imperatively( Person, person_table, polymorphic_on="kind", diff --git a/test/orm/inheritance/test_abc_inheritance.py b/test/orm/inheritance/test_abc_inheritance.py index a368e7b2f3..1e8cf6f50d 100644 --- a/test/orm/inheritance/test_abc_inheritance.py +++ b/test/orm/inheritance/test_abc_inheritance.py @@ -3,7 +3,6 @@ from sqlalchemy import Integer from sqlalchemy import String from sqlalchemy import testing from sqlalchemy.orm import class_mapper -from sqlalchemy.orm import mapper from sqlalchemy.orm import polymorphic_union from sqlalchemy.orm import relationship from sqlalchemy.orm.interfaces import MANYTOONE @@ -175,14 +174,14 @@ class ABCTest(fixtures.MappedTest): class C(B): pass - mapper( + cls.mapper_registry.map_imperatively( A, ta, polymorphic_on=abcjoin.c.type, with_polymorphic=("*", abcjoin), polymorphic_identity="a", ) - mapper( + cls.mapper_registry.map_imperatively( B, tb, polymorphic_on=bcjoin.c.type, @@ -191,7 +190,7 @@ class ABCTest(fixtures.MappedTest): inherits=A, inherit_condition=atob, ) - mapper( + cls.mapper_registry.map_imperatively( C, tc, polymorphic_identity="c", diff --git a/test/orm/inheritance/test_abc_polymorphic.py b/test/orm/inheritance/test_abc_polymorphic.py index fd3d50dddc..3ec9b55857 100644 --- a/test/orm/inheritance/test_abc_polymorphic.py +++ b/test/orm/inheritance/test_abc_polymorphic.py @@ -2,7 +2,6 @@ from sqlalchemy import ForeignKey from sqlalchemy import Integer from sqlalchemy import String from sqlalchemy import testing -from sqlalchemy.orm import mapper from sqlalchemy.testing import eq_ from sqlalchemy.testing import fixtures from sqlalchemy.testing.fixtures import fixture_session @@ -53,21 +52,23 @@ class ABCTest(fixtures.MappedTest): else: abc = bc = None - mapper( + self.mapper_registry.map_imperatively( A, a, with_polymorphic=("*", abc), polymorphic_on=a.c.type, polymorphic_identity="a", ) - mapper( + self.mapper_registry.map_imperatively( B, b, with_polymorphic=("*", bc), inherits=A, polymorphic_identity="b", ) - mapper(C, c, inherits=B, polymorphic_identity="c") + self.mapper_registry.map_imperatively( + C, c, inherits=B, polymorphic_identity="c" + ) a1 = A(adata="a1") b1 = B(bdata="b1", adata="b1") diff --git a/test/orm/inheritance/test_assorted_poly.py b/test/orm/inheritance/test_assorted_poly.py index 084305a7cc..2db4641ddd 100644 --- a/test/orm/inheritance/test_assorted_poly.py +++ b/test/orm/inheritance/test_assorted_poly.py @@ -19,7 +19,6 @@ from sqlalchemy.orm import column_property from sqlalchemy.orm import contains_eager from sqlalchemy.orm import join from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import polymorphic_union from sqlalchemy.orm import relationship from sqlalchemy.orm import Session @@ -87,7 +86,7 @@ class RelationshipTest1(fixtures.MappedTest): def test_parent_refs_descendant(self): Person, Manager = self.classes("Person", "Manager") - mapper( + self.mapper_registry.map_imperatively( Person, people, properties={ @@ -99,7 +98,7 @@ class RelationshipTest1(fixtures.MappedTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Manager, managers, inherits=Person, @@ -126,8 +125,8 @@ class RelationshipTest1(fixtures.MappedTest): def test_descendant_refs_parent(self): Person, Manager = self.classes("Person", "Manager") - mapper(Person, people) - mapper( + self.mapper_registry.map_imperatively(Person, people) + self.mapper_registry.map_imperatively( Manager, managers, inherits=Person, @@ -254,9 +253,9 @@ class RelationshipTest2(fixtures.MappedTest): def __init__(self, data): self.data = data - mapper(Data, data) + self.mapper_registry.map_imperatively(Data, data) - mapper( + self.mapper_registry.map_imperatively( Person, people, with_polymorphic=("*", poly_union), @@ -265,7 +264,7 @@ class RelationshipTest2(fixtures.MappedTest): ) if usedata: - mapper( + self.mapper_registry.map_imperatively( Manager, managers, inherits=Person, @@ -283,7 +282,7 @@ class RelationshipTest2(fixtures.MappedTest): }, ) else: - mapper( + self.mapper_registry.map_imperatively( Manager, managers, inherits=Person, @@ -409,10 +408,10 @@ class RelationshipTest3(fixtures.MappedTest): assert False if usedata: - mapper(Data, data) + self.mapper_registry.map_imperatively(Data, data) if usedata: - mapper( + self.mapper_registry.map_imperatively( Person, people, with_polymorphic=("*", poly_union), @@ -430,7 +429,7 @@ class RelationshipTest3(fixtures.MappedTest): }, ) else: - mapper( + self.mapper_registry.map_imperatively( Person, people, with_polymorphic=("*", poly_union), @@ -447,7 +446,7 @@ class RelationshipTest3(fixtures.MappedTest): }, ) - mapper( + self.mapper_registry.map_imperatively( Manager, managers, inherits=Person, @@ -591,28 +590,30 @@ class RelationshipTest4(fixtures.MappedTest): "employee_join", ) - person_mapper = mapper( + person_mapper = self.mapper_registry.map_imperatively( Person, people, with_polymorphic=("*", employee_join), polymorphic_on=employee_join.c.type, polymorphic_identity="person", ) - mapper( + self.mapper_registry.map_imperatively( Engineer, engineers, with_polymorphic=([Engineer], people.join(engineers)), inherits=person_mapper, polymorphic_identity="engineer", ) - mapper( + self.mapper_registry.map_imperatively( Manager, managers, with_polymorphic=([Manager], people.join(managers)), inherits=person_mapper, polymorphic_identity="manager", ) - mapper(Car, cars, properties={"employee": relationship(person_mapper)}) + self.mapper_registry.map_imperatively( + Car, cars, properties={"employee": relationship(person_mapper)} + ) session = fixture_session() @@ -757,25 +758,25 @@ class RelationshipTest5(fixtures.MappedTest): def __repr__(self): return "Car number %d" % self.car_id - person_mapper = mapper( + person_mapper = self.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c.type, polymorphic_identity="person", ) - mapper( + self.mapper_registry.map_imperatively( Engineer, engineers, inherits=person_mapper, polymorphic_identity="engineer", ) - manager_mapper = mapper( + manager_mapper = self.mapper_registry.map_imperatively( Manager, managers, inherits=person_mapper, polymorphic_identity="manager", ) - mapper( + self.mapper_registry.map_imperatively( Car, cars, properties={ @@ -840,9 +841,9 @@ class RelationshipTest6(fixtures.MappedTest): def test_basic(self): Person, Manager = self.classes("Person", "Manager") - mapper(Person, people) + self.mapper_registry.map_imperatively(Person, people) - mapper( + self.mapper_registry.map_imperatively( Manager, managers, inherits=Person, @@ -996,20 +997,20 @@ class RelationshipTest7(fixtures.MappedTest): "car_join", ) - car_mapper = mapper( + car_mapper = self.mapper_registry.map_imperatively( Car, cars, with_polymorphic=("*", car_join), polymorphic_on=car_join.c.type, polymorphic_identity="car", ) - mapper( + self.mapper_registry.map_imperatively( Offraod_Car, offroad_cars, inherits=car_mapper, polymorphic_identity="offroad", ) - person_mapper = mapper( + person_mapper = self.mapper_registry.map_imperatively( Person, people, with_polymorphic=("*", employee_join), @@ -1017,13 +1018,13 @@ class RelationshipTest7(fixtures.MappedTest): polymorphic_identity="person", properties={"car": relationship(car_mapper)}, ) - mapper( + self.mapper_registry.map_imperatively( Engineer, engineers, inherits=person_mapper, polymorphic_identity="engineer", ) - mapper( + self.mapper_registry.map_imperatively( Manager, managers, inherits=person_mapper, @@ -1074,7 +1075,7 @@ class RelationshipTest8(fixtures.MappedTest): class User(Taggable): pass - mapper( + self.mapper_registry.map_imperatively( Taggable, taggable, polymorphic_on=taggable.c.type, @@ -1088,7 +1089,7 @@ class RelationshipTest8(fixtures.MappedTest): }, ) - mapper( + self.mapper_registry.map_imperatively( User, users, inherits=Taggable, @@ -1369,8 +1370,8 @@ class GenerativeTest(fixtures.MappedTest, AssertsExecutionResults): "employee_join", ) - status_mapper = mapper(Status, status) - person_mapper = mapper( + status_mapper = cls.mapper_registry.map_imperatively(Status, status) + person_mapper = cls.mapper_registry.map_imperatively( Person, people, with_polymorphic=("*", employee_join), @@ -1378,21 +1379,21 @@ class GenerativeTest(fixtures.MappedTest, AssertsExecutionResults): polymorphic_identity="person", properties={"status": relationship(status_mapper)}, ) - mapper( + cls.mapper_registry.map_imperatively( Engineer, engineers, with_polymorphic=([Engineer], people.join(engineers)), inherits=person_mapper, polymorphic_identity="engineer", ) - mapper( + cls.mapper_registry.map_imperatively( Manager, managers, with_polymorphic=([Manager], people.join(managers)), inherits=person_mapper, polymorphic_identity="manager", ) - mapper( + cls.mapper_registry.map_imperatively( Car, cars, properties={ @@ -1568,7 +1569,7 @@ class MultiLevelTest(fixtures.MappedTest): "pu_employee", ) - mapper_Employee = mapper( + mapper_Employee = self.mapper_registry.map_imperatively( Employee, table_Employee, polymorphic_identity="Employee", @@ -1589,7 +1590,7 @@ class MultiLevelTest(fixtures.MappedTest): None, "pu_engineer", ) - mapper_Engineer = mapper( + mapper_Engineer = self.mapper_registry.map_imperatively( Engineer, table_Engineer, inherit_condition=table_Engineer.c.id == table_Employee.c.id, @@ -1599,7 +1600,7 @@ class MultiLevelTest(fixtures.MappedTest): with_polymorphic=("*", pu_Engineer), ) - mapper( + self.mapper_registry.map_imperatively( Manager, table_Manager, inherit_condition=table_Manager.c.id == table_Engineer.c.id, @@ -1685,7 +1686,7 @@ class ManyToManyPolyTest(fixtures.MappedTest): "item_join", ) - mapper( + self.mapper_registry.map_imperatively( BaseItem, base_item_table, with_polymorphic=("*", item_join), @@ -1700,11 +1701,11 @@ class ManyToManyPolyTest(fixtures.MappedTest): ), ) - mapper( + self.mapper_registry.map_imperatively( Item, item_table, inherits=BaseItem, polymorphic_identity="Item" ) - mapper(Collection, collection_table) + self.mapper_registry.map_imperatively(Collection, collection_table) class_mapper(BaseItem) @@ -1750,7 +1751,7 @@ class CustomPKTest(fixtures.MappedTest): d["t2"] = t1.join(t2) pjoin = polymorphic_union(d, None, "pjoin") - mapper( + self.mapper_registry.map_imperatively( T1, t1, polymorphic_on=t1.c.type, @@ -1758,7 +1759,9 @@ class CustomPKTest(fixtures.MappedTest): with_polymorphic=("*", pjoin), primary_key=[pjoin.c.id], ) - mapper(T2, t2, inherits=T1, polymorphic_identity="t2") + self.mapper_registry.map_imperatively( + T2, t2, inherits=T1, polymorphic_identity="t2" + ) ot1 = T1() ot2 = T2() sess = fixture_session() @@ -1796,14 +1799,16 @@ class CustomPKTest(fixtures.MappedTest): d["t2"] = t1.join(t2) pjoin = polymorphic_union(d, None, "pjoin") - mapper( + self.mapper_registry.map_imperatively( T1, t1, polymorphic_on=t1.c.type, polymorphic_identity="t1", with_polymorphic=("*", pjoin), ) - mapper(T2, t2, inherits=T1, polymorphic_identity="t2") + self.mapper_registry.map_imperatively( + T2, t2, inherits=T1, polymorphic_identity="t2" + ) assert len(class_mapper(T1).primary_key) == 1 ot1 = T1() @@ -1875,7 +1880,7 @@ class InheritingEagerTest(fixtures.MappedTest): def __init__(self, label): self.label = label - mapper( + self.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c._type, @@ -1886,13 +1891,13 @@ class InheritingEagerTest(fixtures.MappedTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Employee, employees, inherits=Person, polymorphic_identity="employee", ) - mapper(Tag, tags) + self.mapper_registry.map_imperatively(Tag, tags) session = fixture_session() @@ -1979,16 +1984,20 @@ class MissingPolymorphicOnTest(fixtures.MappedTest): .alias("poly") ) - mapper(B, tableb) - mapper( + self.mapper_registry.map_imperatively(B, tableb) + self.mapper_registry.map_imperatively( A, tablea, with_polymorphic=("*", poly_select), polymorphic_on=poly_select.c.discriminator, properties={"b": relationship(B, uselist=False)}, ) - mapper(C, tablec, inherits=A, polymorphic_identity="c") - mapper(D, tabled, inherits=C, polymorphic_identity="d") + self.mapper_registry.map_imperatively( + C, tablec, inherits=A, polymorphic_identity="c" + ) + self.mapper_registry.map_imperatively( + D, tabled, inherits=C, polymorphic_identity="d" + ) c = C(cdata="c1", adata="a1", b=B(data="c")) d = D(cdata="c2", adata="a2", ddata="d2", b=B(data="d")) @@ -2063,13 +2072,13 @@ class JoinedInhAdjacencyTest(fixtures.MappedTest): people, users = self.tables.people, self.tables.users Person, User = self.classes.Person, self.classes.User - mapper( + self.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c.type, polymorphic_identity="person", ) - mapper( + self.mapper_registry.map_imperatively( User, users, inherits=Person, @@ -2089,13 +2098,13 @@ class JoinedInhAdjacencyTest(fixtures.MappedTest): people, users = self.tables.people, self.tables.users Person, User = self.classes.Person, self.classes.User - mapper( + self.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c.type, polymorphic_identity="person", ) - mapper( + self.mapper_registry.map_imperatively( User, users, inherits=Person, @@ -2125,20 +2134,20 @@ class JoinedInhAdjacencyTest(fixtures.MappedTest): self.classes.Dude, ) - mapper( + self.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c.type, polymorphic_identity="person", ) - mapper( + self.mapper_registry.map_imperatively( User, users, inherits=Person, polymorphic_identity="user", inherit_condition=(users.c.id == people.c.id), ) - mapper( + self.mapper_registry.map_imperatively( Dude, dudes, inherits=User, diff --git a/test/orm/inheritance/test_basic.py b/test/orm/inheritance/test_basic.py index a905d8aff2..52b362b9ef 100644 --- a/test/orm/inheritance/test_basic.py +++ b/test/orm/inheritance/test_basic.py @@ -22,7 +22,6 @@ from sqlalchemy.orm import declarative_base from sqlalchemy.orm import deferred from sqlalchemy.orm import exc as orm_exc from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import object_mapper from sqlalchemy.orm import polymorphic_union from sqlalchemy.orm import relationship @@ -84,19 +83,19 @@ class O2MTest(fixtures.MappedTest): def __repr__(self): return "Foo id %d, data %s" % (self.id, self.data) - mapper(Foo, foo) + self.mapper_registry.map_imperatively(Foo, foo) class Bar(Foo): def __repr__(self): return "Bar id %d, data %s" % (self.id, self.data) - mapper(Bar, bar, inherits=Foo) + self.mapper_registry.map_imperatively(Bar, bar, inherits=Foo) class Blub(Bar): def __repr__(self): return "Blub id %d, data %s" % (self.id, self.data) - mapper( + self.mapper_registry.map_imperatively( Blub, blub, inherits=Bar, @@ -370,7 +369,7 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest): "Can't determine polymorphic_on " "value 'im not a column' - no " "attribute is mapped to this name.", - mapper, + self.mapper_registry.map_imperatively, Parent, t2, polymorphic_on="im not a column", @@ -384,7 +383,7 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest): sa_exc.ArgumentError, r"Column expression or string key expected for argument " r"'polymorphic_on'; got .*function", - mapper, + self.mapper, Parent, t2, polymorphic_on=lambda: "hi", @@ -398,7 +397,7 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest): def go(): t1t2_join_2 = select(t1.c.q).select_from(t1.join(t2)).alias() - mapper( + self.mapper_registry.map_imperatively( Parent, t2, polymorphic_on=t1t2_join.c.x, @@ -418,7 +417,7 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest): Parent = self.classes.Parent t1t2_join = select(t1.c.x).select_from(t1.join(t2)).alias() # if its in the with_polymorphic, then its OK - mapper( + self.mapper_registry.map_imperatively( Parent, t2, polymorphic_on=t1t2_join.c.x, @@ -435,7 +434,7 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest): # if with_polymorphic, but its not present, not OK def go(): t1t2_join_2 = select(t1.c.q).select_from(t1.join(t2)).alias() - mapper( + self.mapper_registry.map_imperatively( Parent, t2, polymorphic_on=t1t2_join.c.x, @@ -455,14 +454,16 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest): t2, t1 = self.tables.t2, self.tables.t1 Parent, Child = self.classes.Parent, self.classes.Child expr = case((t1.c.x == "p", "parent"), (t1.c.x == "c", "child")) - mapper( + self.mapper_registry.map_imperatively( Parent, t1, properties={"discriminator": column_property(expr)}, polymorphic_identity="parent", polymorphic_on=expr, ) - mapper(Child, t2, inherits=Parent, polymorphic_identity="child") + self.mapper_registry.map_imperatively( + Child, t2, inherits=Parent, polymorphic_identity="child" + ) self._roundtrip(parent_ident="p", child_ident="c") @@ -470,8 +471,12 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest): t2, t1 = self.tables.t2, self.tables.t1 Parent, Child = self.classes.Parent, self.classes.Child expr = case((t1.c.x == "p", "parent"), (t1.c.x == "c", "child")) - mapper(Parent, t1, polymorphic_identity="parent", polymorphic_on=expr) - mapper(Child, t2, inherits=Parent, polymorphic_identity="child") + self.mapper_registry.map_imperatively( + Parent, t1, polymorphic_identity="parent", polymorphic_on=expr + ) + self.mapper_registry.map_imperatively( + Child, t2, inherits=Parent, polymorphic_identity="child" + ) self._roundtrip(parent_ident="p", child_ident="c") @@ -481,8 +486,12 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest): expr = case((t1.c.x == "p", "parent"), (t1.c.x == "c", "child")).label( None ) - mapper(Parent, t1, polymorphic_identity="parent", polymorphic_on=expr) - mapper(Child, t2, inherits=Parent, polymorphic_identity="child") + self.mapper_registry.map_imperatively( + Parent, t1, polymorphic_identity="parent", polymorphic_on=expr + ) + self.mapper_registry.map_imperatively( + Child, t2, inherits=Parent, polymorphic_identity="child" + ) self._roundtrip(parent_ident="p", child_ident="c") @@ -492,8 +501,12 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest): t1 = self.tables.t1 Parent, Child = self.classes.Parent, self.classes.Child expr = case((t1.c.x == "p", "parent"), (t1.c.x == "c", "child")) - mapper(Parent, t1, polymorphic_identity="parent", polymorphic_on=expr) - mapper(Child, inherits=Parent, polymorphic_identity="child") + self.mapper_registry.map_imperatively( + Parent, t1, polymorphic_identity="parent", polymorphic_on=expr + ) + self.mapper_registry.map_imperatively( + Child, inherits=Parent, polymorphic_identity="child" + ) self._roundtrip(parent_ident="p", child_ident="c") @@ -505,8 +518,12 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest): expr = case((t1.c.x == "p", "parent"), (t1.c.x == "c", "child")).label( None ) - mapper(Parent, t1, polymorphic_identity="parent", polymorphic_on=expr) - mapper(Child, inherits=Parent, polymorphic_identity="child") + self.mapper_registry.map_imperatively( + Parent, t1, polymorphic_identity="parent", polymorphic_on=expr + ) + self.mapper_registry.map_imperatively( + Child, inherits=Parent, polymorphic_identity="child" + ) self._roundtrip(parent_ident="p", child_ident="c") @@ -515,14 +532,16 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest): Parent, Child = self.classes.Parent, self.classes.Child expr = case((t1.c.x == "p", "parent"), (t1.c.x == "c", "child")) cprop = column_property(expr) - mapper( + self.mapper_registry.map_imperatively( Parent, t1, properties={"discriminator": cprop}, polymorphic_identity="parent", polymorphic_on=cprop, ) - mapper(Child, t2, inherits=Parent, polymorphic_identity="child") + self.mapper_registry.map_imperatively( + Child, t2, inherits=Parent, polymorphic_identity="child" + ) self._roundtrip(parent_ident="p", child_ident="c") @@ -531,14 +550,16 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest): Parent, Child = self.classes.Parent, self.classes.Child expr = case((t1.c.x == "p", "parent"), (t1.c.x == "c", "child")) cprop = column_property(expr) - mapper( + self.mapper_registry.map_imperatively( Parent, t1, properties={"discriminator": cprop}, polymorphic_identity="parent", polymorphic_on="discriminator", ) - mapper(Child, t2, inherits=Parent, polymorphic_identity="child") + self.mapper_registry.map_imperatively( + Child, t2, inherits=Parent, polymorphic_identity="child" + ) self._roundtrip(parent_ident="p", child_ident="c") @@ -550,7 +571,7 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest): sa_exc.ArgumentError, "Only direct column-mapped property or " "SQL expression can be passed for polymorphic_on", - mapper, + self.mapper_registry.map_imperatively, Parent, t1, properties={"discriminator": cprop, "discrim_syn": synonym(cprop)}, @@ -671,8 +692,12 @@ class FalseDiscriminatorTest(fixtures.MappedTest): class Bar(Foo): pass - mapper(Foo, t1, polymorphic_on=t1.c.type, polymorphic_identity=True) - mapper(Bar, inherits=Foo, polymorphic_identity=False) + self.mapper_registry.map_imperatively( + Foo, t1, polymorphic_on=t1.c.type, polymorphic_identity=True + ) + self.mapper_registry.map_imperatively( + Bar, inherits=Foo, polymorphic_identity=False + ) sess = fixture_session() b1 = Bar() sess.add(b1) @@ -688,8 +713,12 @@ class FalseDiscriminatorTest(fixtures.MappedTest): class Bat(Ding): pass - mapper(Ding, t1, polymorphic_on=t1.c.type, polymorphic_identity=False) - mapper(Bat, inherits=Ding, polymorphic_identity=True) + self.mapper_registry.map_imperatively( + Ding, t1, polymorphic_on=t1.c.type, polymorphic_identity=False + ) + self.mapper_registry.map_imperatively( + Bat, inherits=Ding, polymorphic_identity=True + ) sess = fixture_session() d1 = Ding() sess.add(d1) @@ -732,14 +761,16 @@ class PolymorphicSynonymTest(fixtures.MappedTest): class T2(T1): pass - mapper( + self.mapper_registry.map_imperatively( T1, t1, polymorphic_on=t1.c.type, polymorphic_identity="t1", properties={"info": synonym("_info", map_column=True)}, ) - mapper(T2, t2, inherits=T1, polymorphic_identity="t2") + self.mapper_registry.map_imperatively( + T2, t2, inherits=T1, polymorphic_identity="t2" + ) sess = fixture_session() at1 = T1(info="at1") at2 = T2(info="at2", data="t2 data") @@ -781,12 +812,6 @@ class PolymorphicAttributeManagementTest(fixtures.MappedTest): @classmethod def setup_classes(cls): - table_b, table_c, table_a = ( - cls.tables.table_b, - cls.tables.table_c, - cls.tables.table_a, - ) - class A(cls.Basic): pass @@ -799,13 +824,21 @@ class PolymorphicAttributeManagementTest(fixtures.MappedTest): class D(B): pass - mapper( + @classmethod + def setup_mappers(cls): + A, B, C, D = cls.classes("A", "B", "C", "D") + table_b, table_c, table_a = ( + cls.tables.table_b, + cls.tables.table_c, + cls.tables.table_a, + ) + cls.mapper_registry.map_imperatively( A, table_a, polymorphic_on=table_a.c.class_name, polymorphic_identity="a", ) - mapper( + cls.mapper_registry.map_imperatively( B, table_b, inherits=A, @@ -815,8 +848,12 @@ class PolymorphicAttributeManagementTest(fixtures.MappedTest): class_name=[table_a.c.class_name, table_b.c.class_name] ), ) - mapper(C, table_c, inherits=B, polymorphic_identity="c") - mapper(D, inherits=B, polymorphic_identity="d") + cls.mapper_registry.map_imperatively( + C, table_c, inherits=B, polymorphic_identity="c" + ) + cls.mapper_registry.map_imperatively( + D, inherits=B, polymorphic_identity="d" + ) def test_poly_configured_immediate(self): A, C, B = (self.classes.A, self.classes.C, self.classes.B) @@ -997,16 +1034,20 @@ class CascadeTest(fixtures.MappedTest): class T4(fixtures.BasicEntity): pass - mapper(T1, t1, properties={"t2s": relationship(T2, cascade="all")}) - mapper(T2, t2, polymorphic_on=t2.c.type, polymorphic_identity="t2") - mapper( + self.mapper_registry.map_imperatively( + T1, t1, properties={"t2s": relationship(T2, cascade="all")} + ) + self.mapper_registry.map_imperatively( + T2, t2, polymorphic_on=t2.c.type, polymorphic_identity="t2" + ) + self.mapper_registry.map_imperatively( T3, t3, inherits=T2, polymorphic_identity="t3", properties={"t4s": relationship(T4, cascade="all")}, ) - mapper(T4, t4) + self.mapper_registry.map_imperatively(T4, t4) sess = fixture_session() t1_1 = T1(data="t1") @@ -1072,11 +1113,13 @@ class M2OUseGetTest(fixtures.MappedTest): class Related(Base): pass - mapper( + self.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.type, polymorphic_identity="b" ) - mapper(Sub, sub, inherits=Base, polymorphic_identity="s") - mapper( + self.mapper_registry.map_imperatively( + Sub, sub, inherits=Base, polymorphic_identity="s" + ) + self.mapper_registry.map_imperatively( Related, related, properties={ @@ -1170,15 +1213,19 @@ class GetTest(fixtures.MappedTest): ) if polymorphic: - mapper( + self.mapper_registry.map_imperatively( Foo, foo, polymorphic_on=foo.c.type, polymorphic_identity="foo" ) - mapper(Bar, bar, inherits=Foo, polymorphic_identity="bar") - mapper(Blub, blub, inherits=Bar, polymorphic_identity="blub") + self.mapper_registry.map_imperatively( + Bar, bar, inherits=Foo, polymorphic_identity="bar" + ) + self.mapper_registry.map_imperatively( + Blub, blub, inherits=Bar, polymorphic_identity="blub" + ) else: - mapper(Foo, foo) - mapper(Bar, bar, inherits=Foo) - mapper(Blub, blub, inherits=Bar) + self.mapper_registry.map_imperatively(Foo, foo) + self.mapper_registry.map_imperatively(Bar, bar, inherits=Foo) + self.mapper_registry.map_imperatively(Blub, blub, inherits=Bar) sess = fixture_session() f = Foo() @@ -1268,8 +1315,8 @@ class EagerLazyTest(fixtures.MappedTest): class Bar(Foo): pass - foos = mapper(Foo, foo) - bars = mapper(Bar, bar, inherits=foos) + foos = cls.mapper_registry.map_imperatively(Foo, foo) + bars = cls.mapper_registry.map_imperatively(Bar, bar, inherits=foos) bars.add_property("lazy", relationship(foos, bar_foo, lazy="select")) bars.add_property( "eager", relationship(foos, bar_foo, lazy="joined", viewonly=True) @@ -1331,7 +1378,7 @@ class EagerTargetingTest(fixtures.MappedTest): class B(A): pass - mapper( + self.mapper_registry.map_imperatively( A, a_table, polymorphic_on=a_table.c.type, @@ -1339,7 +1386,7 @@ class EagerTargetingTest(fixtures.MappedTest): properties={"children": relationship(A, order_by=a_table.c.name)}, ) - mapper( + self.mapper_registry.map_imperatively( B, b_table, inherits=A, @@ -1442,8 +1489,8 @@ class FlushTest(fixtures.MappedTest): class Admin(User): pass - mapper(Role, roles) - user_mapper = mapper( + self.mapper_registry.map_imperatively(Role, roles) + user_mapper = self.mapper_registry.map_imperatively( User, users, properties={ @@ -1452,7 +1499,9 @@ class FlushTest(fixtures.MappedTest): ) }, ) - mapper(Admin, admins, inherits=user_mapper) + self.mapper_registry.map_imperatively( + Admin, admins, inherits=user_mapper + ) sess = fixture_session() adminrole = Role() sess.add(adminrole) @@ -1490,8 +1539,8 @@ class FlushTest(fixtures.MappedTest): class Admin(User): pass - mapper(Role, roles) - user_mapper = mapper( + self.mapper_registry.map_imperatively(Role, roles) + user_mapper = self.mapper_registry.map_imperatively( User, users, properties={ @@ -1501,7 +1550,9 @@ class FlushTest(fixtures.MappedTest): }, ) - mapper(Admin, admins, inherits=user_mapper) + self.mapper_registry.map_imperatively( + Admin, admins, inherits=user_mapper + ) # create roles adminrole = Role("admin") @@ -1566,15 +1617,19 @@ class PassiveDeletesTest(fixtures.MappedTest): A, B, C = self.classes("A", "B", "C") a, b, c = self.tables("a", "b", "c") - mapper( + self.mapper_registry.map_imperatively( A, a, passive_deletes=a_p, polymorphic_on=a.c.type, polymorphic_identity="a", ) - mapper(B, b, inherits=A, passive_deletes=b_p, polymorphic_identity="b") - mapper(C, c, inherits=B, passive_deletes=c_p, polymorphic_identity="c") + self.mapper_registry.map_imperatively( + B, b, inherits=A, passive_deletes=b_p, polymorphic_identity="b" + ) + self.mapper_registry.map_imperatively( + C, c, inherits=B, passive_deletes=c_p, polymorphic_identity="c" + ) def test_none(self): A, B, C = self.classes("A", "B", "C") @@ -1753,8 +1808,8 @@ class OptimizedGetOnDeferredTest(fixtures.MappedTest): A, B = cls.classes("A", "B") a, b = cls.tables("a", "b") - mapper(A, a) - mapper( + cls.mapper_registry.map_imperatively(A, a) + cls.mapper_registry.map_imperatively( B, b, inherits=A, @@ -1811,15 +1866,15 @@ class JoinedNoFKSortingTest(fixtures.MappedTest): @classmethod def setup_mappers(cls): A, B, C = cls.classes.A, cls.classes.B, cls.classes.C - mapper(A, cls.tables.a) - mapper( + cls.mapper_registry.map_imperatively(A, cls.tables.a) + cls.mapper_registry.map_imperatively( B, cls.tables.b, inherits=A, inherit_condition=cls.tables.a.c.id == cls.tables.b.c.id, inherit_foreign_keys=cls.tables.b.c.id, ) - mapper( + cls.mapper_registry.map_imperatively( C, cls.tables.c, inherits=A, @@ -1906,8 +1961,8 @@ class VersioningTest(fixtures.MappedTest): class Stuff(Base): pass - mapper(Stuff, stuff) - mapper( + self.mapper_registry.map_imperatively(Stuff, stuff) + self.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.discriminator, @@ -1915,7 +1970,9 @@ class VersioningTest(fixtures.MappedTest): polymorphic_identity=1, properties={"stuff": relationship(Stuff)}, ) - mapper(Sub, subtable, inherits=Base, polymorphic_identity=2) + self.mapper_registry.map_imperatively( + Sub, subtable, inherits=Base, polymorphic_identity=2 + ) sess = fixture_session(autoflush=False) @@ -1966,14 +2023,16 @@ class VersioningTest(fixtures.MappedTest): class Sub(Base): pass - mapper( + self.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.discriminator, version_id_col=base.c.version_id, polymorphic_identity=1, ) - mapper(Sub, subtable, inherits=Base, polymorphic_identity=2) + self.mapper_registry.map_imperatively( + Sub, subtable, inherits=Base, polymorphic_identity=2 + ) sess = fixture_session(autoflush=False, expire_on_commit=False) @@ -2053,13 +2112,19 @@ class DistinctPKTest(fixtures.MappedTest): ) # bob def test_implicit(self): - person_mapper = mapper(Person, person_table) - mapper(Employee, employee_table, inherits=person_mapper) + person_mapper = self.mapper_registry.map_imperatively( + Person, person_table + ) + self.mapper_registry.map_imperatively( + Employee, employee_table, inherits=person_mapper + ) assert list(class_mapper(Employee).primary_key) == [person_table.c.id] def test_explicit_props(self): - person_mapper = mapper(Person, person_table) - mapper( + person_mapper = self.mapper_registry.map_imperatively( + Person, person_table + ) + self.mapper_registry.map_imperatively( Employee, employee_table, inherits=person_mapper, @@ -2068,8 +2133,10 @@ class DistinctPKTest(fixtures.MappedTest): self._do_test(False) def test_explicit_composite_pk(self): - person_mapper = mapper(Person, person_table) - mapper( + person_mapper = self.mapper_registry.map_imperatively( + Person, person_table + ) + self.mapper_registry.map_imperatively( Employee, employee_table, inherits=person_mapper, @@ -2088,8 +2155,10 @@ class DistinctPKTest(fixtures.MappedTest): ) def test_explicit_pk(self): - person_mapper = mapper(Person, person_table) - mapper( + person_mapper = self.mapper_registry.map_imperatively( + Person, person_table + ) + self.mapper_registry.map_imperatively( Employee, employee_table, inherits=person_mapper, @@ -2173,9 +2242,13 @@ class SyncCompileTest(fixtures.MappedTest): class C(B): pass - mapper(A, _a_table) - mapper(B, _b_table, inherits=A, inherit_condition=j1) - mapper(C, _c_table, inherits=B, inherit_condition=j2) + self.mapper_registry.map_imperatively(A, _a_table) + self.mapper_registry.map_imperatively( + B, _b_table, inherits=A, inherit_condition=j1 + ) + self.mapper_registry.map_imperatively( + C, _c_table, inherits=B, inherit_condition=j2 + ) session = fixture_session() @@ -2243,8 +2316,8 @@ class OverrideColKeyTest(fixtures.MappedTest): class Sub(Base): pass - mapper(Base, base) - mapper(Sub, subtable, inherits=Base) + self.mapper_registry.map_imperatively(Base, base) + self.mapper_registry.map_imperatively(Sub, subtable, inherits=Base) # Sub gets a "base_id" property using the "base_id" # column of both tables. @@ -2264,8 +2337,10 @@ class OverrideColKeyTest(fixtures.MappedTest): class Sub(Base): pass - mapper(Base, base, properties={"id": base.c.base_id}) - mapper( + self.mapper_registry.map_imperatively( + Base, base, properties={"id": base.c.base_id} + ) + self.mapper_registry.map_imperatively( Sub, subtable, inherits=Base, @@ -2295,8 +2370,10 @@ class OverrideColKeyTest(fixtures.MappedTest): class Sub(Base): pass - mapper(Base, base, properties={"id": base.c.base_id}) - mapper(Sub, subtable, inherits=Base) + self.mapper_registry.map_imperatively( + Base, base, properties={"id": base.c.base_id} + ) + self.mapper_registry.map_imperatively(Sub, subtable, inherits=Base) eq_(class_mapper(Sub).get_property("id").columns, [base.c.base_id]) @@ -2332,10 +2409,12 @@ class OverrideColKeyTest(fixtures.MappedTest): class Sub(Base): pass - mapper(Base, base, properties={"id": base.c.base_id}) + self.mapper_registry.map_imperatively( + Base, base, properties={"id": base.c.base_id} + ) def go(): - mapper( + self.mapper_registry.map_imperatively( Sub, subtable, inherits=Base, @@ -2355,10 +2434,12 @@ class OverrideColKeyTest(fixtures.MappedTest): class Sub(Base): pass - mapper(Base, base) + self.mapper_registry.map_imperatively(Base, base) def go(): - mapper(Sub, subtable_two, inherits=Base) + self.mapper_registry.map_imperatively( + Sub, subtable_two, inherits=Base + ) assert_raises_message( sa_exc.SAWarning, @@ -2379,8 +2460,8 @@ class OverrideColKeyTest(fixtures.MappedTest): def data(self): return "im the data" - mapper(Base, base) - mapper(Sub, subtable, inherits=Base) + self.mapper_registry.map_imperatively(Base, base) + self.mapper_registry.map_imperatively(Sub, subtable, inherits=Base) s1 = Sub() sess = fixture_session() @@ -2404,8 +2485,8 @@ class OverrideColKeyTest(fixtures.MappedTest): class Sub(Base): data = MyDesc() - mapper(Base, base) - mapper(Sub, subtable, inherits=Base) + self.mapper_registry.map_imperatively(Base, base) + self.mapper_registry.map_imperatively(Sub, subtable, inherits=Base) s1 = Sub() sess = fixture_session() @@ -2422,8 +2503,8 @@ class OverrideColKeyTest(fixtures.MappedTest): class Sub(Base): pass - mapper(Base, base) - mapper(Sub, subtable, inherits=Base) + self.mapper_registry.map_imperatively(Base, base) + self.mapper_registry.map_imperatively(Sub, subtable, inherits=Base) sess = fixture_session() b1 = Base() @@ -2448,8 +2529,8 @@ class OverrideColKeyTest(fixtures.MappedTest): class Sub(Base): pass - mapper(Base, base) - mapper(Sub, subtable, inherits=Base) + self.mapper_registry.map_imperatively(Base, base) + self.mapper_registry.map_imperatively(Sub, subtable, inherits=Base) sess = fixture_session() b1 = Base() @@ -2514,8 +2595,8 @@ class OptimizedLoadTest(fixtures.MappedTest): class SubJoinBase(JoinBase): pass - mapper(Base, base) - mapper( + self.mapper_registry.map_imperatively(Base, base) + self.mapper_registry.map_imperatively( JoinBase, base.outerjoin(sub), properties=util.OrderedDict( @@ -2525,7 +2606,7 @@ class OptimizedLoadTest(fixtures.MappedTest): ] ), ) - mapper(SubJoinBase, inherits=JoinBase) + self.mapper_registry.map_imperatively(SubJoinBase, inherits=JoinBase) sess = fixture_session() sess.add(Base(data="data")) @@ -2580,11 +2661,11 @@ class OptimizedLoadTest(fixtures.MappedTest): class Sub(Base): pass - mapper( + self.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.type, polymorphic_identity="base" ) - mapper( + self.mapper_registry.map_imperatively( Sub, sub, inherits=Base, @@ -2627,13 +2708,13 @@ class OptimizedLoadTest(fixtures.MappedTest): class Sub(Base): pass - mapper( + self.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.type, polymorphic_identity="base" ) # redefine Sub's "id" to favor the "id" col in the subtable. # "id" is also part of the primary join condition - mapper( + self.mapper_registry.map_imperatively( Sub, sub, inherits=Base, @@ -2663,10 +2744,10 @@ class OptimizedLoadTest(fixtures.MappedTest): class Sub(Base): pass - mapper( + self.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.type, polymorphic_identity="base" ) - mapper( + self.mapper_registry.map_imperatively( Sub, sub, inherits=Base, @@ -2692,10 +2773,10 @@ class OptimizedLoadTest(fixtures.MappedTest): class Sub(Base): pass - mapper( + self.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.type, polymorphic_identity="base" ) - mapper( + self.mapper_registry.map_imperatively( Sub, sub, inherits=Base, @@ -2744,10 +2825,10 @@ class OptimizedLoadTest(fixtures.MappedTest): def __eq__(self, other): return (self.a == other.a) and (self.b == other.b) - mapper( + self.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.type, polymorphic_identity="base" ) - mapper( + self.mapper_registry.map_imperatively( WithComp, with_comp, inherits=Base, @@ -2775,10 +2856,12 @@ class OptimizedLoadTest(fixtures.MappedTest): class Sub(Base): pass - mapper( + self.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.type, polymorphic_identity="base" ) - mapper(Sub, sub, inherits=Base, polymorphic_identity="sub") + self.mapper_registry.map_imperatively( + Sub, sub, inherits=Base, polymorphic_identity="sub" + ) sess = fixture_session() s1 = Sub(data="s1") sess.add(s1) @@ -2819,10 +2902,12 @@ class OptimizedLoadTest(fixtures.MappedTest): class Sub(Base): pass - mapper( + self.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.type, polymorphic_identity="base" ) - m = mapper(Sub, sub, inherits=Base, polymorphic_identity="sub") + m = self.mapper_registry.map_imperatively( + Sub, sub, inherits=Base, polymorphic_identity="sub" + ) s1 = Sub() assert ( @@ -2868,11 +2953,15 @@ class OptimizedLoadTest(fixtures.MappedTest): class SubSub(Sub): pass - mapper( + self.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.type, polymorphic_identity="base" ) - mapper(Sub, sub, inherits=Base, polymorphic_identity="sub") - mapper(SubSub, subsub, inherits=Sub, polymorphic_identity="subsub") + self.mapper_registry.map_imperatively( + Sub, sub, inherits=Base, polymorphic_identity="sub" + ) + self.mapper_registry.map_imperatively( + SubSub, subsub, inherits=Sub, polymorphic_identity="subsub" + ) sess = fixture_session() s1 = SubSub(data="s1", counter=1, subcounter=2) sess.add(s1) @@ -2919,7 +3008,7 @@ class OptimizedLoadTest(fixtures.MappedTest): ) -class NoPKOnSubTableWarningTest(fixtures.TestBase): +class NoPKOnSubTableWarningTest(fixtures.MappedTest): def _fixture(self): metadata = MetaData() parent = Table( @@ -2930,9 +3019,6 @@ class NoPKOnSubTableWarningTest(fixtures.TestBase): ) return parent, child - def teardown_test(self): - clear_mappers() - def test_warning_on_sub(self): parent, child = self._fixture() @@ -2942,12 +3028,12 @@ class NoPKOnSubTableWarningTest(fixtures.TestBase): class C(P): pass - mapper(P, parent) + self.mapper_registry.map_imperatively(P, parent) assert_raises_message( sa_exc.SAWarning, "Could not assemble any primary keys for locally mapped " "table 'child' - no rows will be persisted in this Table.", - mapper, + self.mapper_registry.map_imperatively, C, child, inherits=P, @@ -2962,12 +3048,14 @@ class NoPKOnSubTableWarningTest(fixtures.TestBase): class C(P): pass - mapper(P, parent) - mc = mapper(C, child, inherits=P, primary_key=[parent.c.id]) + self.mapper_registry.map_imperatively(P, parent) + mc = self.mapper_registry.map_imperatively( + C, child, inherits=P, primary_key=[parent.c.id] + ) eq_(mc.primary_key, (parent.c.id,)) -class InhCondTest(fixtures.TestBase): +class InhCondTest(fixtures.MappedTest): def test_inh_cond_nonexistent_table_unrelated(self): metadata = MetaData() base_table = Table( @@ -2986,9 +3074,11 @@ class InhCondTest(fixtures.TestBase): class Derived(Base): pass - mapper(Base, base_table) + self.mapper_registry.map_imperatively(Base, base_table) # succeeds, despite "owner" table not configured yet - m2 = mapper(Derived, derived_table, inherits=Base) + m2 = self.mapper_registry.map_imperatively( + Derived, derived_table, inherits=Base + ) assert m2.inherit_condition.compare( base_table.c.id == derived_table.c.id ) @@ -3010,10 +3100,12 @@ class InhCondTest(fixtures.TestBase): class Derived(Base): pass - mapper(Base, base_table) + self.mapper_registry.map_imperatively(Base, base_table) # succeeds, despite "order.foo" doesn't exist - m2 = mapper(Derived, derived_table, inherits=Base) + m2 = self.mapper_registry.map_imperatively( + Derived, derived_table, inherits=Base + ) assert m2.inherit_condition.compare( base_table.c.id == derived_table.c.id ) @@ -3033,7 +3125,7 @@ class InhCondTest(fixtures.TestBase): class Derived(Base): pass - mapper(Base, base_table) + self.mapper_registry.map_imperatively(Base, base_table) assert_raises_message( sa_exc.NoForeignKeysError, "Can't determine the inherit condition between inherited table " @@ -3042,7 +3134,7 @@ class InhCondTest(fixtures.TestBase): "table has a foreign key relationship to the inherited table, " "or provide an 'on clause' using the 'inherit_condition' " "mapper argument.", - mapper, + self.mapper, Derived, derived_table, inherits=Base, @@ -3068,14 +3160,14 @@ class InhCondTest(fixtures.TestBase): class Derived(Base): pass - mapper(Base, base_table) + self.mapper(Base, base_table) assert_raises_message( sa_exc.AmbiguousForeignKeysError, "Can't determine the inherit condition between inherited table " "'base' and inheriting table 'derived'; tables have more than " "one foreign key relationship established. Please specify the " "'on clause' using the 'inherit_condition' mapper argument.", - mapper, + self.mapper, Derived, derived_table, inherits=Base, @@ -3097,7 +3189,8 @@ class InhCondTest(fixtures.TestBase): class Derived(Base): pass - mapper(Base, base_table) + clear_mappers() + self.mapper_registry.map_imperatively(Base, base_table) # the ForeignKey def is correct but there are two # different metadatas. Would like the traditional @@ -3108,7 +3201,7 @@ class InhCondTest(fixtures.TestBase): "Foreign key associated with column 'derived.id' " "could not find table 'base' with which to generate " "a foreign key to target column 'id'", - mapper, + self.mapper, Derived, derived_table, inherits=Base, @@ -3129,14 +3222,15 @@ class InhCondTest(fixtures.TestBase): class Derived(Base): pass - mapper(Base, base_table) + clear_mappers() + self.mapper_registry.map_imperatively(Base, base_table) assert_raises_message( sa_exc.NoReferencedColumnError, "Could not initialize target column for ForeignKey " "'base.q' on table " "'derived': table 'base' has no column named 'q'", - mapper, + self.mapper, Derived, derived_table, inherits=Base, @@ -3177,19 +3271,21 @@ class PKDiscriminatorTest(fixtures.MappedTest): class A(Child): pass - mapper( + self.mapper_registry.map_imperatively( Parent, parents, properties={"children": relationship(Child, backref="parent")}, ) - mapper( + self.mapper_registry.map_imperatively( Child, children, polymorphic_on=children.c.type, polymorphic_identity=1, ) - mapper(A, inherits=Child, polymorphic_identity=2) + self.mapper_registry.map_imperatively( + A, inherits=Child, polymorphic_identity=2 + ) s = fixture_session() p = Parent("p1") @@ -3250,11 +3346,19 @@ class NoPolyIdentInMiddleTest(fixtures.MappedTest): cls.tables.base, ) - mapper(A, base, polymorphic_on=base.c.type) - mapper(B, inherits=A) - mapper(C, inherits=B, polymorphic_identity="c") - mapper(D, inherits=B, polymorphic_identity="d") - mapper(E, inherits=A, polymorphic_identity="e") + cls.mapper_registry.map_imperatively( + A, base, polymorphic_on=base.c.type + ) + cls.mapper_registry.map_imperatively(B, inherits=A) + cls.mapper_registry.map_imperatively( + C, inherits=B, polymorphic_identity="c" + ) + cls.mapper_registry.map_imperatively( + D, inherits=B, polymorphic_identity="d" + ) + cls.mapper_registry.map_imperatively( + E, inherits=A, polymorphic_identity="e" + ) def test_load_from_middle(self): C, B = self.classes.C, self.classes.B @@ -3338,14 +3442,16 @@ class DeleteOrphanTest(fixtures.MappedTest): class Parent(fixtures.BasicEntity): pass - mapper( + self.mapper_registry.map_imperatively( Base, single, polymorphic_on=single.c.type, polymorphic_identity="base", ) - mapper(SubClass, inherits=Base, polymorphic_identity="sub") - mapper( + self.mapper_registry.map_imperatively( + SubClass, inherits=Base, polymorphic_identity="sub" + ) + self.mapper_registry.map_imperatively( Parent, parent, properties={ @@ -3632,12 +3738,12 @@ class NameConflictTest(fixtures.MappedTest): class Foo(Content): pass - mapper( + self.mapper_registry.map_imperatively( Content, self.tables.content, polymorphic_on=self.tables.content.c.type, ) - mapper( + self.mapper_registry.map_imperatively( Foo, self.tables.foo, inherits=Content, polymorphic_identity="foo" ) sess = fixture_session() diff --git a/test/orm/inheritance/test_concrete.py b/test/orm/inheritance/test_concrete.py index de0c72f68f..63a1705817 100644 --- a/test/orm/inheritance/test_concrete.py +++ b/test/orm/inheritance/test_concrete.py @@ -8,7 +8,6 @@ from sqlalchemy.orm import class_mapper from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import configure_mappers from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import polymorphic_union from sqlalchemy.orm import relationship from sqlalchemy.testing import assert_raises @@ -149,15 +148,17 @@ class ConcreteTest(fixtures.MappedTest): "type", "pjoin", ) - employee_mapper = mapper(Employee, pjoin, polymorphic_on=pjoin.c.type) - mapper( + employee_mapper = self.mapper_registry.map_imperatively( + Employee, pjoin, polymorphic_on=pjoin.c.type + ) + self.mapper_registry.map_imperatively( Manager, managers_table, inherits=employee_mapper, concrete=True, polymorphic_identity="manager", ) - mapper( + self.mapper_registry.map_imperatively( Engineer, engineers_table, inherits=employee_mapper, @@ -200,15 +201,17 @@ class ConcreteTest(fixtures.MappedTest): "type", "pjoin2", ) - employee_mapper = mapper(Employee, pjoin, polymorphic_on=pjoin.c.type) - mapper( + employee_mapper = self.mapper_registry.map_imperatively( + Employee, pjoin, polymorphic_on=pjoin.c.type + ) + self.mapper_registry.map_imperatively( Manager, managers_table, inherits=employee_mapper, concrete=True, polymorphic_identity="manager", ) - engineer_mapper = mapper( + engineer_mapper = self.mapper_registry.map_imperatively( Engineer, engineers_table, with_polymorphic=("*", pjoin2), @@ -217,7 +220,7 @@ class ConcreteTest(fixtures.MappedTest): concrete=True, polymorphic_identity="engineer", ) - mapper( + self.mapper_registry.map_imperatively( Hacker, hackers_table, inherits=engineer_mapper, @@ -331,15 +334,17 @@ class ConcreteTest(fixtures.MappedTest): test_calls.engineer_info_class() return cls.manager_data - employee_mapper = mapper(Employee, pjoin, polymorphic_on=pjoin.c.type) - mapper( + employee_mapper = self.mapper_registry.map_imperatively( + Employee, pjoin, polymorphic_on=pjoin.c.type + ) + self.mapper_registry.map_imperatively( ManagerWHybrid, managers_table, inherits=employee_mapper, concrete=True, polymorphic_identity="manager", ) - mapper( + self.mapper_registry.map_imperatively( Engineer, engineers_table, inherits=employee_mapper, @@ -392,20 +397,20 @@ class ConcreteTest(fixtures.MappedTest): "type", "pjoin2", ) - employee_mapper = mapper( + employee_mapper = self.mapper_registry.map_imperatively( Employee, employees_table, with_polymorphic=("*", pjoin), polymorphic_on=pjoin.c.type, ) - mapper( + self.mapper_registry.map_imperatively( Manager, managers_table, inherits=employee_mapper, concrete=True, polymorphic_identity="manager", ) - engineer_mapper = mapper( + engineer_mapper = self.mapper_registry.map_imperatively( Engineer, engineers_table, with_polymorphic=("*", pjoin2), @@ -414,7 +419,7 @@ class ConcreteTest(fixtures.MappedTest): concrete=True, polymorphic_identity="engineer", ) - mapper( + self.mapper_registry.map_imperatively( Hacker, hackers_table, inherits=engineer_mapper, @@ -484,24 +489,24 @@ class ConcreteTest(fixtures.MappedTest): "type", "pjoin2", ) - employee_mapper = mapper( + employee_mapper = self.mapper_registry.map_imperatively( Employee, employees_table, polymorphic_identity="employee" ) - mapper( + self.mapper_registry.map_imperatively( Manager, managers_table, inherits=employee_mapper, concrete=True, polymorphic_identity="manager", ) - engineer_mapper = mapper( + engineer_mapper = self.mapper_registry.map_imperatively( Engineer, engineers_table, inherits=employee_mapper, concrete=True, polymorphic_identity="engineer", ) - mapper( + self.mapper_registry.map_imperatively( Hacker, hackers_table, inherits=engineer_mapper, @@ -613,20 +618,22 @@ class ConcreteTest(fixtures.MappedTest): "type", "pjoin", ) - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={"employees": relationship(Employee)}, ) - employee_mapper = mapper(Employee, pjoin, polymorphic_on=pjoin.c.type) - mapper( + employee_mapper = self.mapper_registry.map_imperatively( + Employee, pjoin, polymorphic_on=pjoin.c.type + ) + self.mapper_registry.map_imperatively( Manager, managers_table, inherits=employee_mapper, concrete=True, polymorphic_identity="manager", ) - mapper( + self.mapper_registry.map_imperatively( Engineer, engineers_table, inherits=employee_mapper, @@ -732,24 +739,36 @@ class PropertyInheritanceTest(fixtures.MappedTest): self.tables.dest_table, ) - mapper(A, a_table, properties={"some_dest": relationship(Dest)}) - mapper(B, b_table, inherits=A, concrete=True) - mapper(Dest, dest_table) + self.mapper_registry.map_imperatively( + A, a_table, properties={"some_dest": relationship(Dest)} + ) + self.mapper_registry.map_imperatively( + B, b_table, inherits=A, concrete=True + ) + self.mapper_registry.map_imperatively(Dest, dest_table) b = B() dest = Dest() assert_raises(AttributeError, setattr, b, "some_dest", dest) clear_mappers() - mapper(A, a_table, properties={"a_id": a_table.c.id}) - mapper(B, b_table, inherits=A, concrete=True) - mapper(Dest, dest_table) + self.mapper_registry.map_imperatively( + A, a_table, properties={"a_id": a_table.c.id} + ) + self.mapper_registry.map_imperatively( + B, b_table, inherits=A, concrete=True + ) + self.mapper_registry.map_imperatively(Dest, dest_table) b = B() assert_raises(AttributeError, setattr, b, "a_id", 3) clear_mappers() - mapper(A, a_table, properties={"a_id": a_table.c.id}) - mapper(B, b_table, inherits=A, concrete=True) - mapper(Dest, dest_table) + self.mapper_registry.map_imperatively( + A, a_table, properties={"a_id": a_table.c.id} + ) + self.mapper_registry.map_imperatively( + B, b_table, inherits=A, concrete=True + ) + self.mapper_registry.map_imperatively(Dest, dest_table) def test_inheriting(self): A, B, b_table, a_table, Dest, dest_table = ( @@ -761,14 +780,14 @@ class PropertyInheritanceTest(fixtures.MappedTest): self.tables.dest_table, ) - mapper( + self.mapper_registry.map_imperatively( A, a_table, properties={ "some_dest": relationship(Dest, back_populates="many_a") }, ) - mapper( + self.mapper_registry.map_imperatively( B, b_table, inherits=A, @@ -778,7 +797,7 @@ class PropertyInheritanceTest(fixtures.MappedTest): }, ) - mapper( + self.mapper_registry.map_imperatively( Dest, dest_table, properties={ @@ -817,9 +836,11 @@ class PropertyInheritanceTest(fixtures.MappedTest): ) # test issue #3630, no error or warning is generated - mapper(A, a_table) - mapper(B, b_table, inherits=A, concrete=True) - mapper( + self.mapper_registry.map_imperatively(A, a_table) + self.mapper_registry.map_imperatively( + B, b_table, inherits=A, concrete=True + ) + self.mapper_registry.map_imperatively( Dest, dest_table, properties={ @@ -841,17 +862,17 @@ class PropertyInheritanceTest(fixtures.MappedTest): # this is the opposite mapping as that of #3630, never generated # an error / warning - mapper( + self.mapper_registry.map_imperatively( A, a_table, properties={"dest": relationship(Dest, backref="a")} ) - mapper( + self.mapper_registry.map_imperatively( B, b_table, inherits=A, concrete=True, properties={"dest": relationship(Dest, backref="a1")}, ) - mapper(Dest, dest_table) + self.mapper_registry.map_imperatively(Dest, dest_table) configure_mappers() def test_polymorphic_backref(self): @@ -872,7 +893,7 @@ class PropertyInheritanceTest(fixtures.MappedTest): ajoin = polymorphic_union( {"a": a_table, "b": b_table, "c": c_table}, "type", "ajoin" ) - mapper( + self.mapper_registry.map_imperatively( A, a_table, with_polymorphic=("*", ajoin), @@ -882,7 +903,7 @@ class PropertyInheritanceTest(fixtures.MappedTest): "some_dest": relationship(Dest, back_populates="many_a") }, ) - mapper( + self.mapper_registry.map_imperatively( B, b_table, inherits=A, @@ -893,7 +914,7 @@ class PropertyInheritanceTest(fixtures.MappedTest): }, ) - mapper( + self.mapper_registry.map_imperatively( C, c_table, inherits=A, @@ -904,7 +925,7 @@ class PropertyInheritanceTest(fixtures.MappedTest): }, ) - mapper( + self.mapper_registry.map_imperatively( Dest, dest_table, properties={ @@ -973,7 +994,7 @@ class PropertyInheritanceTest(fixtures.MappedTest): ajoin = polymorphic_union( {"a": a_table, "b": b_table, "c": c_table}, "type", "ajoin" ) - mapper( + self.mapper_registry.map_imperatively( A, a_table, with_polymorphic=("*", ajoin), @@ -983,7 +1004,7 @@ class PropertyInheritanceTest(fixtures.MappedTest): "some_dest": relationship(Dest, back_populates="many_a") }, ) - mapper( + self.mapper_registry.map_imperatively( B, b_table, inherits=A, @@ -994,7 +1015,7 @@ class PropertyInheritanceTest(fixtures.MappedTest): }, ) - mapper( + self.mapper_registry.map_imperatively( C, c_table, inherits=A, @@ -1005,7 +1026,7 @@ class PropertyInheritanceTest(fixtures.MappedTest): }, ) - mapper( + self.mapper_registry.map_imperatively( Dest, dest_table, properties={ @@ -1106,7 +1127,7 @@ class ManyToManyTest(fixtures.MappedTest): self.classes.Sub, ) - mapper( + self.mapper_registry.map_imperatively( Base, base, properties={ @@ -1118,7 +1139,7 @@ class ManyToManyTest(fixtures.MappedTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Sub, sub, inherits=Base, @@ -1132,7 +1153,7 @@ class ManyToManyTest(fixtures.MappedTest): ) }, ) - mapper(Related, related) + self.mapper_registry.map_imperatively(Related, related) sess = fixture_session() b1, s1, r1, r2, r3 = Base(), Sub(), Related(), Related(), Related() b1.related.append(r1) @@ -1205,20 +1226,20 @@ class ColKeysTest(fixtures.MappedTest): class Office(Location): pass - location_mapper = mapper( + location_mapper = self.mapper_registry.map_imperatively( Location, pjoin, polymorphic_on=pjoin.c.type, polymorphic_identity="location", ) - mapper( + self.mapper_registry.map_imperatively( Office, offices_table, inherits=location_mapper, concrete=True, polymorphic_identity="office", ) - mapper( + self.mapper_registry.map_imperatively( Refugee, refugees_table, inherits=location_mapper, diff --git a/test/orm/inheritance/test_magazine.py b/test/orm/inheritance/test_magazine.py index 7f347e40f9..f692b5f86c 100644 --- a/test/orm/inheritance/test_magazine.py +++ b/test/orm/inheritance/test_magazine.py @@ -7,7 +7,6 @@ from sqlalchemy import String from sqlalchemy import testing from sqlalchemy import Text from sqlalchemy.orm import backref -from sqlalchemy.orm import mapper from sqlalchemy.orm import polymorphic_union from sqlalchemy.orm import relationship from sqlalchemy.testing import eq_ @@ -196,9 +195,11 @@ class MagazineTest(fixtures.MappedTest): "MagazinePage", "ClassifiedPage", ) - mapper(Publication, self.tables.publication) + self.mapper_registry.map_imperatively( + Publication, self.tables.publication + ) - mapper( + self.mapper_registry.map_imperatively( Issue, self.tables.issue, properties={ @@ -209,9 +210,11 @@ class MagazineTest(fixtures.MappedTest): }, ) - mapper(LocationName, self.tables.location_name) + self.mapper_registry.map_imperatively( + LocationName, self.tables.location_name + ) - mapper( + self.mapper_registry.map_imperatively( Location, self.tables.location, properties={ @@ -227,9 +230,9 @@ class MagazineTest(fixtures.MappedTest): }, ) - mapper(PageSize, self.tables.page_size) + self.mapper_registry.map_imperatively(PageSize, self.tables.page_size) - mapper( + self.mapper_registry.map_imperatively( Magazine, self.tables.magazine, properties={ @@ -254,7 +257,7 @@ class MagazineTest(fixtures.MappedTest): None, "page_join", ) - page_mapper = mapper( + page_mapper = self.mapper_registry.map_imperatively( Page, self.tables.page, with_polymorphic=("*", page_join), @@ -265,7 +268,7 @@ class MagazineTest(fixtures.MappedTest): page_join = self.tables.page.outerjoin( self.tables.magazine_page ).outerjoin(self.tables.classified_page) - page_mapper = mapper( + page_mapper = self.mapper_registry.map_imperatively( Page, self.tables.page, with_polymorphic=("*", page_join), @@ -273,7 +276,7 @@ class MagazineTest(fixtures.MappedTest): polymorphic_identity="p", ) else: - page_mapper = mapper( + page_mapper = self.mapper_registry.map_imperatively( Page, self.tables.page, polymorphic_on=self.tables.page.c.type, @@ -291,7 +294,7 @@ class MagazineTest(fixtures.MappedTest): None, "page_join", ) - magazine_page_mapper = mapper( + magazine_page_mapper = self.mapper_registry.map_imperatively( MagazinePage, self.tables.magazine_page, with_polymorphic=("*", magazine_join), @@ -310,7 +313,7 @@ class MagazineTest(fixtures.MappedTest): magazine_join = self.tables.page.join( self.tables.magazine_page ).outerjoin(self.tables.classified_page) - magazine_page_mapper = mapper( + magazine_page_mapper = self.mapper_registry.map_imperatively( MagazinePage, self.tables.magazine_page, with_polymorphic=("*", magazine_join), @@ -326,7 +329,7 @@ class MagazineTest(fixtures.MappedTest): }, ) else: - magazine_page_mapper = mapper( + magazine_page_mapper = self.mapper_registry.map_imperatively( MagazinePage, self.tables.magazine_page, inherits=page_mapper, @@ -341,7 +344,7 @@ class MagazineTest(fixtures.MappedTest): }, ) - mapper( + self.mapper_registry.map_imperatively( ClassifiedPage, self.tables.classified_page, inherits=magazine_page_mapper, diff --git a/test/orm/inheritance/test_manytomany.py b/test/orm/inheritance/test_manytomany.py index f790b11ac2..60acab87d6 100644 --- a/test/orm/inheritance/test_manytomany.py +++ b/test/orm/inheritance/test_manytomany.py @@ -5,7 +5,6 @@ from sqlalchemy import Sequence from sqlalchemy import String from sqlalchemy import Table from sqlalchemy.orm import class_mapper -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import eq_ from sqlalchemy.testing import fixtures @@ -88,10 +87,10 @@ class InheritTest(fixtures.MappedTest): class Group(Principal): pass - mapper(Principal, principals) - mapper(User, users, inherits=Principal) + self.mapper_registry.map_imperatively(Principal, principals) + self.mapper_registry.map_imperatively(User, users, inherits=Principal) - mapper( + self.mapper_registry.map_imperatively( Group, groups, inherits=Principal, @@ -159,8 +158,8 @@ class InheritTest2(fixtures.MappedTest): class Bar(Foo): pass - mapper(Foo, foo) - mapper(Bar, bar, inherits=Foo) + self.mapper_registry.map_imperatively(Foo, foo) + self.mapper_registry.map_imperatively(Bar, bar, inherits=Foo) print(foo.join(bar).primary_key) print(class_mapper(Bar).primary_key) b = Bar("somedata") @@ -178,12 +177,12 @@ class InheritTest2(fixtures.MappedTest): def __init__(self, data=None): self.data = data - mapper(Foo, foo) + self.mapper_registry.map_imperatively(Foo, foo) class Bar(Foo): pass - mapper( + self.mapper_registry.map_imperatively( Bar, bar, inherits=Foo, @@ -289,13 +288,13 @@ class InheritTest3(fixtures.MappedTest): def __repr__(self): return "Foo id %d, data %s" % (self.id, self.data) - mapper(Foo, foo) + self.mapper_registry.map_imperatively(Foo, foo) class Bar(Foo): def __repr__(self): return "Bar id %d, data %s" % (self.id, self.data) - mapper( + self.mapper_registry.map_imperatively( Bar, bar, inherits=Foo, @@ -325,13 +324,13 @@ class InheritTest3(fixtures.MappedTest): def __repr__(self): return "Foo id %d, data %s" % (self.id, self.data) - mapper(Foo, foo) + self.mapper_registry.map_imperatively(Foo, foo) class Bar(Foo): def __repr__(self): return "Bar id %d, data %s" % (self.id, self.data) - mapper(Bar, bar, inherits=Foo) + self.mapper_registry.map_imperatively(Bar, bar, inherits=Foo) class Blub(Bar): def __repr__(self): @@ -342,7 +341,7 @@ class InheritTest3(fixtures.MappedTest): repr([f for f in self.foos]), ) - mapper( + self.mapper_registry.map_imperatively( Blub, blub, inherits=Bar, diff --git a/test/orm/inheritance/test_poly_linked_list.py b/test/orm/inheritance/test_poly_linked_list.py index d5305c4730..ef3466ddf7 100644 --- a/test/orm/inheritance/test_poly_linked_list.py +++ b/test/orm/inheritance/test_poly_linked_list.py @@ -5,7 +5,6 @@ from sqlalchemy import testing from sqlalchemy.orm import backref from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import configure_mappers -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import fixtures from sqlalchemy.testing.fixtures import fixture_session @@ -18,8 +17,7 @@ class PolymorphicCircularTest(fixtures.MappedTest): @classmethod def define_tables(cls, metadata): - global Table1, Table1B, Table2, Table3, Data - table1 = Table( + Table( "table1", metadata, Column( @@ -32,19 +30,19 @@ class PolymorphicCircularTest(fixtures.MappedTest): Column("name", String(30)), ) - table2 = Table( + Table( "table2", metadata, Column("id", Integer, ForeignKey("table1.id"), primary_key=True), ) - table3 = Table( + Table( "table3", metadata, Column("id", Integer, ForeignKey("table1.id"), primary_key=True), ) - data = Table( + Table( "data", metadata, Column( @@ -54,6 +52,12 @@ class PolymorphicCircularTest(fixtures.MappedTest): Column("data", String(30)), ) + @classmethod + def setup_mappers(cls): + global Table1, Table1B, Table2, Table3, Data + table1, table2, table3, data = cls.tables( + "table1", "table2", "table3", "data" + ) # join = polymorphic_union( # { # 'table3' : table1.join(table3), @@ -104,7 +108,7 @@ class PolymorphicCircularTest(fixtures.MappedTest): try: # this is how the mapping used to work. ensure that this raises an # error now - table1_mapper = mapper( + table1_mapper = cls.mapper_registry.map_imperatively( Table1, table1, select_table=join, @@ -119,7 +123,9 @@ class PolymorphicCircularTest(fixtures.MappedTest): uselist=False, primaryjoin=join.c.id == join.c.related_id, ), - "data": relationship(mapper(Data, data)), + "data": relationship( + cls.mapper_registry.map_imperatively(Data, data) + ), }, ) configure_mappers() @@ -137,7 +143,7 @@ class PolymorphicCircularTest(fixtures.MappedTest): # gets an exception instead of it silently not eager loading. # NOTE: using "nxt" instead of "next" to avoid 2to3 turning it into # __next__() for some reason. - table1_mapper = mapper( + table1_mapper = cls.mapper_registry.map_imperatively( Table1, table1, # select_table=join, @@ -153,21 +159,25 @@ class PolymorphicCircularTest(fixtures.MappedTest): primaryjoin=table1.c.id == table1.c.related_id, ), "data": relationship( - mapper(Data, data), lazy="joined", order_by=data.c.id + cls.mapper_registry.map_imperatively(Data, data), + lazy="joined", + order_by=data.c.id, ), }, ) - mapper(Table1B, inherits=table1_mapper, polymorphic_identity="table1b") + cls.mapper_registry.map_imperatively( + Table1B, inherits=table1_mapper, polymorphic_identity="table1b" + ) - mapper( + cls.mapper_registry.map_imperatively( Table2, table2, inherits=table1_mapper, polymorphic_identity="table2", ) - mapper( + cls.mapper_registry.map_imperatively( Table3, table3, inherits=table1_mapper, diff --git a/test/orm/inheritance/test_poly_persistence.py b/test/orm/inheritance/test_poly_persistence.py index c33f3e0de0..8c03a40d64 100644 --- a/test/orm/inheritance/test_poly_persistence.py +++ b/test/orm/inheritance/test_poly_persistence.py @@ -6,7 +6,6 @@ from sqlalchemy import Integer from sqlalchemy import String from sqlalchemy import Table from sqlalchemy import testing -from sqlalchemy.orm import mapper from sqlalchemy.orm import polymorphic_union from sqlalchemy.orm import relationship from sqlalchemy.orm import Session @@ -131,7 +130,7 @@ class InsertOrderTest(PolymorphTest): "pjoin", ) - person_mapper = mapper( + person_mapper = self.mapper_registry.map_imperatively( Person, people, with_polymorphic=("*", person_join), @@ -139,19 +138,19 @@ class InsertOrderTest(PolymorphTest): polymorphic_identity="person", ) - mapper( + self.mapper_registry.map_imperatively( Engineer, engineers, inherits=person_mapper, polymorphic_identity="engineer", ) - mapper( + self.mapper_registry.map_imperatively( Manager, managers, inherits=person_mapper, polymorphic_identity="manager", ) - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={ @@ -272,7 +271,7 @@ class RoundTripTest(PolymorphTest): manager_with_polymorphic = None if redefine_colprop: - person_mapper = mapper( + person_mapper = cls.mapper_registry.map_imperatively( Person, people, with_polymorphic=person_with_polymorphic, @@ -281,7 +280,7 @@ class RoundTripTest(PolymorphTest): properties={"person_name": people.c.name}, ) else: - person_mapper = mapper( + person_mapper = cls.mapper_registry.map_imperatively( Person, people, with_polymorphic=person_with_polymorphic, @@ -289,13 +288,13 @@ class RoundTripTest(PolymorphTest): polymorphic_identity="person", ) - mapper( + cls.mapper_registry.map_imperatively( Engineer, engineers, inherits=person_mapper, polymorphic_identity="engineer", ) - mapper( + cls.mapper_registry.map_imperatively( Manager, managers, inherits=person_mapper, @@ -303,9 +302,11 @@ class RoundTripTest(PolymorphTest): polymorphic_identity="manager", ) - mapper(Boss, boss, inherits=Manager, polymorphic_identity="boss") + cls.mapper_registry.map_imperatively( + Boss, boss, inherits=Manager, polymorphic_identity="boss" + ) - mapper( + cls.mapper_registry.map_imperatively( Company, companies, properties={ diff --git a/test/orm/inheritance/test_productspec.py b/test/orm/inheritance/test_productspec.py index e940cb0f42..cede0cbb5b 100644 --- a/test/orm/inheritance/test_productspec.py +++ b/test/orm/inheritance/test_productspec.py @@ -8,7 +8,6 @@ from sqlalchemy import LargeBinary from sqlalchemy import String from sqlalchemy.orm import backref from sqlalchemy.orm import deferred -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import fixtures from sqlalchemy.testing.fixtures import fixture_session @@ -136,20 +135,22 @@ class InheritTest(fixtures.MappedTest): pass def test_one(self): - product_mapper = mapper( + product_mapper = self.mapper_registry.map_imperatively( Product, products_table, polymorphic_on=products_table.c.product_type, polymorphic_identity="product", ) - mapper(Detail, inherits=product_mapper, polymorphic_identity="detail") + self.mapper_registry.map_imperatively( + Detail, inherits=product_mapper, polymorphic_identity="detail" + ) - mapper( + self.mapper_registry.map_imperatively( Assembly, inherits=product_mapper, polymorphic_identity="assembly" ) - mapper( + self.mapper_registry.map_imperatively( SpecLine, specification_table, properties=dict( @@ -199,16 +200,18 @@ class InheritTest(fixtures.MappedTest): ) def test_two(self): - product_mapper = mapper( + product_mapper = self.mapper_registry.map_imperatively( Product, products_table, polymorphic_on=products_table.c.product_type, polymorphic_identity="product", ) - mapper(Detail, inherits=product_mapper, polymorphic_identity="detail") + self.mapper_registry.map_imperatively( + Detail, inherits=product_mapper, polymorphic_identity="detail" + ) - mapper( + self.mapper_registry.map_imperatively( SpecLine, specification_table, properties=dict( @@ -241,18 +244,20 @@ class InheritTest(fixtures.MappedTest): ) def test_three(self): - product_mapper = mapper( + product_mapper = self.mapper_registry.map_imperatively( Product, products_table, polymorphic_on=products_table.c.product_type, polymorphic_identity="product", ) - mapper(Detail, inherits=product_mapper, polymorphic_identity="detail") - mapper( + self.mapper_registry.map_imperatively( + Detail, inherits=product_mapper, polymorphic_identity="detail" + ) + self.mapper_registry.map_imperatively( Assembly, inherits=product_mapper, polymorphic_identity="assembly" ) - mapper( + self.mapper_registry.map_imperatively( SpecLine, specification_table, properties=dict( @@ -279,7 +284,7 @@ class InheritTest(fixtures.MappedTest): ), ) - document_mapper = mapper( + document_mapper = self.mapper_registry.map_imperatively( Document, documents_table, polymorphic_on=documents_table.c.document_type, @@ -294,7 +299,7 @@ class InheritTest(fixtures.MappedTest): ), ), ) - mapper( + self.mapper_registry.map_imperatively( RasterDocument, inherits=document_mapper, polymorphic_identity="raster_document", @@ -327,18 +332,20 @@ class InheritTest(fixtures.MappedTest): corresponding to an inheriting mapper but not the base mapper, is created.""" - product_mapper = mapper( + product_mapper = self.mapper_registry.map_imperatively( Product, products_table, polymorphic_on=products_table.c.product_type, polymorphic_identity="product", ) - mapper(Detail, inherits=product_mapper, polymorphic_identity="detail") - mapper( + self.mapper_registry.map_imperatively( + Detail, inherits=product_mapper, polymorphic_identity="detail" + ) + self.mapper_registry.map_imperatively( Assembly, inherits=product_mapper, polymorphic_identity="assembly" ) - document_mapper = mapper( + document_mapper = self.mapper_registry.map_imperatively( Document, documents_table, polymorphic_on=documents_table.c.document_type, @@ -353,7 +360,7 @@ class InheritTest(fixtures.MappedTest): ), ), ) - mapper( + self.mapper_registry.map_imperatively( RasterDocument, inherits=document_mapper, polymorphic_identity="raster_document", @@ -387,7 +394,7 @@ class InheritTest(fixtures.MappedTest): def test_five(self): """tests the late compilation of mappers""" - mapper( + self.mapper_registry.map_imperatively( SpecLine, specification_table, properties=dict( @@ -412,7 +419,7 @@ class InheritTest(fixtures.MappedTest): ), ) - mapper( + self.mapper_registry.map_imperatively( Product, products_table, polymorphic_on=products_table.c.product_type, @@ -427,9 +434,11 @@ class InheritTest(fixtures.MappedTest): }, ) - mapper(Detail, inherits=Product, polymorphic_identity="detail") + self.mapper_registry.map_imperatively( + Detail, inherits=Product, polymorphic_identity="detail" + ) - mapper( + self.mapper_registry.map_imperatively( Document, documents_table, polymorphic_on=documents_table.c.document_type, @@ -440,13 +449,15 @@ class InheritTest(fixtures.MappedTest): ), ) - mapper( + self.mapper_registry.map_imperatively( RasterDocument, inherits=Document, polymorphic_identity="raster_document", ) - mapper(Assembly, inherits=Product, polymorphic_identity="assembly") + self.mapper_registry.map_imperatively( + Assembly, inherits=Product, polymorphic_identity="assembly" + ) session = fixture_session() diff --git a/test/orm/inheritance/test_relationship.py b/test/orm/inheritance/test_relationship.py index 164b13f2e3..e795f0c7ff 100644 --- a/test/orm/inheritance/test_relationship.py +++ b/test/orm/inheritance/test_relationship.py @@ -10,7 +10,6 @@ from sqlalchemy.orm import backref from sqlalchemy.orm import configure_mappers from sqlalchemy.orm import contains_eager from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import selectinload from sqlalchemy.orm import Session @@ -99,14 +98,14 @@ class SelfReferentialTestJoinedToBase(fixtures.MappedTest): def setup_mappers(cls): engineers, people = cls.tables.engineers, cls.tables.people - mapper( + cls.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c.type, polymorphic_identity="person", ) - mapper( + cls.mapper_registry.map_imperatively( Engineer, engineers, inherits=Person, @@ -221,18 +220,18 @@ class SelfReferentialJ2JTest(fixtures.MappedTest): managers = cls.tables.managers people = cls.tables.people - mapper( + cls.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c.type, polymorphic_identity="person", ) - mapper( + cls.mapper_registry.map_imperatively( Manager, managers, inherits=Person, polymorphic_identity="manager" ) - mapper( + cls.mapper_registry.map_imperatively( Engineer, engineers, inherits=Person, @@ -442,14 +441,14 @@ class SelfReferentialJ2JSelfTest(fixtures.MappedTest): engineers = cls.tables.engineers people = cls.tables.people - mapper( + cls.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c.type, polymorphic_identity="person", ) - mapper( + cls.mapper_registry.map_imperatively( Engineer, engineers, inherits=Person, @@ -615,7 +614,7 @@ class M2MFilterTest(fixtures.MappedTest): class Organization(cls.Comparable): pass - mapper( + cls.mapper_registry.map_imperatively( Organization, organizations, properties={ @@ -627,14 +626,14 @@ class M2MFilterTest(fixtures.MappedTest): }, ) - mapper( + cls.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c.type, polymorphic_identity="person", ) - mapper( + cls.mapper_registry.map_imperatively( Engineer, engineers, inherits=Person, @@ -755,9 +754,11 @@ class SelfReferentialM2MTest(fixtures.MappedTest, AssertsCompiledSQL): Child2 = cls.classes.Child2 secondary = cls.tables.secondary - mapper(Parent, parent, polymorphic_on=parent.c.cls) + cls.mapper_registry.map_imperatively( + Parent, parent, polymorphic_on=parent.c.cls + ) - mapper( + cls.mapper_registry.map_imperatively( Child1, child1, inherits=Parent, @@ -774,7 +775,9 @@ class SelfReferentialM2MTest(fixtures.MappedTest, AssertsCompiledSQL): }, ) - mapper(Child2, child2, inherits=Parent, polymorphic_identity="child2") + cls.mapper_registry.map_imperatively( + Child2, child2, inherits=Parent, polymorphic_identity="child2" + ) def test_query_crit(self): Child1, Child2 = self.classes.Child1, self.classes.Child2 @@ -1044,13 +1047,13 @@ class EagerToSubclassTest(fixtures.MappedTest): related = cls.tables.related Related = cls.classes.Related - mapper( + cls.mapper_registry.map_imperatively( Parent, parent, properties={"children": relationship(Sub, order_by=sub.c.data)}, ) - mapper( + cls.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.type, @@ -1058,9 +1061,11 @@ class EagerToSubclassTest(fixtures.MappedTest): properties={"related": relationship(Related)}, ) - mapper(Sub, sub, inherits=Base, polymorphic_identity="s") + cls.mapper_registry.map_imperatively( + Sub, sub, inherits=Base, polymorphic_identity="s" + ) - mapper(Related, related) + cls.mapper_registry.map_imperatively(Related, related) @classmethod def insert_data(cls, connection): @@ -1220,14 +1225,14 @@ class SubClassEagerToSubClassTest(fixtures.MappedTest): subparent = cls.tables.subparent Subparent = cls.classes.Subparent - mapper( + cls.mapper_registry.map_imperatively( Parent, parent, polymorphic_on=parent.c.type, polymorphic_identity="b", ) - mapper( + cls.mapper_registry.map_imperatively( Subparent, subparent, inherits=Parent, @@ -1235,11 +1240,13 @@ class SubClassEagerToSubClassTest(fixtures.MappedTest): properties={"children": relationship(Sub, order_by=base.c.id)}, ) - mapper( + cls.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.type, polymorphic_identity="b" ) - mapper(Sub, sub, inherits=Base, polymorphic_identity="s") + cls.mapper_registry.map_imperatively( + Sub, sub, inherits=Base, polymorphic_identity="s" + ) @classmethod def insert_data(cls, connection): @@ -1411,22 +1418,24 @@ class SameNamedPropTwoPolymorphicSubClassesTest(fixtures.MappedTest): C = cls.classes.C D = cls.classes.D - mapper(A, cls.tables.a, polymorphic_on=cls.tables.a.c.type) - mapper( + cls.mapper_registry.map_imperatively( + A, cls.tables.a, polymorphic_on=cls.tables.a.c.type + ) + cls.mapper_registry.map_imperatively( B, cls.tables.b, inherits=A, polymorphic_identity="b", properties={"related": relationship(D, secondary=cls.tables.btod)}, ) - mapper( + cls.mapper_registry.map_imperatively( C, cls.tables.c, inherits=A, polymorphic_identity="c", properties={"related": relationship(D, secondary=cls.tables.ctod)}, ) - mapper(D, cls.tables.d) + cls.mapper_registry.map_imperatively(D, cls.tables.d) @classmethod def insert_data(cls, connection): @@ -1576,15 +1585,15 @@ class SubClassToSubClassFromParentTest(fixtures.MappedTest): B = cls.classes.B D = cls.classes.D - mapper(Z, cls.tables.z) - mapper( + cls.mapper_registry.map_imperatively(Z, cls.tables.z) + cls.mapper_registry.map_imperatively( A, cls.tables.a, polymorphic_on=cls.tables.a.c.type, with_polymorphic="*", properties={"zs": relationship(Z, lazy="subquery")}, ) - mapper( + cls.mapper_registry.map_imperatively( B, cls.tables.b, inherits=A, @@ -1597,7 +1606,9 @@ class SubClassToSubClassFromParentTest(fixtures.MappedTest): ) }, ) - mapper(D, cls.tables.d, inherits=A, polymorphic_identity="d") + cls.mapper_registry.map_imperatively( + D, cls.tables.d, inherits=A, polymorphic_identity="d" + ) @classmethod def insert_data(cls, connection): @@ -1733,21 +1744,25 @@ class SubClassToSubClassMultiTest(AssertsCompiledSQL, fixtures.MappedTest): def setup_mappers(cls): Parent, Base1, Base2, Sub1, Sub2, EP1, EP2 = cls._classes() - mapper( + cls.mapper_registry.map_imperatively( Parent, cls.tables.parent, properties={"sub1": relationship(Sub1)} ) - mapper( + cls.mapper_registry.map_imperatively( Base1, cls.tables.base1, properties={"sub2": relationship(Sub2)} ) - mapper(Sub1, cls.tables.sub1, inherits=Base1) - mapper( + cls.mapper_registry.map_imperatively( + Sub1, cls.tables.sub1, inherits=Base1 + ) + cls.mapper_registry.map_imperatively( Base2, cls.tables.base2, properties={"ep1": relationship(EP1), "ep2": relationship(EP2)}, ) - mapper(Sub2, cls.tables.sub2, inherits=Base2) - mapper(EP1, cls.tables.ep1) - mapper(EP2, cls.tables.ep2) + cls.mapper_registry.map_imperatively( + Sub2, cls.tables.sub2, inherits=Base2 + ) + cls.mapper_registry.map_imperatively(EP1, cls.tables.ep1) + cls.mapper_registry.map_imperatively(EP2, cls.tables.ep2) def test_one(self): Parent, Base1, Base2, Sub1, Sub2, EP1, EP2 = self._classes() @@ -2742,10 +2757,10 @@ class MultipleAdaptUsesEntityOverTableTest( def setup_mappers(cls): A, B, C, D = cls.classes.A, cls.classes.B, cls.classes.C, cls.classes.D a, b, c, d = cls.tables.a, cls.tables.b, cls.tables.c, cls.tables.d - mapper(A, a) - mapper(B, b, inherits=A) - mapper(C, c, inherits=A) - mapper(D, d, inherits=A) + cls.mapper_registry.map_imperatively(A, a) + cls.mapper_registry.map_imperatively(B, b, inherits=A) + cls.mapper_registry.map_imperatively(C, c, inherits=A) + cls.mapper_registry.map_imperatively(D, d, inherits=A) def _two_join_fixture(self): B, C, D = (self.classes.B, self.classes.C, self.classes.D) @@ -2845,7 +2860,7 @@ class SameNameOnJoined(fixtures.MappedTest): class B(cls.Comparable): pass - mapper( + cls.mapper_registry.map_imperatively( A, cls.tables.a, polymorphic_on=cls.tables.a.c.t, @@ -2853,7 +2868,7 @@ class SameNameOnJoined(fixtures.MappedTest): properties={"bs": relationship(B, cascade="all, delete-orphan")}, ) - mapper( + cls.mapper_registry.map_imperatively( ASub, cls.tables.a_sub, inherits=A, @@ -2861,7 +2876,7 @@ class SameNameOnJoined(fixtures.MappedTest): properties={"bs": relationship(B, cascade="all, delete-orphan")}, ) - mapper(B, cls.tables.b) + cls.mapper_registry.map_imperatively(B, cls.tables.b) def test_persist(self): A, ASub, B = self.classes("A", "ASub", "B") diff --git a/test/orm/inheritance/test_selects.py b/test/orm/inheritance/test_selects.py index 4f6c4a8bd4..47827e8887 100644 --- a/test/orm/inheritance/test_selects.py +++ b/test/orm/inheritance/test_selects.py @@ -2,7 +2,6 @@ from sqlalchemy import ForeignKey from sqlalchemy import Integer from sqlalchemy import select from sqlalchemy import String -from sqlalchemy.orm import mapper from sqlalchemy.orm import Session from sqlalchemy.testing import eq_ from sqlalchemy.testing import fixtures @@ -41,9 +40,9 @@ class InheritingSelectablesTest(fixtures.MappedTest): class Baz(Foo): pass - mapper(Foo, foo, polymorphic_on=foo.c.b) + self.mapper_registry.map_imperatively(Foo, foo, polymorphic_on=foo.c.b) - mapper( + self.mapper_registry.map_imperatively( Baz, baz, with_polymorphic=( @@ -56,7 +55,7 @@ class InheritingSelectablesTest(fixtures.MappedTest): polymorphic_identity="baz", ) - mapper( + self.mapper_registry.map_imperatively( Bar, bar, with_polymorphic=( @@ -110,13 +109,15 @@ class JoinFromSelectPersistenceTest(fixtures.MappedTest): base, child = self.tables.base, self.tables.child base_select = select(base).alias() - mapper( + self.mapper_registry.map_imperatively( Base, base_select, polymorphic_on=base_select.c.type, polymorphic_identity="base", ) - mapper(Child, child, inherits=Base, polymorphic_identity="child") + self.mapper_registry.map_imperatively( + Child, child, inherits=Base, polymorphic_identity="child" + ) sess = fixture_session() diff --git a/test/orm/inheritance/test_single.py b/test/orm/inheritance/test_single.py index 1976dab060..a3230f91d8 100644 --- a/test/orm/inheritance/test_single.py +++ b/test/orm/inheritance/test_single.py @@ -14,7 +14,6 @@ from sqlalchemy import util from sqlalchemy.orm import aliased from sqlalchemy.orm import Bundle from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.orm import subqueryload @@ -108,10 +107,10 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest): cls.classes.Engineer, ) - mapper( + cls.mapper_registry.map_imperatively( Report, reports, properties={"employee": relationship(Employee)} ) - mapper( + cls.mapper_registry.map_imperatively( Employee, employees, polymorphic_on=employees.c.type, @@ -119,9 +118,13 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest): "reports": relationship(Report, back_populates="employee") }, ) - mapper(Manager, inherits=Employee, polymorphic_identity="manager") - mapper(Engineer, inherits=Employee, polymorphic_identity="engineer") - mapper( + cls.mapper_registry.map_imperatively( + Manager, inherits=Employee, polymorphic_identity="manager" + ) + cls.mapper_registry.map_imperatively( + Engineer, inherits=Employee, polymorphic_identity="engineer" + ) + cls.mapper_registry.map_imperatively( JuniorEngineer, inherits=Engineer, polymorphic_identity="juniorengineer", @@ -713,19 +716,19 @@ class RelationshipFromSingleTest( cls.classes.Manager, ) - mapper( + cls.mapper_registry.map_imperatively( Employee, employee, polymorphic_on=employee.c.type, polymorphic_identity="employee", ) - mapper( + cls.mapper_registry.map_imperatively( Manager, inherits=Employee, polymorphic_identity="manager", properties={"stuff": relationship(Stuff)}, ) - mapper(Stuff, employee_stuff) + cls.mapper_registry.map_imperatively(Stuff, employee_stuff) @classmethod def setup_classes(cls): @@ -857,17 +860,23 @@ class RelationshipToSingleTest( self.classes.Engineer, ) - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={ "employees": relationship(Employee, backref="company") }, ) - mapper(Employee, employees, polymorphic_on=employees.c.type) - mapper(Manager, inherits=Employee, polymorphic_identity="manager") - mapper(Engineer, inherits=Employee, polymorphic_identity="engineer") - mapper( + self.mapper_registry.map_imperatively( + Employee, employees, polymorphic_on=employees.c.type + ) + self.mapper_registry.map_imperatively( + Manager, inherits=Employee, polymorphic_identity="manager" + ) + self.mapper_registry.map_imperatively( + Engineer, inherits=Employee, polymorphic_identity="engineer" + ) + self.mapper_registry.map_imperatively( JuniorEngineer, inherits=Engineer, polymorphic_identity="juniorengineer", @@ -908,11 +917,15 @@ class RelationshipToSingleTest( ) companies, employees = self.tables.companies, self.tables.employees - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={"employee": relationship(Employee)} ) - mapper(Employee, employees, polymorphic_on=employees.c.type) - mapper(Engineer, inherits=Employee, polymorphic_identity="engineer") + self.mapper_registry.map_imperatively( + Employee, employees, polymorphic_on=employees.c.type + ) + self.mapper_registry.map_imperatively( + Engineer, inherits=Employee, polymorphic_identity="engineer" + ) sess = fixture_session() self.assert_compile( @@ -937,13 +950,13 @@ class RelationshipToSingleTest( ) companies, employees = self.tables.companies, self.tables.employees - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={"employees": relationship(Employee)}, ) - mapper(Employee, employees) - mapper(Engineer, inherits=Employee) + self.mapper_registry.map_imperatively(Employee, employees) + self.mapper_registry.map_imperatively(Engineer, inherits=Employee) sess = fixture_session() self.assert_compile( @@ -965,13 +978,17 @@ class RelationshipToSingleTest( ) companies, employees = self.tables.companies, self.tables.employees - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={"engineers": relationship(Engineer)}, ) - mapper(Employee, employees, polymorphic_on=employees.c.type) - mapper(Engineer, inherits=Employee, polymorphic_identity="engineer") + self.mapper_registry.map_imperatively( + Employee, employees, polymorphic_on=employees.c.type + ) + self.mapper_registry.map_imperatively( + Engineer, inherits=Employee, polymorphic_identity="engineer" + ) sess = fixture_session() self.assert_compile( @@ -992,13 +1009,17 @@ class RelationshipToSingleTest( ) companies, employees = self.tables.companies, self.tables.employees - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={"engineers": relationship(Engineer)}, ) - mapper(Employee, employees, polymorphic_on=employees.c.type) - mapper(Engineer, inherits=Employee, polymorphic_identity="engineer") + self.mapper_registry.map_imperatively( + Employee, employees, polymorphic_on=employees.c.type + ) + self.mapper_registry.map_imperatively( + Engineer, inherits=Employee, polymorphic_identity="engineer" + ) eng_alias = aliased(Engineer) sess = fixture_session() @@ -1022,13 +1043,17 @@ class RelationshipToSingleTest( ) companies, employees = self.tables.companies, self.tables.employees - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={"engineers": relationship(Engineer)}, ) - mapper(Employee, employees, polymorphic_on=employees.c.type) - mapper(Engineer, inherits=Employee, polymorphic_identity="engineer") + self.mapper_registry.map_imperatively( + Employee, employees, polymorphic_on=employees.c.type + ) + self.mapper_registry.map_imperatively( + Engineer, inherits=Employee, polymorphic_identity="engineer" + ) sess = fixture_session() self.assert_compile( @@ -1056,13 +1081,17 @@ class RelationshipToSingleTest( ) companies, employees = self.tables.companies, self.tables.employees - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={"engineers": relationship(Engineer)}, ) - mapper(Employee, employees, polymorphic_on=employees.c.type) - mapper(Engineer, inherits=Employee, polymorphic_identity="engineer") + self.mapper_registry.map_imperatively( + Employee, employees, polymorphic_on=employees.c.type + ) + self.mapper_registry.map_imperatively( + Engineer, inherits=Employee, polymorphic_identity="engineer" + ) eng_alias = aliased(Engineer) sess = fixture_session() @@ -1091,13 +1120,17 @@ class RelationshipToSingleTest( ) companies, employees = self.tables.companies, self.tables.employees - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={"engineers": relationship(Engineer)}, ) - mapper(Employee, employees, polymorphic_on=employees.c.type) - mapper(Engineer, inherits=Employee, polymorphic_identity="engineer") + self.mapper_registry.map_imperatively( + Employee, employees, polymorphic_on=employees.c.type + ) + self.mapper_registry.map_imperatively( + Engineer, inherits=Employee, polymorphic_identity="engineer" + ) sess = fixture_session() self.assert_compile( @@ -1123,13 +1156,17 @@ class RelationshipToSingleTest( ) companies, employees = self.tables.companies, self.tables.employees - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={"engineers": relationship(Engineer)}, ) - mapper(Employee, employees, polymorphic_on=employees.c.type) - mapper(Engineer, inherits=Employee, polymorphic_identity="engineer") + self.mapper_registry.map_imperatively( + Employee, employees, polymorphic_on=employees.c.type + ) + self.mapper_registry.map_imperatively( + Engineer, inherits=Employee, polymorphic_identity="engineer" + ) eng_alias = aliased(Engineer) sess = fixture_session() @@ -1156,14 +1193,16 @@ class RelationshipToSingleTest( ) companies, employees = self.tables.companies, self.tables.employees - mapper(Company, companies) - mapper( + self.mapper_registry.map_imperatively(Company, companies) + self.mapper_registry.map_imperatively( Employee, employees, polymorphic_on=employees.c.type, properties={"company": relationship(Company)}, ) - mapper(Engineer, inherits=Employee, polymorphic_identity="engineer") + self.mapper_registry.map_imperatively( + Engineer, inherits=Employee, polymorphic_identity="engineer" + ) sess = fixture_session() engineer_count = ( @@ -1196,16 +1235,22 @@ class RelationshipToSingleTest( companies, employees = self.tables.companies, self.tables.employees - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={ "employees": relationship(Employee, backref="company") }, ) - mapper(Employee, employees, polymorphic_on=employees.c.type) - mapper(Engineer, inherits=Employee, polymorphic_identity="engineer") - mapper(Manager, inherits=Employee, polymorphic_identity="manager") + self.mapper_registry.map_imperatively( + Employee, employees, polymorphic_on=employees.c.type + ) + self.mapper_registry.map_imperatively( + Engineer, inherits=Employee, polymorphic_identity="engineer" + ) + self.mapper_registry.map_imperatively( + Manager, inherits=Employee, polymorphic_identity="manager" + ) s = fixture_session() @@ -1279,22 +1324,26 @@ class RelationshipToSingleTest( self.classes.Engineer, ) - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={ "engineers": relationship(Engineer, back_populates="company") }, ) - mapper( + self.mapper_registry.map_imperatively( Employee, employees, polymorphic_on=employees.c.type, properties={"company": relationship(Company)}, ) - mapper(Manager, inherits=Employee, polymorphic_identity="manager") - mapper(Engineer, inherits=Employee, polymorphic_identity="engineer") - mapper( + self.mapper_registry.map_imperatively( + Manager, inherits=Employee, polymorphic_identity="manager" + ) + self.mapper_registry.map_imperatively( + Engineer, inherits=Employee, polymorphic_identity="engineer" + ) + self.mapper_registry.map_imperatively( JuniorEngineer, inherits=Engineer, polymorphic_identity="juniorengineer", @@ -1446,7 +1495,7 @@ class ManyToManyToSingleTest(fixtures.MappedTest, AssertsCompiledSQL): @classmethod def setup_mappers(cls): - mapper( + cls.mapper_registry.map_imperatively( cls.classes.Parent, cls.tables.parent, properties={ @@ -1460,17 +1509,17 @@ class ManyToManyToSingleTest(fixtures.MappedTest, AssertsCompiledSQL): ), }, ) - mapper( + cls.mapper_registry.map_imperatively( cls.classes.Child, cls.tables.child, polymorphic_on=cls.tables.child.c.discriminator, ) - mapper( + cls.mapper_registry.map_imperatively( cls.classes.SubChild1, inherits=cls.classes.Child, polymorphic_identity="sub1", ) - mapper( + cls.mapper_registry.map_imperatively( cls.classes.SubChild2, inherits=cls.classes.Child, polymorphic_identity="sub2", @@ -1587,19 +1636,21 @@ class SingleOnJoinedTest(fixtures.MappedTest): class Manager(Employee): pass - mapper( + self.mapper_registry.map_imperatively( Person, persons_table, polymorphic_on=persons_table.c.type, polymorphic_identity="person", ) - mapper( + self.mapper_registry.map_imperatively( Employee, employees_table, inherits=Person, polymorphic_identity="engineer", ) - mapper(Manager, inherits=Employee, polymorphic_identity="manager") + self.mapper_registry.map_imperatively( + Manager, inherits=Employee, polymorphic_identity="manager" + ) sess = fixture_session() sess.add(Person(name="p1")) diff --git a/test/orm/test_association.py b/test/orm/test_association.py index 30e6f3541f..baf48a016c 100644 --- a/test/orm/test_association.py +++ b/test/orm/test_association.py @@ -3,7 +3,6 @@ from sqlalchemy import func from sqlalchemy import Integer from sqlalchemy import select from sqlalchemy import String -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import eq_ from sqlalchemy.testing import fixtures @@ -92,15 +91,15 @@ class AssociationTest(fixtures.MappedTest): "items", "item_keywords", "keywords" ) - mapper(Keyword, keywords) - mapper( + cls.mapper_registry.map_imperatively(Keyword, keywords) + cls.mapper_registry.map_imperatively( KeywordAssociation, item_keywords, properties={"keyword": relationship(Keyword, lazy="joined")}, primary_key=[item_keywords.c.item_id, item_keywords.c.keyword_id], ) - mapper( + cls.mapper_registry.map_imperatively( Item, items, properties={ diff --git a/test/orm/test_assorted_eager.py b/test/orm/test_assorted_eager.py index 8667307e4e..6f983e0ed1 100644 --- a/test/orm/test_assorted_eager.py +++ b/test/orm/test_assorted_eager.py @@ -15,7 +15,6 @@ from sqlalchemy import String from sqlalchemy import testing from sqlalchemy import text from sqlalchemy.orm import backref -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.testing import eq_ @@ -112,11 +111,11 @@ class EagerTest(fixtures.MappedTest): cls.tables.categories, ) - mapper(Owner, owners) + cls.mapper_registry.map_imperatively(Owner, owners) - mapper(Category, categories) + cls.mapper_registry.map_imperatively(Category, categories) - mapper( + cls.mapper_registry.map_imperatively( Option, options, properties=dict( @@ -125,7 +124,7 @@ class EagerTest(fixtures.MappedTest): ), ) - mapper( + cls.mapper_registry.map_imperatively( Thing, tests, properties=dict( @@ -396,9 +395,9 @@ class EagerTest2(fixtures.MappedTest): ) # set up bi-directional eager loads - mapper(Left, left) - mapper(Right, right) - mapper( + cls.mapper_registry.map_imperatively(Left, left) + cls.mapper_registry.map_imperatively(Right, right) + cls.mapper_registry.map_imperatively( Middle, middle, properties=dict( @@ -495,8 +494,8 @@ class EagerTest3(fixtures.MappedTest): self.tables.datas, ) - mapper(Data, datas) - mapper( + self.mapper_registry.map_imperatively(Data, datas) + self.mapper_registry.map_imperatively( Foo, foo, properties={ @@ -506,7 +505,9 @@ class EagerTest3(fixtures.MappedTest): }, ) - mapper(Stat, stats, properties={"data": relationship(Data)}) + self.mapper_registry.map_imperatively( + Stat, stats, properties={"data": relationship(Data)} + ) session = fixture_session() @@ -613,8 +614,8 @@ class EagerTest4(fixtures.MappedTest): self.tables.departments, ) - mapper(Employee, employees) - mapper( + self.mapper_registry.map_imperatively(Employee, employees) + self.mapper_registry.map_imperatively( Department, departments, properties=dict( @@ -734,9 +735,9 @@ class EagerTest5(fixtures.MappedTest): self.tables.derivedII, ) - mapper(Comment, comments) + self.mapper_registry.map_imperatively(Comment, comments) - baseMapper = mapper( + baseMapper = self.mapper_registry.map_imperatively( Base, base, properties=dict( @@ -746,9 +747,13 @@ class EagerTest5(fixtures.MappedTest): ), ) - mapper(Derived, derived, inherits=baseMapper) + self.mapper_registry.map_imperatively( + Derived, derived, inherits=baseMapper + ) - mapper(DerivedII, derivedII, inherits=baseMapper) + self.mapper_registry.map_imperatively( + DerivedII, derivedII, inherits=baseMapper + ) sess = fixture_session() d = Derived("uid1", "x", "y") @@ -873,15 +878,15 @@ class EagerTest6(fixtures.MappedTest): self.classes.InheritedPart, ) - p_m = mapper(Part, parts) + p_m = self.mapper_registry.map_imperatively(Part, parts) - mapper( + self.mapper_registry.map_imperatively( InheritedPart, inherited_part, properties=dict(part=relationship(Part, lazy="joined")), ) - d_m = mapper( + d_m = self.mapper_registry.map_imperatively( Design, design, properties=dict( @@ -893,7 +898,7 @@ class EagerTest6(fixtures.MappedTest): ), ) - mapper(DesignType, design_types) + self.mapper_registry.map_imperatively(DesignType, design_types) d_m.add_property( "type", relationship(DesignType, lazy="joined", backref="designs") @@ -1004,15 +1009,15 @@ class EagerTest7(fixtures.MappedTest): self.classes.Address, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) - mapper( + self.mapper_registry.map_imperatively( Company, companies, properties={"addresses": relationship(Address, lazy="joined")}, ) - mapper( + self.mapper_registry.map_imperatively( Invoice, invoices, properties={"company": relationship(Company, lazy="joined")}, @@ -1148,7 +1153,7 @@ class EagerTest8(fixtures.MappedTest): # concerning corresponding_column() being extremely accurate # as well as how mapper sets up its column properties - mapper(Task_Type, task_type) + self.mapper_registry.map_imperatively(Task_Type, task_type) j = sa.outerjoin(task, msg, task.c.id == msg.c.task_id) jj = ( @@ -1162,7 +1167,7 @@ class EagerTest8(fixtures.MappedTest): ) jjj = sa.join(task, jj, task.c.id == jj.c.task_id) - mapper( + self.mapper_registry.map_imperatively( Joined, jjj, properties=dict(type=relationship(Task_Type, lazy="joined")), @@ -1255,11 +1260,11 @@ class EagerTest9(fixtures.MappedTest): cls.classes.Entry, ) - mapper(Account, accounts) + cls.mapper_registry.map_imperatively(Account, accounts) - mapper(Transaction, transactions) + cls.mapper_registry.map_imperatively(Transaction, transactions) - mapper( + cls.mapper_registry.map_imperatively( Entry, entries, properties=dict( diff --git a/test/orm/test_backref_mutations.py b/test/orm/test_backref_mutations.py index ab31058a5b..fd5d908cf5 100644 --- a/test/orm/test_backref_mutations.py +++ b/test/orm/test_backref_mutations.py @@ -13,7 +13,6 @@ from sqlalchemy import testing from sqlalchemy import text from sqlalchemy.orm import attributes from sqlalchemy.orm import backref -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.testing import eq_ @@ -34,8 +33,8 @@ class O2MCollectionTest(_fixtures.FixtureTest): cls.classes.User, ) - mapper(Address, addresses) - mapper( + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively( User, users, properties=dict(addresses=relationship(Address, backref="user")), @@ -397,8 +396,8 @@ class O2OScalarBackrefMoveTest(_fixtures.FixtureTest): cls.classes.User, ) - mapper(Address, addresses) - mapper( + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -596,8 +595,8 @@ class O2OScalarMoveTest(_fixtures.FixtureTest): cls.classes.User, ) - mapper(Address, addresses) - mapper( + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -648,8 +647,8 @@ class O2OScalarOrphanTest(_fixtures.FixtureTest): cls.classes.User, ) - mapper(Address, addresses) - mapper( + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -697,7 +696,7 @@ class M2MCollectionMoveTest(_fixtures.FixtureTest): cls.classes.Item, ) - mapper( + cls.mapper_registry.map_imperatively( Item, items, properties={ @@ -706,7 +705,7 @@ class M2MCollectionMoveTest(_fixtures.FixtureTest): ) }, ) - mapper(Keyword, keywords) + cls.mapper_registry.map_imperatively(Keyword, keywords) def test_add_remove_pending_backref(self): """test that pending doesn't add an item that's not a net add.""" @@ -834,7 +833,7 @@ class M2MScalarMoveTest(_fixtures.FixtureTest): cls.classes.Item, ) - mapper( + cls.mapper_registry.map_imperatively( Item, items, properties={ @@ -846,7 +845,7 @@ class M2MScalarMoveTest(_fixtures.FixtureTest): ) }, ) - mapper(Keyword, keywords) + cls.mapper_registry.map_imperatively(Keyword, keywords) def test_collection_move_preloaded(self): Item, Keyword = self.classes.Item, self.classes.Keyword @@ -926,8 +925,8 @@ class O2MStaleBackrefTest(_fixtures.FixtureTest): cls.classes.User, ) - mapper(Address, addresses) - mapper( + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively( User, users, properties=dict(addresses=relationship(Address, backref="user")), @@ -962,7 +961,7 @@ class M2MStaleBackrefTest(_fixtures.FixtureTest): cls.classes.Item, ) - mapper( + cls.mapper_registry.map_imperatively( Item, items, properties={ @@ -971,7 +970,7 @@ class M2MStaleBackrefTest(_fixtures.FixtureTest): ) }, ) - mapper(Keyword, keywords) + cls.mapper_registry.map_imperatively(Keyword, keywords) def test_backref_pop_m2m(self): Keyword, Item = self.classes.Keyword, self.classes.Item diff --git a/test/orm/test_bind.py b/test/orm/test_bind.py index f584f22aea..3df5a27177 100644 --- a/test/orm/test_bind.py +++ b/test/orm/test_bind.py @@ -12,7 +12,6 @@ from sqlalchemy import true from sqlalchemy import update from sqlalchemy.orm import aliased from sqlalchemy.orm import backref -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.orm import sessionmaker @@ -46,8 +45,8 @@ class BindIntegrationTest(_fixtures.FixtureTest): users_unbound = users.to_metadata(m2) addresses_unbound = addresses.to_metadata(m2) - mapper(Address, addresses_unbound) - mapper( + self.mapper_registry.map_imperatively(Address, addresses_unbound) + self.mapper_registry.map_imperatively( User, users_unbound, properties={ @@ -103,8 +102,8 @@ class BindIntegrationTest(_fixtures.FixtureTest): users_unbound = users.to_metadata(m2) addresses_unbound = addresses.to_metadata(m2) - mapper(Address, addresses_unbound) - mapper( + self.mapper_registry.map_imperatively(Address, addresses_unbound) + self.mapper_registry.map_imperatively( User, users_unbound, properties={ @@ -155,7 +154,7 @@ class BindIntegrationTest(_fixtures.FixtureTest): def test_bind_from_metadata(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) session = fixture_session() @@ -261,8 +260,10 @@ class BindIntegrationTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) e1 = engines.testing_engine() e2 = engines.testing_engine() @@ -333,8 +334,10 @@ class BindIntegrationTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) e1 = engines.testing_engine() e2 = engines.testing_engine() @@ -397,7 +400,9 @@ class BindIntegrationTest(_fixtures.FixtureTest): testing.db, ) - mapper(self.classes.User, self.tables.users) + self.mapper_registry.map_imperatively( + self.classes.User, self.tables.users + ) u_object = self.classes.User() assert_raises_message( @@ -412,7 +417,7 @@ class BindIntegrationTest(_fixtures.FixtureTest): def test_bound_connection(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) c = testing.db.connect() sess = Session(bind=c) sess.begin() @@ -440,7 +445,7 @@ class BindIntegrationTest(_fixtures.FixtureTest): def test_bound_connection_transactional(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with testing.db.connect() as c: sess = Session(bind=c, autocommit=False) @@ -508,7 +513,7 @@ class SessionBindTest(fixtures.MappedTest): test_table.to_metadata(meta) assert meta.tables["test_table"].bind is None - mapper(Foo, meta.tables["test_table"]) + cls.mapper_registry.map_imperatively(Foo, meta.tables["test_table"]) def test_session_bind(self): Foo = self.classes.Foo @@ -580,14 +585,18 @@ class GetBindTest(fixtures.MappedTest): @classmethod def setup_mappers(cls): - mapper(cls.classes.ClassWMixin, cls.tables.w_mixin_table) - mapper(cls.classes.BaseClass, cls.tables.base_table) - mapper( + cls.mapper_registry.map_imperatively( + cls.classes.ClassWMixin, cls.tables.w_mixin_table + ) + cls.mapper_registry.map_imperatively( + cls.classes.BaseClass, cls.tables.base_table + ) + cls.mapper_registry.map_imperatively( cls.classes.JoinedSubClass, cls.tables.joined_sub_table, inherits=cls.classes.BaseClass, ) - mapper( + cls.mapper_registry.map_imperatively( cls.classes.ConcreteSubClass, cls.tables.concrete_sub_table, inherits=cls.classes.BaseClass, diff --git a/test/orm/test_bulk.py b/test/orm/test_bulk.py index 7e47507c00..b69d8263a6 100644 --- a/test/orm/test_bulk.py +++ b/test/orm/test_bulk.py @@ -3,7 +3,6 @@ from sqlalchemy import ForeignKey from sqlalchemy import Integer from sqlalchemy import String from sqlalchemy import testing -from sqlalchemy.orm import mapper from sqlalchemy.testing import eq_ from sqlalchemy.testing import fixtures from sqlalchemy.testing import mock @@ -42,7 +41,9 @@ class BulkInsertUpdateVersionId(BulkTest, fixtures.MappedTest): def setup_mappers(cls): Foo, version_table = cls.classes.Foo, cls.tables.version_table - mapper(Foo, version_table, version_id_col=version_table.c.version_id) + cls.mapper_registry.map_imperatively( + Foo, version_table, version_id_col=version_table.c.version_id + ) @testing.emits_warning(r".*versioning cannot be verified") def test_bulk_insert_via_save(self): @@ -77,9 +78,9 @@ class BulkInsertUpdateTest(BulkTest, _fixtures.FixtureTest): User, Address, Order = cls.classes("User", "Address", "Order") u, a, o = cls.tables("users", "addresses", "orders") - mapper(User, u) - mapper(Address, a) - mapper(Order, o) + cls.mapper_registry.map_imperatively(User, u) + cls.mapper_registry.map_imperatively(Address, a) + cls.mapper_registry.map_imperatively(Order, o) def test_bulk_save_return_defaults(self): (User,) = self.classes("User") @@ -329,7 +330,7 @@ class BulkUDPostfetchTest(BulkTest, fixtures.MappedTest): A = cls.classes.A a = cls.tables.a - mapper(A, a) + cls.mapper_registry.map_imperatively(A, a) def test_insert_w_fetch(self): A = self.classes.A @@ -402,8 +403,8 @@ class BulkUDTestAltColKeys(BulkTest, fixtures.MappedTest): "people_keys", "people_attrs", "people_both" ) - mapper(PersonKeys, people_keys) - mapper( + cls.mapper_registry.map_imperatively(PersonKeys, people_keys) + cls.mapper_registry.map_imperatively( PersonAttrs, people_attrs, properties={ @@ -412,7 +413,7 @@ class BulkUDTestAltColKeys(BulkTest, fixtures.MappedTest): }, ) - mapper( + cls.mapper_registry.map_imperatively( PersonBoth, people_both, properties={ @@ -623,12 +624,18 @@ class BulkInheritanceTest(BulkTest, fixtures.MappedTest): ) p, e, m, b = cls.tables("people", "engineers", "managers", "boss") - mapper( + cls.mapper_registry.map_imperatively( Person, p, polymorphic_on=p.c.type, polymorphic_identity="person" ) - mapper(Engineer, e, inherits=Person, polymorphic_identity="engineer") - mapper(Manager, m, inherits=Person, polymorphic_identity="manager") - mapper(Boss, b, inherits=Manager, polymorphic_identity="boss") + cls.mapper_registry.map_imperatively( + Engineer, e, inherits=Person, polymorphic_identity="engineer" + ) + cls.mapper_registry.map_imperatively( + Manager, m, inherits=Person, polymorphic_identity="manager" + ) + cls.mapper_registry.map_imperatively( + Boss, b, inherits=Manager, polymorphic_identity="boss" + ) def test_bulk_save_joined_inh_return_defaults(self): Person, Engineer, Manager, Boss = self.classes( diff --git a/test/orm/test_bundle.py b/test/orm/test_bundle.py index db4267fc39..92c4c19c28 100644 --- a/test/orm/test_bundle.py +++ b/test/orm/test_bundle.py @@ -8,7 +8,6 @@ from sqlalchemy import testing from sqlalchemy import tuple_ from sqlalchemy.orm import aliased from sqlalchemy.orm import Bundle -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.sql.elements import ClauseList @@ -61,12 +60,14 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL): @classmethod def setup_mappers(cls): - mapper( + cls.mapper_registry.map_imperatively( cls.classes.Data, cls.tables.data, properties={"others": relationship(cls.classes.Other)}, ) - mapper(cls.classes.Other, cls.tables.other) + cls.mapper_registry.map_imperatively( + cls.classes.Other, cls.tables.other + ) @classmethod def insert_data(cls, connection): diff --git a/test/orm/test_cache_key.py b/test/orm/test_cache_key.py index fd808278b2..3c6536195a 100644 --- a/test/orm/test_cache_key.py +++ b/test/orm/test_cache_key.py @@ -16,7 +16,6 @@ from sqlalchemy.orm import joinedload from sqlalchemy.orm import lazyload from sqlalchemy.orm import Load from sqlalchemy.orm import load_only -from sqlalchemy.orm import mapper from sqlalchemy.orm import Query from sqlalchemy.orm import relationship from sqlalchemy.orm import selectinload @@ -716,7 +715,7 @@ class RoundTripTest(QueryTest, AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -726,7 +725,7 @@ class RoundTripTest(QueryTest, AssertsCompiledSQL): }, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ diff --git a/test/orm/test_cascade.py b/test/orm/test_cascade.py index 9a37d8d127..3e42368df2 100644 --- a/test/orm/test_cascade.py +++ b/test/orm/test_cascade.py @@ -14,7 +14,6 @@ from sqlalchemy.orm import class_mapper from sqlalchemy.orm import configure_mappers from sqlalchemy.orm import exc as orm_exc from sqlalchemy.orm import foreign -from sqlalchemy.orm import mapper from sqlalchemy.orm import object_mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session @@ -72,7 +71,7 @@ class CascadeArgTest(fixtures.MappedTest): User, Address = self.classes.User, self.classes.Address users, addresses = self.tables.users, self.tables.addresses - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -83,7 +82,7 @@ class CascadeArgTest(fixtures.MappedTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) assert_raises_message( sa_exc.ArgumentError, "On User.addresses, can't set passive_deletes='all' " @@ -105,7 +104,7 @@ class CascadeArgTest(fixtures.MappedTest): def test_bad_cascade(self): addresses, Address = self.tables.addresses, self.classes.Address - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) assert_raises_message( sa_exc.ArgumentError, r"Invalid cascade option\(s\): 'fake', 'fake2'", @@ -140,8 +139,10 @@ class CascadeArgTest(fixtures.MappedTest): rel.cascade = "save-update, merge, expunge" eq_(rel.cascade, set(["save-update", "merge", "expunge"])) - mapper(User, users, properties={"addresses": rel}) - am = mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": rel} + ) + am = self.mapper_registry.map_imperatively(Address, addresses) configure_mappers() eq_(rel.cascade, set(["save-update", "merge", "expunge"])) @@ -249,9 +250,9 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest): cls.tables.addresses, ) - mapper(Address, addresses) - mapper(Order, orders) - mapper( + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively(Order, orders) + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -264,7 +265,7 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest): }, ) - mapper( + cls.mapper_registry.map_imperatively( Dingaling, dingalings, properties={"address": relationship(Address)}, @@ -704,8 +705,8 @@ class O2MCascadeTest(fixtures.MappedTest): cls.tables.addresses, ) - mapper(Address, addresses) - mapper( + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, @@ -780,11 +781,14 @@ class O2MCascadeDeleteNoOrphanTest(fixtures.MappedTest): cls.tables.users, ) - mapper( + cls.mapper_registry.map_imperatively( User, users, properties=dict( - orders=relationship(mapper(Order, orders), cascade="all") + orders=relationship( + cls.mapper_registry.map_imperatively(Order, orders), + cascade="all", + ) ), ) @@ -848,8 +852,8 @@ class O2OSingleParentTest(_fixtures.FixtureTest): cls.classes.User, ) - mapper(Address, addresses) - mapper( + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -916,8 +920,8 @@ class O2OSingleParentNoFlushTest(fixtures.MappedTest): cls.classes.User, ) - mapper(Address, addresses) - mapper( + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -1120,8 +1124,12 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest): addresses_rel = {} user_rel = {} - mapper(User, users, properties=addresses_rel) - mapper(Address, addresses, properties=user_rel) + self.mapper_registry.map_imperatively( + User, users, properties=addresses_rel + ) + self.mapper_registry.map_imperatively( + Address, addresses, properties=user_rel + ) def _many_to_many_fixture( self, @@ -1181,8 +1189,12 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest): keywords_rel = {} items_rel = {} - mapper(Item, items, properties=keywords_rel) - mapper(Keyword, keywords, properties=items_rel) + self.mapper_registry.map_imperatively( + Item, items, properties=keywords_rel + ) + self.mapper_registry.map_imperatively( + Keyword, keywords, properties=items_rel + ) def test_o2m_only_child_pending(self): User, Address = self.classes.User, self.classes.Address @@ -1649,8 +1661,8 @@ class NoSaveCascadeBackrefTest(_fixtures.FixtureTest): self.tables.orders, ) - mapper(Order, orders) - mapper( + self.mapper_registry.map_imperatively(Order, orders) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -1684,7 +1696,7 @@ class NoSaveCascadeBackrefTest(_fixtures.FixtureTest): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -1693,7 +1705,7 @@ class NoSaveCascadeBackrefTest(_fixtures.FixtureTest): ) }, ) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -1722,7 +1734,7 @@ class NoSaveCascadeBackrefTest(_fixtures.FixtureTest): self.classes.Item, ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties={ @@ -1734,7 +1746,7 @@ class NoSaveCascadeBackrefTest(_fixtures.FixtureTest): ) }, ) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) sess = fixture_session() @@ -1832,14 +1844,14 @@ class M2OCascadeDeleteOrphanTestOne(fixtures.MappedTest): cls.classes.Foo, ) - mapper(Extra, extra) - mapper( + cls.mapper_registry.map_imperatively(Extra, extra) + cls.mapper_registry.map_imperatively( Pref, prefs, properties=dict(extra=relationship(Extra, cascade="all, delete")), ) - mapper( + cls.mapper_registry.map_imperatively( User, users, properties=dict( @@ -1858,7 +1870,7 @@ class M2OCascadeDeleteOrphanTestOne(fixtures.MappedTest): ), ), ) # straight m2o - mapper(Foo, foo) + cls.mapper_registry.map_imperatively(Foo, foo) @classmethod def insert_data(cls, connection): @@ -2066,7 +2078,7 @@ class M2OCascadeDeleteOrphanTestTwo(fixtures.MappedTest): cls.classes.T1, ) - mapper( + cls.mapper_registry.map_imperatively( T1, t1, properties=dict( @@ -2075,7 +2087,7 @@ class M2OCascadeDeleteOrphanTestTwo(fixtures.MappedTest): ) ), ) - mapper( + cls.mapper_registry.map_imperatively( T2, t2, properties=dict( @@ -2087,7 +2099,7 @@ class M2OCascadeDeleteOrphanTestTwo(fixtures.MappedTest): ) ), ) - mapper(T3, t3) + cls.mapper_registry.map_imperatively(T3, t3) def test_cascade_delete(self): T2, T3, T1 = (self.classes.T2, self.classes.T3, self.classes.T1) @@ -2226,9 +2238,13 @@ class M2OCascadeDeleteNoOrphanTest(fixtures.MappedTest): cls.classes.T1, ) - mapper(T1, t1, properties={"t2": relationship(T2, cascade="all")}) - mapper(T2, t2, properties={"t3": relationship(T3, cascade="all")}) - mapper(T3, t3) + cls.mapper_registry.map_imperatively( + T1, t1, properties={"t2": relationship(T2, cascade="all")} + ) + cls.mapper_registry.map_imperatively( + T2, t2, properties={"t3": relationship(T3, cascade="all")} + ) + cls.mapper_registry.map_imperatively(T3, t3) def test_cascade_delete(self): T2, T3, T1 = (self.classes.T2, self.classes.T3, self.classes.T1) @@ -2387,7 +2403,7 @@ class M2MCascadeTest(fixtures.MappedTest): # if no backref here, delete-orphan failed until [ticket:427] # was fixed - mapper( + self.mapper_registry.map_imperatively( A, a, properties={ @@ -2399,7 +2415,7 @@ class M2MCascadeTest(fixtures.MappedTest): ) }, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) sess = fixture_session() b1 = B(data="b1") @@ -2424,7 +2440,7 @@ class M2MCascadeTest(fixtures.MappedTest): self.tables.atob, ) - mapper( + self.mapper_registry.map_imperatively( A, a, # if no backref here, delete-orphan @@ -2439,7 +2455,7 @@ class M2MCascadeTest(fixtures.MappedTest): }, ) # failed until [ticket:427] was fixed - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) sess = fixture_session() b1 = B(data="b1") @@ -2466,7 +2482,7 @@ class M2MCascadeTest(fixtures.MappedTest): self.tables.atob, ) - mapper( + self.mapper_registry.map_imperatively( A, a, properties={ @@ -2480,12 +2496,12 @@ class M2MCascadeTest(fixtures.MappedTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( B, b, properties={"cs": relationship(C, cascade="all, delete-orphan")}, ) - mapper(C, c) + self.mapper_registry.map_imperatively(C, c) sess = fixture_session() b1 = B(data="b1", cs=[C(data="c1")]) @@ -2511,7 +2527,7 @@ class M2MCascadeTest(fixtures.MappedTest): self.tables.atob, ) - mapper( + self.mapper_registry.map_imperatively( A, a, properties={ @@ -2523,7 +2539,7 @@ class M2MCascadeTest(fixtures.MappedTest): ) }, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) sess = fixture_session() a1 = A(data="a1", bs=[B(data="b1")]) @@ -2547,7 +2563,7 @@ class M2MCascadeTest(fixtures.MappedTest): self.tables.atob, ) - mapper( + self.mapper_registry.map_imperatively( A, a, properties={ @@ -2556,7 +2572,7 @@ class M2MCascadeTest(fixtures.MappedTest): ) }, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) assert_raises_message( sa_exc.ArgumentError, "For many-to-many relationship A.bs, delete-orphan cascade", @@ -2572,7 +2588,7 @@ class M2MCascadeTest(fixtures.MappedTest): self.tables.atob, ) - mapper( + self.mapper_registry.map_imperatively( A, a, properties={ @@ -2584,7 +2600,7 @@ class M2MCascadeTest(fixtures.MappedTest): ) }, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) b1 = B(data="b1") A(data="a1", bs=[b1]) @@ -2603,7 +2619,7 @@ class M2MCascadeTest(fixtures.MappedTest): self.tables.atob, ) - mapper( + self.mapper_registry.map_imperatively( A, a, properties={ @@ -2616,7 +2632,7 @@ class M2MCascadeTest(fixtures.MappedTest): ) }, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) b1 = B(data="b1") a1 = A(data="a1", bs=[b1]) @@ -2637,12 +2653,12 @@ class M2MCascadeTest(fixtures.MappedTest): self.tables.atob, ) - mapper( + self.mapper_registry.map_imperatively( A, a, properties={"bs": relationship(B, secondary=atob, backref="as")}, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) s = fixture_session() a1 = A(bs=[None]) @@ -2664,12 +2680,12 @@ class M2MCascadeTest(fixtures.MappedTest): self.tables.atob, ) - mapper( + self.mapper_registry.map_imperatively( A, a, properties={"bs": relationship(B, secondary=atob, backref="as")}, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) s = fixture_session() a1 = A() @@ -2705,7 +2721,7 @@ class O2MSelfReferentialDetelOrphanTest(fixtures.MappedTest): def setup_mappers(cls): Node = cls.classes.Node node = cls.tables.node - mapper( + cls.mapper_registry.map_imperatively( Node, node, properties={ @@ -2747,8 +2763,8 @@ class NoBackrefCascadeTest(_fixtures.FixtureTest): cls.tables.users, ) - mapper(Address, addresses) - mapper( + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -2758,7 +2774,7 @@ class NoBackrefCascadeTest(_fixtures.FixtureTest): }, ) - mapper( + cls.mapper_registry.map_imperatively( Dingaling, dingalings, properties={ @@ -2929,9 +2945,9 @@ class PendingOrphanTestSingleLevel(fixtures.MappedTest): self.tables.addresses, ) - mapper(Order, orders) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Order, orders) + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -2976,8 +2992,8 @@ class PendingOrphanTestSingleLevel(fixtures.MappedTest): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -3012,8 +3028,8 @@ class PendingOrphanTestSingleLevel(fixtures.MappedTest): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -3087,14 +3103,14 @@ class PendingOrphanTestTwoLevel(fixtures.MappedTest): self.classes.Item, ) - mapper( + self.mapper_registry.map_imperatively( Order, order, properties={ "items": relationship(Item, cascade="all, delete-orphan") }, ) - mapper(Item, item) + self.mapper_registry.map_imperatively(Item, item) s = fixture_session() o1 = Order() s.add(o1) @@ -3115,14 +3131,14 @@ class PendingOrphanTestTwoLevel(fixtures.MappedTest): self.classes.Order, ) - mapper( + self.mapper_registry.map_imperatively( Order, order, properties={ "items": relationship(Item, cascade="all, delete-orphan") }, ) - mapper( + self.mapper_registry.map_imperatively( Item, item, properties={ @@ -3131,7 +3147,7 @@ class PendingOrphanTestTwoLevel(fixtures.MappedTest): ) }, ) - mapper(Attribute, attribute) + self.mapper_registry.map_imperatively(Attribute, attribute) s = fixture_session() o1 = Order() s.add(o1) @@ -3223,8 +3239,10 @@ class DoubleParentO2MOrphanTest(fixtures.MappedTest): class SalesRep(fixtures.ComparableEntity): pass - mapper(Customer, customers, legacy_is_orphan=legacy_is_orphan) - mapper( + self.mapper_registry.map_imperatively( + Customer, customers, legacy_is_orphan=legacy_is_orphan + ) + self.mapper_registry.map_imperatively( Account, accounts, properties=dict( @@ -3236,7 +3254,7 @@ class DoubleParentO2MOrphanTest(fixtures.MappedTest): ) ), ) - mapper( + self.mapper_registry.map_imperatively( SalesRep, sales_reps, properties=dict( @@ -3393,8 +3411,8 @@ class DoubleParentM2OOrphanTest(fixtures.MappedTest): class Business(fixtures.ComparableEntity): pass - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Home, homes, properties={ @@ -3403,7 +3421,7 @@ class DoubleParentM2OOrphanTest(fixtures.MappedTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Business, businesses, properties={ @@ -3453,8 +3471,8 @@ class DoubleParentM2OOrphanTest(fixtures.MappedTest): class Business(fixtures.ComparableEntity): pass - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Home, homes, properties={ @@ -3463,7 +3481,7 @@ class DoubleParentM2OOrphanTest(fixtures.MappedTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Business, businesses, properties={ @@ -3508,12 +3526,12 @@ class CollectionAssignmentOrphanTest(fixtures.MappedTest): class B(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( A, table_a, properties={"bs": relationship(B, cascade="all, delete-orphan")}, ) - mapper(B, table_b) + self.mapper_registry.map_imperatively(B, table_b) a1 = A(name="a1", bs=[B(name="b1"), B(name="b2"), B(name="b3")]) @@ -3591,8 +3609,10 @@ class OrphanCriterionTest(fixtures.MappedTest): def __init__(self, cores): self.cores = cores - mapper(Core, self.tables.core, legacy_is_orphan=legacy_is_orphan) - mapper( + self.mapper_registry.map_imperatively( + Core, self.tables.core, legacy_is_orphan=legacy_is_orphan + ) + self.mapper_registry.map_imperatively( RelatedOne, self.tables.related_one, properties={ @@ -3601,7 +3621,7 @@ class OrphanCriterionTest(fixtures.MappedTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( RelatedTwo, self.tables.related_two, properties={ @@ -3789,12 +3809,12 @@ class O2MConflictTest(fixtures.MappedTest): self.tables.child, ) - mapper( + self.mapper_registry.map_imperatively( Parent, parent, properties={"child": relationship(Child, uselist=False)}, ) - mapper(Child, child) + self.mapper_registry.map_imperatively(Child, child) self._do_move_test(True) self._do_move_test(False) @@ -3806,12 +3826,12 @@ class O2MConflictTest(fixtures.MappedTest): self.tables.child, ) - mapper( + self.mapper_registry.map_imperatively( Parent, parent, properties={"child": relationship(Child, uselist=True)}, ) - mapper(Child, child) + self.mapper_registry.map_imperatively(Child, child) self._do_move_test(True) self._do_move_test(False) @@ -3823,7 +3843,7 @@ class O2MConflictTest(fixtures.MappedTest): self.tables.child, ) - mapper( + self.mapper_registry.map_imperatively( Parent, parent, properties={ @@ -3834,7 +3854,7 @@ class O2MConflictTest(fixtures.MappedTest): ) }, ) - mapper(Child, child) + self.mapper_registry.map_imperatively(Child, child) self._do_move_test(True) self._do_move_test(False) @@ -3846,7 +3866,7 @@ class O2MConflictTest(fixtures.MappedTest): self.tables.child, ) - mapper( + self.mapper_registry.map_imperatively( Parent, parent, properties={ @@ -3855,7 +3875,7 @@ class O2MConflictTest(fixtures.MappedTest): ) }, ) - mapper(Child, child) + self.mapper_registry.map_imperatively(Child, child) self._do_move_test(True) self._do_move_test(False) @@ -3867,7 +3887,7 @@ class O2MConflictTest(fixtures.MappedTest): self.tables.child, ) - mapper( + self.mapper_registry.map_imperatively( Parent, parent, properties={ @@ -3876,7 +3896,7 @@ class O2MConflictTest(fixtures.MappedTest): ) }, ) - mapper(Child, child) + self.mapper_registry.map_imperatively(Child, child) self._do_move_test(True) self._do_move_test(False) @@ -3888,7 +3908,7 @@ class O2MConflictTest(fixtures.MappedTest): self.tables.child, ) - mapper( + self.mapper_registry.map_imperatively( Parent, parent, properties={ @@ -3900,7 +3920,7 @@ class O2MConflictTest(fixtures.MappedTest): ) }, ) - mapper(Child, child) + self.mapper_registry.map_imperatively(Child, child) self._do_move_test(True) self._do_move_test(False) @@ -3912,8 +3932,8 @@ class O2MConflictTest(fixtures.MappedTest): self.tables.child, ) - mapper(Parent, parent) - mapper( + self.mapper_registry.map_imperatively(Parent, parent) + self.mapper_registry.map_imperatively( Child, child, properties={ @@ -3938,8 +3958,8 @@ class O2MConflictTest(fixtures.MappedTest): self.tables.child, ) - mapper(Parent, parent) - mapper( + self.mapper_registry.map_imperatively(Parent, parent) + self.mapper_registry.map_imperatively( Child, child, properties={ @@ -4004,12 +4024,12 @@ class PartialFlushTest(fixtures.MappedTest): class Child(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( Base, base, properties={"children": relationship(Child, backref="parent")}, ) - mapper(Child, noninh_child) + self.mapper_registry.map_imperatively(Child, noninh_child) sess = fixture_session() @@ -4066,9 +4086,9 @@ class PartialFlushTest(fixtures.MappedTest): class Child(Base): pass - mapper(Base, base) + self.mapper_registry.map_imperatively(Base, base) - mapper( + self.mapper_registry.map_imperatively( Child, inh_child, inherits=Base, @@ -4081,7 +4101,7 @@ class PartialFlushTest(fixtures.MappedTest): }, ) - mapper(Parent, parent, inherits=Base) + self.mapper_registry.map_imperatively(Parent, parent, inherits=Base) sess = fixture_session() p1 = Parent() @@ -4302,8 +4322,8 @@ class ViewonlyFlagWarningTest(fixtures.MappedTest): self.tables.users, ) - mapper(Order, orders) - mapper( + self.mapper_registry.map_imperatively(Order, orders) + self.mapper_registry.map_imperatively( User, users, properties={ @@ -4350,8 +4370,8 @@ class ViewonlyFlagWarningTest(fixtures.MappedTest): self.tables.users, ) - mapper(Order, orders) - mapper( + self.mapper_registry.map_imperatively(Order, orders) + self.mapper_registry.map_imperatively( User, users, properties={ @@ -4389,8 +4409,8 @@ class ViewonlyFlagWarningTest(fixtures.MappedTest): self.tables.users, ) - mapper(Order, orders) - mapper( + self.mapper_registry.map_imperatively(Order, orders) + self.mapper_registry.map_imperatively( User, users, properties={ @@ -4428,8 +4448,8 @@ class ViewonlyFlagWarningTest(fixtures.MappedTest): self.tables.users, ) - mapper(Order, orders) - umapper = mapper( + self.mapper_registry.map_imperatively(Order, orders) + umapper = self.mapper_registry.map_imperatively( User, users, properties={ diff --git a/test/orm/test_collection.py b/test/orm/test_collection.py index 4ca2f999c3..81ace4a98c 100644 --- a/test/orm/test_collection.py +++ b/test/orm/test_collection.py @@ -12,7 +12,6 @@ from sqlalchemy import util from sqlalchemy.orm import attributes from sqlalchemy.orm import declarative_base from sqlalchemy.orm import instrumentation -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship import sqlalchemy.orm.collections as collections from sqlalchemy.orm.collections import collection @@ -1853,8 +1852,8 @@ class DictHelpersTest(OrderedDictFixture, fixtures.MappedTest): self.classes.Child, ) - mapper(Child, children) - mapper( + self.mapper_registry.map_imperatively(Child, children) + self.mapper_registry.map_imperatively( Parent, parents, properties={ @@ -1938,8 +1937,8 @@ class DictHelpersTest(OrderedDictFixture, fixtures.MappedTest): self.classes.Child, ) - mapper(Child, children) - mapper( + self.mapper_registry.map_imperatively(Child, children) + self.mapper_registry.map_imperatively( Parent, parents, properties={ @@ -2105,10 +2104,12 @@ class ColumnMappedWSerialize(fixtures.MappedTest): Foo = self.classes.Foo Bar = self.classes.Bar bar = self.tables["x.bar"] - mapper( + self.mapper_registry.map_imperatively( Foo, self.tables.foo, properties={"foo_id": self.tables.foo.c.id} ) - mapper(Bar, bar, inherits=Foo, properties={"bar_id": bar.c.id}) + self.mapper_registry.map_imperatively( + Bar, bar, inherits=Foo, properties={"bar_id": bar.c.id} + ) bar_spec = Bar(foo_id=1, bar_id=2, bat_id=3) self._run_test( @@ -2125,7 +2126,7 @@ class ColumnMappedWSerialize(fixtures.MappedTest): s = select(self.tables.foo).alias() Foo = self.classes.Foo - mapper(Foo, s) + self.mapper_registry.map_imperatively(Foo, s) self._run_test([(Foo.b, Foo(b=5), 5), (s.c.b, Foo(b=5), 5)]) def _run_test(self, specs): @@ -2186,12 +2187,12 @@ class CustomCollectionsTest(fixtures.MappedTest): class Bar(object): pass - mapper( + self.mapper_registry.map_imperatively( Foo, sometable, properties={"bars": relationship(Bar, collection_class=MyList)}, ) - mapper(Bar, someothertable) + self.mapper_registry.map_imperatively(Bar, someothertable) f = Foo() assert isinstance(f.bars, MyList) @@ -2209,12 +2210,12 @@ class CustomCollectionsTest(fixtures.MappedTest): class Bar(object): pass - mapper( + self.mapper_registry.map_imperatively( Foo, sometable, properties={"bars": relationship(Bar, collection_class=set)}, ) - mapper(Bar, someothertable) + self.mapper_registry.map_imperatively(Bar, someothertable) f = Foo() f.bars.add(Bar()) f.bars.add(Bar()) @@ -2250,14 +2251,14 @@ class CustomCollectionsTest(fixtures.MappedTest): if id(item) in self: del self[id(item)] - mapper( + self.mapper_registry.map_imperatively( Foo, sometable, properties={ "bars": relationship(Bar, collection_class=AppenderDict) }, ) - mapper(Bar, someothertable) + self.mapper_registry.map_imperatively(Bar, someothertable) f = Foo() f.bars.set(Bar()) f.bars.set(Bar()) @@ -2285,7 +2286,7 @@ class CustomCollectionsTest(fixtures.MappedTest): def __init__(self, data): self.data = data - mapper( + self.mapper_registry.map_imperatively( Foo, sometable, properties={ @@ -2297,7 +2298,7 @@ class CustomCollectionsTest(fixtures.MappedTest): ) }, ) - mapper(Bar, someothertable) + self.mapper_registry.map_imperatively(Bar, someothertable) f = Foo() col = collections.collection_adapter(f.bars) @@ -2384,14 +2385,14 @@ class CustomCollectionsTest(fixtures.MappedTest): class Child(object): pass - mapper( + self.mapper_registry.map_imperatively( Parent, sometable, properties={ "children": relationship(Child, collection_class=listcls) }, ) - mapper(Child, someothertable) + self.mapper_registry.map_imperatively(Child, someothertable) control = list() p = Parent() @@ -2531,14 +2532,14 @@ class CustomCollectionsTest(fixtures.MappedTest): def __iter__(self): return iter(self.data) - mapper( + self.mapper_registry.map_imperatively( Parent, sometable, properties={ "children": relationship(Child, collection_class=MyCollection) }, ) - mapper(Child, someothertable) + self.mapper_registry.map_imperatively(Child, someothertable) control = list() p1 = Parent() diff --git a/test/orm/test_compile.py b/test/orm/test_compile.py index 20d8ecc2db..73ca571cb7 100644 --- a/test/orm/test_compile.py +++ b/test/orm/test_compile.py @@ -9,14 +9,13 @@ from sqlalchemy import Unicode from sqlalchemy.orm import backref from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import configure_mappers -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import fixtures -class CompileTest(fixtures.ORMTest): +class CompileTest(fixtures.MappedTest): """test various mapper compilation scenarios""" def teardown_test(self): @@ -78,7 +77,7 @@ class CompileTest(fixtures.ORMTest): order_join = order.select().alias("pjoin") - mapper( + self.mapper_registry.map_imperatively( Order, order, with_polymorphic=("*", order_join), @@ -91,7 +90,7 @@ class CompileTest(fixtures.ORMTest): }, ) - mapper( + self.mapper_registry.map_imperatively( Product, product, properties={ @@ -101,7 +100,7 @@ class CompileTest(fixtures.ORMTest): }, ) - mapper( + self.mapper_registry.map_imperatively( Employee, employee, properties={ @@ -111,7 +110,7 @@ class CompileTest(fixtures.ORMTest): }, ) - mapper(OrderProduct, orderproduct) + self.mapper_registry.map_imperatively(OrderProduct, orderproduct) # this requires that the compilation of order_mapper's "surrogate # mapper" occur after the initial setup of MapperProperty objects on @@ -160,7 +159,7 @@ class CompileTest(fixtures.ORMTest): order_join = order.select().alias("pjoin") - mapper( + self.mapper_registry.map_imperatively( Order, order, with_polymorphic=("*", order_join), @@ -173,7 +172,7 @@ class CompileTest(fixtures.ORMTest): }, ) - mapper( + self.mapper_registry.map_imperatively( Product, product, properties={ @@ -183,7 +182,7 @@ class CompileTest(fixtures.ORMTest): }, ) - mapper(OrderProduct, orderproduct) + self.mapper_registry.map_imperatively(OrderProduct, orderproduct) assert_raises_message( sa_exc.ArgumentError, "Error creating backref", configure_mappers @@ -222,9 +221,9 @@ class CompileTest(fixtures.ORMTest): class Host(object): pass - mapper(Node, node_table) - mapper(Host, host_table) - mapper( + self.mapper_registry.map_imperatively(Node, node_table) + self.mapper_registry.map_imperatively(Host, host_table) + self.mapper_registry.map_imperatively( NodeName, node_name_table, properties={ @@ -252,8 +251,12 @@ class CompileTest(fixtures.ORMTest): class B(object): pass - mapper(A, a, properties={"b": relationship(B, backref="a")}) - mapper(B, b, properties={"a": relationship(A, backref="b")}) + self.mapper_registry.map_imperatively( + A, a, properties={"b": relationship(B, backref="a")} + ) + self.mapper_registry.map_imperatively( + B, b, properties={"a": relationship(A, backref="b")} + ) assert_raises_message( sa_exc.ArgumentError, "Error creating backref", configure_mappers @@ -279,7 +282,7 @@ class CompileTest(fixtures.ORMTest): class C(B): pass - mapper( + self.mapper_registry.map_imperatively( A, a, properties={ @@ -287,8 +290,8 @@ class CompileTest(fixtures.ORMTest): "c": relationship(C, backref="a"), }, ) - mapper(B, b) - mapper(C, None, inherits=B) + self.mapper_registry.map_imperatively(B, b) + self.mapper_registry.map_imperatively(C, None, inherits=B) assert_raises_message( sa_exc.ArgumentError, "Error creating backref", configure_mappers diff --git a/test/orm/test_composites.py b/test/orm/test_composites.py index b91c21d323..2f3b9a70e4 100644 --- a/test/orm/test_composites.py +++ b/test/orm/test_composites.py @@ -9,7 +9,6 @@ from sqlalchemy.orm import aliased from sqlalchemy.orm import composite from sqlalchemy.orm import CompositeProperty from sqlalchemy.orm import configure_mappers -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.testing import assert_raises_message @@ -79,8 +78,10 @@ class PointTest(fixtures.MappedTest, testing.AssertsCompiledSQL): if args: self.start, self.end = args - mapper(Graph, graphs, properties={"edges": relationship(Edge)}) - mapper( + cls.mapper_registry.map_imperatively( + Graph, graphs, properties={"edges": relationship(Edge)} + ) + cls.mapper_registry.map_imperatively( Edge, edges, properties={ @@ -475,7 +476,7 @@ class NestedTest(fixtures.MappedTest, testing.AssertsCompiledSQL): self.ab = ab stuff = self.tables.stuff - mapper( + self.mapper_registry.map_imperatively( Thing, stuff, properties={ @@ -541,7 +542,7 @@ class PrimaryKeyTest(fixtures.MappedTest): def __init__(self, version): self.version = version - mapper( + cls.mapper_registry.map_imperatively( Graph, graphs, properties={ @@ -658,7 +659,7 @@ class DefaultsTest(fixtures.MappedTest): self.x4, ) - mapper( + cls.mapper_registry.map_imperatively( Foobar, foobars, properties=dict( @@ -754,7 +755,7 @@ class MappedSelectTest(fixtures.MappedTest): .alias("descriptions_values") ) - mapper( + cls.mapper_registry.map_imperatively( Descriptions, descriptions, properties={ @@ -765,7 +766,7 @@ class MappedSelectTest(fixtures.MappedTest): }, ) - mapper( + cls.mapper_registry.map_imperatively( Values, desc_values, properties={ @@ -851,12 +852,12 @@ class ManyToOneTest(fixtures.MappedTest): and other.b2 == self.b2 ) - mapper( + cls.mapper_registry.map_imperatively( A, a, properties={"b2": relationship(B), "c": composite(C, "b1", "b2")}, ) - mapper(B, b) + cls.mapper_registry.map_imperatively(B, b) def test_early_configure(self): # test [ticket:2935], that we can call a composite @@ -955,7 +956,7 @@ class ConfigurationTest(fixtures.MappedTest): self.classes.Point, ) - mapper( + self.mapper_registry.map_imperatively( Edge, edge, properties={ @@ -973,7 +974,7 @@ class ConfigurationTest(fixtures.MappedTest): self.classes.Point, ) - m = mapper(Edge, edge) + m = self.mapper_registry.map_imperatively(Edge, edge) m.add_property("start", sa.orm.composite(Point, Edge.x1, Edge.y1)) m.add_property("end", sa.orm.composite(Point, Edge.x2, Edge.y2)) @@ -986,7 +987,7 @@ class ConfigurationTest(fixtures.MappedTest): self.classes.Point, ) - m = mapper(Edge, edge) + m = self.mapper_registry.map_imperatively(Edge, edge) m.add_property("start", sa.orm.composite(Point, "x1", "y1")) m.add_property("end", sa.orm.composite(Point, "x2", "y2")) @@ -998,7 +999,7 @@ class ConfigurationTest(fixtures.MappedTest): self.classes.Edge, self.classes.Point, ) - mapper( + self.mapper_registry.map_imperatively( Edge, edge, properties={ @@ -1018,7 +1019,7 @@ class ConfigurationTest(fixtures.MappedTest): self.classes.Edge, self.classes.Point, ) - mapper( + self.mapper_registry.map_imperatively( Edge, edge, properties={ @@ -1098,7 +1099,7 @@ class ComparatorTest(fixtures.MappedTest, testing.AssertsCompiledSQL): diff_y = clauses[1] - other.y return diff_x * diff_x + diff_y * diff_y <= d * d - mapper( + self.mapper_registry.map_imperatively( Edge, edge, properties={ @@ -1112,7 +1113,7 @@ class ComparatorTest(fixtures.MappedTest, testing.AssertsCompiledSQL): }, ) else: - mapper( + self.mapper_registry.map_imperatively( Edge, edge, properties={ diff --git a/test/orm/test_core_compilation.py b/test/orm/test_core_compilation.py index 2adc438422..284a45caa3 100644 --- a/test/orm/test_core_compilation.py +++ b/test/orm/test_core_compilation.py @@ -17,7 +17,6 @@ from sqlalchemy.orm import contains_eager from sqlalchemy.orm import deferred from sqlalchemy.orm import join as orm_join from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import query_expression from sqlalchemy.orm import relationship from sqlalchemy.orm import undefer @@ -489,13 +488,13 @@ class LoadersInSubqueriesTest(QueryTest, AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, lazy="joined")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) return User, Address @@ -504,7 +503,7 @@ class LoadersInSubqueriesTest(QueryTest, AssertsCompiledSQL): User = self.classes.User users = self.tables.users - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -522,7 +521,7 @@ class LoadersInSubqueriesTest(QueryTest, AssertsCompiledSQL): User = self.classes.User users = self.tables.users - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -793,7 +792,7 @@ class ExtraColsTest(QueryTest, AssertsCompiledSQL): ) addresses, Address = (self.tables.addresses, self.classes.Address) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=util.OrderedDict( @@ -802,7 +801,7 @@ class ExtraColsTest(QueryTest, AssertsCompiledSQL): ] ), ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) return User @@ -814,7 +813,7 @@ class ExtraColsTest(QueryTest, AssertsCompiledSQL): ) addresses, Address = (self.tables.addresses, self.classes.Address) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=util.OrderedDict( @@ -833,7 +832,7 @@ class ExtraColsTest(QueryTest, AssertsCompiledSQL): ] ), ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) return User @@ -846,7 +845,7 @@ class ExtraColsTest(QueryTest, AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=util.OrderedDict( @@ -867,7 +866,7 @@ class ExtraColsTest(QueryTest, AssertsCompiledSQL): ), ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -888,12 +887,12 @@ class ExtraColsTest(QueryTest, AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -2290,7 +2289,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL): class Foo(object): pass - mapper( + self.mapper_registry.map_imperatively( Foo, self.tables.users, properties={ diff --git a/test/orm/test_cycles.py b/test/orm/test_cycles.py index 697009c2a5..c75f2a549a 100644 --- a/test/orm/test_cycles.py +++ b/test/orm/test_cycles.py @@ -14,7 +14,6 @@ from sqlalchemy import Integer from sqlalchemy import String from sqlalchemy import testing from sqlalchemy.orm import backref -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import eq_ from sqlalchemy.testing import fixtures @@ -66,7 +65,7 @@ class SelfReferentialTest(fixtures.MappedTest): def test_single(self): C1, t1 = self.classes.C1, self.tables.t1 - mapper( + self.mapper_registry.map_imperatively( C1, t1, properties={ @@ -103,7 +102,7 @@ class SelfReferentialTest(fixtures.MappedTest): C1, t1 = self.classes.C1, self.tables.t1 - mapper( + self.mapper_registry.map_imperatively( C1, t1, properties={ @@ -136,13 +135,14 @@ class SelfReferentialTest(fixtures.MappedTest): self.tables.t1, ) - mapper( + self.mapper_registry.map_imperatively( C1, t1, properties={ "c1s": relationship(C1, cascade="all"), "c2s": relationship( - mapper(C2, t2), cascade="all, delete-orphan" + self.mapper_registry.map_imperatively(C2, t2), + cascade="all, delete-orphan", ), }, ) @@ -164,7 +164,9 @@ class SelfReferentialTest(fixtures.MappedTest): def test_setnull_ondelete(self): C1, t1 = self.classes.C1, self.tables.t1 - mapper(C1, t1, properties={"children": relationship(C1)}) + self.mapper_registry.map_imperatively( + C1, t1, properties={"children": relationship(C1)} + ) sess = fixture_session() c1 = C1() @@ -213,7 +215,7 @@ class SelfReferentialNoPKTest(fixtures.MappedTest): def setup_mappers(cls): item, TT = cls.tables.item, cls.classes.TT - mapper( + cls.mapper_registry.map_imperatively( TT, item, properties={ @@ -307,9 +309,9 @@ class InheritTestOne(fixtures.MappedTest): cls.classes.Child2, ) - mapper(Parent, parent) - mapper(Child1, child1, inherits=Parent) - mapper( + cls.mapper_registry.map_imperatively(Parent, parent) + cls.mapper_registry.map_imperatively(Child1, child1, inherits=Parent) + cls.mapper_registry.map_imperatively( Child2, child2, inherits=Parent, @@ -401,15 +403,17 @@ class InheritTestTwo(fixtures.MappedTest): self.classes.B, ) - mapper( + self.mapper_registry.map_imperatively( A, a, properties={"cs": relationship(C, primaryjoin=a.c.cid == c.c.id)}, ) - mapper(B, b, inherits=A, inherit_condition=b.c.id == a.c.id) + self.mapper_registry.map_imperatively( + B, b, inherits=A, inherit_condition=b.c.id == a.c.id + ) - mapper( + self.mapper_registry.map_imperatively( C, c, properties={ @@ -481,21 +485,21 @@ class BiDirectionalManyToOneTest(fixtures.MappedTest): cls.classes.T1, ) - mapper( + cls.mapper_registry.map_imperatively( T1, t1, properties={ "t2": relationship(T2, primaryjoin=t1.c.t2id == t2.c.id) }, ) - mapper( + cls.mapper_registry.map_imperatively( T2, t2, properties={ "t1": relationship(T1, primaryjoin=t2.c.t1id == t1.c.id) }, ) - mapper( + cls.mapper_registry.map_imperatively( T3, t3, properties={"t1": relationship(T1), "t2": relationship(T2)} ) @@ -591,7 +595,7 @@ class BiDirectionalOneToManyTest(fixtures.MappedTest): self.tables.t1, ) - mapper( + self.mapper_registry.map_imperatively( C2, t2, properties={ @@ -600,7 +604,7 @@ class BiDirectionalOneToManyTest(fixtures.MappedTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( C1, t1, properties={ @@ -685,7 +689,7 @@ class BiDirectionalOneToManyTest2(fixtures.MappedTest): cls.classes.C1, ) - mapper( + cls.mapper_registry.map_imperatively( C2, t2, properties={ @@ -694,14 +698,16 @@ class BiDirectionalOneToManyTest2(fixtures.MappedTest): ) }, ) - mapper( + cls.mapper_registry.map_imperatively( C1, t1, properties={ "c2s": relationship( C2, primaryjoin=t1.c.c1 == t2.c.c2, uselist=True ), - "data": relationship(mapper(C1Data, t1_data)), + "data": relationship( + cls.mapper_registry.map_imperatively(C1Data, t1_data) + ), }, ) @@ -807,8 +813,8 @@ class OneToManyManyToOneTest(fixtures.MappedTest): self.classes.Person, ) - mapper(Ball, ball) - mapper( + self.mapper_registry.map_imperatively(Ball, ball) + self.mapper_registry.map_imperatively( Person, person, properties=dict( @@ -846,8 +852,8 @@ class OneToManyManyToOneTest(fixtures.MappedTest): self.classes.Person, ) - mapper(Ball, ball) - mapper( + self.mapper_registry.map_imperatively(Ball, ball) + self.mapper_registry.map_imperatively( Person, person, properties=dict( @@ -894,8 +900,8 @@ class OneToManyManyToOneTest(fixtures.MappedTest): self.classes.Person, ) - mapper(Ball, ball) - mapper( + self.mapper_registry.map_imperatively(Ball, ball) + self.mapper_registry.map_imperatively( Person, person, properties=dict( @@ -1006,8 +1012,8 @@ class OneToManyManyToOneTest(fixtures.MappedTest): self.classes.Person, ) - mapper(Ball, ball) - mapper( + self.mapper_registry.map_imperatively(Ball, ball) + self.mapper_registry.map_imperatively( Person, person, properties=dict( @@ -1071,8 +1077,8 @@ class OneToManyManyToOneTest(fixtures.MappedTest): self.classes.Person, ) - mapper(Ball, ball) - mapper( + self.mapper_registry.map_imperatively(Ball, ball) + self.mapper_registry.map_imperatively( Person, person, properties=dict( @@ -1206,7 +1212,7 @@ class OneToManyManyToOneTest(fixtures.MappedTest): self.classes.Person, ) - mapper( + self.mapper_registry.map_imperatively( Ball, ball, properties={ @@ -1220,7 +1226,7 @@ class OneToManyManyToOneTest(fixtures.MappedTest): ) }, ) - mapper(Person, person) + self.mapper_registry.map_imperatively(Person, person) sess = fixture_session(autocommit=False, expire_on_commit=True) p1 = Person() @@ -1288,7 +1294,7 @@ class SelfReferentialPostUpdateTest(fixtures.MappedTest): node, Node = self.tables.node, self.classes.Node - mapper( + self.mapper_registry.map_imperatively( Node, node, properties={ @@ -1458,7 +1464,7 @@ class SelfReferentialPostUpdateTest2(fixtures.MappedTest): A, a_table = self.classes.A, self.tables.a_table - mapper( + self.mapper_registry.map_imperatively( A, a_table, properties={ @@ -1536,7 +1542,7 @@ class SelfReferentialPostUpdateTest3(fixtures.MappedTest): self.tables.child, ) - mapper( + self.mapper_registry.map_imperatively( Parent, parent, properties={ @@ -1550,7 +1556,7 @@ class SelfReferentialPostUpdateTest3(fixtures.MappedTest): ), }, ) - mapper( + self.mapper_registry.map_imperatively( Child, child, properties={"parent": relationship(Child, remote_side=child.c.id)}, @@ -1681,7 +1687,7 @@ class PostUpdateBatchingTest(fixtures.MappedTest): self.classes.Child3, ) - mapper( + self.mapper_registry.map_imperatively( Parent, parent, properties={ @@ -1711,9 +1717,9 @@ class PostUpdateBatchingTest(fixtures.MappedTest): ), }, ) - mapper(Child1, child1) - mapper(Child2, child2) - mapper(Child3, child3) + self.mapper_registry.map_imperatively(Child1, child1) + self.mapper_registry.map_imperatively(Child2, child2) + self.mapper_registry.map_imperatively(Child3, child3) sess = fixture_session() diff --git a/test/orm/test_dataclasses_py3k.py b/test/orm/test_dataclasses_py3k.py index 2debc3ddf4..14132e5d72 100644 --- a/test/orm/test_dataclasses_py3k.py +++ b/test/orm/test_dataclasses_py3k.py @@ -9,7 +9,6 @@ from sqlalchemy import String from sqlalchemy import testing from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import declared_attr -from sqlalchemy.orm import mapper from sqlalchemy.orm import registry as declarative_registry from sqlalchemy.orm import registry from sqlalchemy.orm import relationship @@ -88,19 +87,21 @@ class DataclassesTest(fixtures.MappedTest, testing.AssertsCompiledSQL): Widget = cls.classes.Widget SpecialWidget = cls.classes.SpecialWidget - mapper( + cls.mapper_registry.map_imperatively( Widget, widgets, polymorphic_on=widgets.c.type, polymorphic_identity="normal", ) - mapper( + cls.mapper_registry.map_imperatively( SpecialWidget, widgets, inherits=Widget, polymorphic_identity="special", ) - mapper(Account, accounts, properties={"widgets": relationship(Widget)}) + cls.mapper_registry.map_imperatively( + Account, accounts, properties={"widgets": relationship(Widget)} + ) def check_account_dataclass(self, obj): assert dataclasses.is_dataclass(obj) diff --git a/test/orm/test_default_strategies.py b/test/orm/test_default_strategies.py index e5206d2ae1..249a446ea7 100644 --- a/test/orm/test_default_strategies.py +++ b/test/orm/test_default_strategies.py @@ -1,7 +1,6 @@ import sqlalchemy as sa from sqlalchemy import testing from sqlalchemy import util -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import eq_ @@ -67,11 +66,11 @@ class DefaultStrategyOptionsTest(_fixtures.FixtureTest): self.tables.addresses, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -84,7 +83,7 @@ class DefaultStrategyOptionsTest(_fixtures.FixtureTest): ), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -97,7 +96,7 @@ class DefaultStrategyOptionsTest(_fixtures.FixtureTest): ), ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -141,11 +140,11 @@ class DefaultStrategyOptionsTest(_fixtures.FixtureTest): self.tables.addresses, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -158,7 +157,7 @@ class DefaultStrategyOptionsTest(_fixtures.FixtureTest): ), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -171,7 +170,7 @@ class DefaultStrategyOptionsTest(_fixtures.FixtureTest): ), ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -620,12 +619,13 @@ class NoLoadTest(_fixtures.FixtureTest): self.classes.User, ) - m = mapper( + m = self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), lazy="noload" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="noload", ) ), ) @@ -651,12 +651,13 @@ class NoLoadTest(_fixtures.FixtureTest): self.classes.User, ) - m = mapper( + m = self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), lazy="noload" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="noload", ) ), ) @@ -681,8 +682,10 @@ class NoLoadTest(_fixtures.FixtureTest): self.tables.users, self.classes.User, ) - mapper(Address, addresses, properties={"user": relationship(User)}) - mapper(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) + self.mapper_registry.map_imperatively(User, users) s = fixture_session() a1 = ( s.query(Address) diff --git a/test/orm/test_defaults.py b/test/orm/test_defaults.py index abf9b8e031..fc8e455ea5 100644 --- a/test/orm/test_defaults.py +++ b/test/orm/test_defaults.py @@ -5,7 +5,6 @@ from sqlalchemy import Identity from sqlalchemy import Integer from sqlalchemy import String from sqlalchemy import testing -from sqlalchemy.orm import mapper from sqlalchemy.testing import eq_ from sqlalchemy.testing import fixtures from sqlalchemy.testing.assertsql import assert_engine @@ -153,7 +152,7 @@ class TriggerDefaultsTest(fixtures.MappedTest): def setup_mappers(cls): Default, dt = cls.classes.Default, cls.tables.dt - mapper(Default, dt) + cls.mapper_registry.map_imperatively(Default, dt) def test_insert(self): Default = self.classes.Default @@ -210,7 +209,9 @@ class ExcludedDefaultsTest(fixtures.MappedTest): class Foo(fixtures.BasicEntity): pass - mapper(Foo, dt, exclude_properties=("col1",)) + self.mapper_registry.map_imperatively( + Foo, dt, exclude_properties=("col1",) + ) f1 = Foo() sess = fixture_session() @@ -248,10 +249,14 @@ class ComputedDefaultsOnUpdateTest(fixtures.MappedTest): def setup_mappers(cls): Thing = cls.classes.Thing - mapper(Thing, cls.tables.test, eager_defaults=True) + cls.mapper_registry.map_imperatively( + Thing, cls.tables.test, eager_defaults=True + ) ThingNoEager = cls.classes.ThingNoEager - mapper(ThingNoEager, cls.tables.test, eager_defaults=False) + cls.mapper_registry.map_imperatively( + ThingNoEager, cls.tables.test, eager_defaults=False + ) @testing.combinations(("eager", True), ("noneager", False), id_="ia") def test_insert_computed(self, eager): @@ -439,7 +444,7 @@ class IdentityDefaultsOnUpdateTest(fixtures.MappedTest): def setup_mappers(cls): Thing = cls.classes.Thing - mapper(Thing, cls.tables.test) + cls.mapper_registry.map_imperatively(Thing, cls.tables.test) def test_insert_identity(self): Thing = self.classes.Thing diff --git a/test/orm/test_deferred.py b/test/orm/test_deferred.py index 7b8166c2e8..9f9068783f 100644 --- a/test/orm/test_deferred.py +++ b/test/orm/test_deferred.py @@ -16,7 +16,6 @@ from sqlalchemy.orm import deferred from sqlalchemy.orm import joinedload from sqlalchemy.orm import Load from sqlalchemy.orm import load_only -from sqlalchemy.orm import mapper from sqlalchemy.orm import query_expression from sqlalchemy.orm import relationship from sqlalchemy.orm import Session @@ -48,7 +47,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): Order, orders = self.classes.Order, self.tables.orders - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"description": deferred(orders.c.description)}, @@ -88,7 +87,9 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): Order, orders = self.classes.Order, self.tables.orders - mapper(Order, orders, properties={"id": deferred(orders.c.id)}) + self.mapper_registry.map_imperatively( + Order, orders, properties={"id": deferred(orders.c.id)} + ) # right now, it's not that graceful :) q = fixture_session().query(Order) @@ -101,7 +102,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): Order, orders = self.classes.Order, self.tables.orders - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"description": deferred(orders.c.description)}, @@ -120,7 +121,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_synonym_group_bug(self): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -136,7 +137,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_unsaved_2(self): Order, orders = self.classes.Order, self.tables.orders - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"description": deferred(orders.c.description)}, @@ -156,7 +157,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -178,7 +179,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_unsaved_group_2(self): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -199,7 +200,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_save(self): Order, orders = self.classes.Order, self.tables.orders - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"description": deferred(orders.c.description)}, @@ -215,7 +216,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=util.OrderedDict( @@ -279,7 +280,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -310,7 +311,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -346,7 +347,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): orders.c.description, orders.c.isopen, ).alias() - mapper( + self.mapper_registry.map_imperatively( Order, order_select, properties={"description": deferred(order_select.c.description)}, @@ -366,7 +367,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): orders, Order = self.tables.orders, self.classes.Order - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session() q = sess.query(Order).order_by(Order.id).options(defer("user_id")) @@ -413,7 +414,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_undefer_group(self): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=util.OrderedDict( @@ -456,7 +457,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_undefer_group_multi(self): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=util.OrderedDict( @@ -501,7 +502,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_undefer_group_multi_pathed(self): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=util.OrderedDict( @@ -551,12 +552,12 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict(orders=relationship(Order, order_by=orders.c.id)), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=util.OrderedDict( @@ -614,12 +615,12 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict(orders=relationship(Order, order_by=orders.c.id)), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=util.OrderedDict( @@ -680,12 +681,12 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict(orders=relationship(Order, order_by=orders.c.id)), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=util.OrderedDict( @@ -740,12 +741,12 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict(orders=relationship(Order, order_by=orders.c.id)), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=util.OrderedDict( @@ -799,7 +800,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_undefer_star(self): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=util.OrderedDict( @@ -829,7 +830,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"description": deferred(orders.c.description)}, @@ -862,7 +863,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"description": deferred(orders.c.description)}, @@ -882,7 +883,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_raise_on_col_rowproc_only(self): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -905,7 +906,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_locates_col_w_option_rowproc_only(self): orders, Order = self.tables.orders, self.classes.Order - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session() stmt = sa.select(Order).order_by(Order.id) @@ -926,7 +927,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_raise_on_col_w_option_rowproc_only(self): orders, Order = self.tables.orders, self.classes.Order - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session() stmt = sa.select(Order).order_by(Order.id) @@ -956,17 +957,17 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties=dict(description=deferred(items.c.description)), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict(items=relationship(Item, secondary=order_items)), ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict(orders=relationship(Order, order_by=orders.c.id)), @@ -1005,12 +1006,12 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): items = self.tables.items order_items = self.tables.order_items - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"orders": relationship(Order, lazy="joined")}, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -1019,7 +1020,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() @@ -1047,8 +1048,10 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): users, User = self.tables.users, self.classes.User orders, Order = self.tables.orders, self.classes.Order - mapper(User, users, properties={"orders": relationship(Order)}) - mapper(Order, orders) + self.mapper_registry.map_imperatively( + User, users, properties={"orders": relationship(Order)} + ) + self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session() q = sess.query(User).options( @@ -1069,7 +1072,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_load_only_no_pk(self): orders, Order = self.tables.orders, self.classes.Order - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session() q = sess.query(Order).options(load_only("isopen", "description")) @@ -1083,7 +1086,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_load_only_no_pk_rt(self): orders, Order = self.tables.orders, self.classes.Order - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session() q = ( @@ -1096,7 +1099,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_load_only_w_deferred(self): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"description": deferred(orders.c.description)}, @@ -1118,7 +1121,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): def test_load_only_synonym(self, type_): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"desc": synonym("description")}, @@ -1151,8 +1154,10 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): users = self.tables.users addresses = self.tables.addresses - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() expected = [ @@ -1200,9 +1205,9 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): addresses = self.tables.addresses orders = self.tables.orders - mapper(User, users) - mapper(Address, addresses) - mapper(Order, orders) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session() q = sess.query(User, Order, Address).options( @@ -1230,7 +1235,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): addresses = self.tables.addresses orders = self.tables.orders - mapper( + self.mapper_registry.map_imperatively( User, users, properties=util.OrderedDict( @@ -1241,8 +1246,8 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): ), ) - mapper(Address, addresses) - mapper(Order, orders) + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session() @@ -2196,8 +2201,12 @@ class DeferredPopulationTest(fixtures.MappedTest): class Thing(cls.Basic): pass - mapper(Human, human, properties={"thing": relationship(Thing)}) - mapper(Thing, thing, properties={"name": deferred(thing.c.name)}) + cls.mapper_registry.map_imperatively( + Human, human, properties={"thing": relationship(Thing)} + ) + cls.mapper_registry.map_imperatively( + Thing, thing, properties={"name": deferred(thing.c.name)} + ) @classmethod def insert_data(cls, connection): diff --git a/test/orm/test_deprecations.py b/test/orm/test_deprecations.py index 95ed09a749..ddfad7e0f0 100644 --- a/test/orm/test_deprecations.py +++ b/test/orm/test_deprecations.py @@ -17,11 +17,13 @@ from sqlalchemy import table from sqlalchemy import testing from sqlalchemy import text from sqlalchemy import true +from sqlalchemy import util from sqlalchemy.engine import default from sqlalchemy.orm import aliased from sqlalchemy.orm import as_declarative from sqlalchemy.orm import attributes from sqlalchemy.orm import backref +from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import collections from sqlalchemy.orm import column_property from sqlalchemy.orm import configure_mappers @@ -890,7 +892,7 @@ class SelfRefFromSelfTest(fixtures.MappedTest, AssertsCompiledSQL): def setup_mappers(cls): Node, nodes = cls.classes.Node, cls.tables.nodes - mapper( + cls.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -1076,7 +1078,7 @@ class SelfReferentialEagerTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -2462,8 +2464,8 @@ class AutocommitClosesOnFailTest(fixtures.MappedTest): cls.tables.t1, ) - mapper(T1, t1) - mapper(T2, t2) + cls.mapper_registry.map_imperatively(T1, t1) + cls.mapper_registry.map_imperatively(T2, t2) def test_close_transaction_on_commit_fail(self): T2 = self.classes.T2 @@ -2598,7 +2600,7 @@ class DeprecatedMapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): # non-standard comparator return self.__clause_element__().op("&=")(other) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2651,7 +2653,7 @@ class DeprecatedMapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): name = property(_get_name, _set_name) - m = mapper(User, users) + m = self.mapper_registry.map_imperatively(User, users) m.add_property("_name", deferred(users.c.name)) m.add_property("name", synonym("_name")) @@ -2688,7 +2690,7 @@ class DeprecatedOptionAllTest(OptionsPathTest, _fixtures.FixtureTest): self.classes.Keyword, self.classes.Item, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2696,22 +2698,22 @@ class DeprecatedOptionAllTest(OptionsPathTest, _fixtures.FixtureTest): "orders": relationship(Order), }, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ "items": relationship(Item, secondary=self.tables.order_items) }, ) - mapper( + self.mapper_registry.map_imperatively( Keyword, keywords, properties={ "keywords": column_property(keywords.c.name + "some keyword") }, ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -2739,8 +2741,8 @@ class DeprecatedOptionAllTest(OptionsPathTest, _fixtures.FixtureTest): self.tables.addresses, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2872,16 +2874,20 @@ class NonPrimaryRelationshipLoaderTest(_fixtures.FixtureTest): openorders = sa.alias(orders, "openorders") closedorders = sa.alias(orders, "closedorders") - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) with testing.expect_deprecated( "The mapper.non_primary parameter is deprecated" ): - open_mapper = mapper(Order, openorders, non_primary=True) - closed_mapper = mapper(Order, closedorders, non_primary=True) - mapper( + open_mapper = self.mapper_registry.map_imperatively( + Order, openorders, non_primary=True + ) + closed_mapper = self.mapper_registry.map_imperatively( + Order, closedorders, non_primary=True + ) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -2923,16 +2929,20 @@ class NonPrimaryRelationshipLoaderTest(_fixtures.FixtureTest): openorders = sa.alias(orders, "openorders") closedorders = sa.alias(orders, "closedorders") - mapper(Address, addresses) - mapper(Order, orders) + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively(Order, orders) with testing.expect_deprecated( "The mapper.non_primary parameter is deprecated" ): - open_mapper = mapper(Order, openorders, non_primary=True) - closed_mapper = mapper(Order, closedorders, non_primary=True) + open_mapper = self.mapper_registry.map_imperatively( + Order, openorders, non_primary=True + ) + closed_mapper = self.mapper_registry.map_imperatively( + Order, closedorders, non_primary=True + ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -2975,16 +2985,20 @@ class NonPrimaryRelationshipLoaderTest(_fixtures.FixtureTest): openorders = sa.alias(orders, "openorders") closedorders = sa.alias(orders, "closedorders") - mapper(Address, addresses) - mapper(Order, orders) + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively(Order, orders) with testing.expect_deprecated( "The mapper.non_primary parameter is deprecated" ): - open_mapper = mapper(Order, openorders, non_primary=True) - closed_mapper = mapper(Order, closedorders, non_primary=True) + open_mapper = self.mapper_registry.map_imperatively( + Order, openorders, non_primary=True + ) + closed_mapper = self.mapper_registry.map_imperatively( + Order, closedorders, non_primary=True + ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -3028,16 +3042,20 @@ class NonPrimaryRelationshipLoaderTest(_fixtures.FixtureTest): openorders = sa.alias(orders, "openorders") closedorders = sa.alias(orders, "closedorders") - mapper(Address, addresses) - mapper(Order, orders) + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively(Order, orders) with testing.expect_deprecated( "The mapper.non_primary parameter is deprecated" ): - open_mapper = mapper(Order, openorders, non_primary=True) - closed_mapper = mapper(Order, closedorders, non_primary=True) + open_mapper = self.mapper_registry.map_imperatively( + Order, openorders, non_primary=True + ) + closed_mapper = self.mapper_registry.map_imperatively( + Order, closedorders, non_primary=True + ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -3186,6 +3204,9 @@ class ViewonlyFlagWarningTest(fixtures.MappedTest): class NonPrimaryMapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): __dialect__ = "default" + def teardown_test(self): + clear_mappers() + def test_non_primary_identity_class(self): User = self.classes.User users, addresses = self.tables.users, self.tables.addresses @@ -3193,8 +3214,10 @@ class NonPrimaryMapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): class AddressUser(User): pass - mapper(User, users, polymorphic_identity="user") - m2 = mapper( + self.mapper_registry.map_imperatively( + User, users, polymorphic_identity="user" + ) + m2 = self.mapper_registry.map_imperatively( AddressUser, addresses, inherits=User, @@ -3204,7 +3227,9 @@ class NonPrimaryMapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): with testing.expect_deprecated( "The mapper.non_primary parameter is deprecated" ): - m3 = mapper(AddressUser, addresses, non_primary=True) + m3 = self.mapper_registry.map_imperatively( + AddressUser, addresses, non_primary=True + ) assert m3._identity_class is m2._identity_class eq_( m2.identity_key_from_instance(AddressUser()), @@ -3219,12 +3244,12 @@ class NonPrimaryMapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): self.classes.User, ) - mapper(User, users) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively(Address, addresses) with testing.expect_deprecated( "The mapper.non_primary parameter is deprecated" ): - m = mapper( # noqa F841 + m = self.mapper_registry.map_imperatively( # noqa F841 User, users, non_primary=True, @@ -3240,6 +3265,69 @@ class NonPrimaryMapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): def test_illegal_non_primary_2(self): User, users = self.classes.User, self.tables.users + assert_raises_message( + sa.exc.InvalidRequestError, + "Configure a primary mapper first", + self.mapper_registry.map_imperatively, + User, + users, + non_primary=True, + ) + + def test_illegal_non_primary_3(self): + users, addresses = self.tables.users, self.tables.addresses + + class Base(object): + pass + + class Sub(Base): + pass + + self.mapper_registry.map_imperatively(Base, users) + assert_raises_message( + sa.exc.InvalidRequestError, + "Configure a primary mapper first", + self.mapper_registry.map_imperatively, + Sub, + addresses, + non_primary=True, + ) + + def test_illegal_non_primary_legacy(self): + users, Address, addresses, User = ( + self.tables.users, + self.classes.Address, + self.tables.addresses, + self.classes.User, + ) + + with testing.expect_deprecated( + "Calling the mapper.* function directly outside of a declarative " + ): + mapper(User, users) + with testing.expect_deprecated( + "Calling the mapper.* function directly outside of a declarative " + ): + mapper(Address, addresses) + with testing.expect_deprecated( + "The mapper.non_primary parameter is deprecated" + ): + m = mapper( # noqa F841 + User, + users, + non_primary=True, + properties={"addresses": relationship(Address)}, + ) + assert_raises_message( + sa.exc.ArgumentError, + "Attempting to assign a new relationship 'addresses' " + "to a non-primary mapper on class 'User'", + configure_mappers, + ) + + def test_illegal_non_primary_2_legacy(self): + User, users = self.classes.User, self.tables.users + with testing.expect_deprecated( "The mapper.non_primary parameter is deprecated" ): @@ -3252,7 +3340,7 @@ class NonPrimaryMapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): non_primary=True, ) - def test_illegal_non_primary_3(self): + def test_illegal_non_primary_3_legacy(self): users, addresses = self.tables.users, self.tables.addresses class Base(object): @@ -3261,9 +3349,12 @@ class NonPrimaryMapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): class Sub(Base): pass - mapper(Base, users) with testing.expect_deprecated( - "The mapper.non_primary parameter is deprecated" + "Calling the mapper.* function directly outside of a declarative " + ): + mapper(Base, users) + with testing.expect_deprecated( + "The mapper.non_primary parameter is deprecated", ): assert_raises_message( sa.exc.InvalidRequestError, @@ -3665,7 +3756,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): event.listen(sess, "after_bulk_update", legacy) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with testing.expect_deprecated( 'The argument signature for the "SessionEvents.after_bulk_update" ' @@ -3695,7 +3786,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): event.listen(sess, "after_bulk_delete", legacy) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with testing.expect_deprecated( 'The argument signature for the "SessionEvents.after_bulk_delete" ' @@ -3726,9 +3817,11 @@ class ImmediateTest(_fixtures.FixtureTest): cls.classes.User, ) - mapper(Address, addresses) + cls.mapper_registry.map_imperatively(Address, addresses) - mapper(User, users, properties=dict(addresses=relationship(Address))) + cls.mapper_registry.map_imperatively( + User, users, properties=dict(addresses=relationship(Address)) + ) def test_value(self): User = self.classes.User @@ -4914,7 +5007,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL): def setup_mappers(cls): Node, nodes = cls.classes.Node, cls.tables.nodes - mapper( + cls.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -5431,16 +5524,18 @@ class JoinFromSelectableTest(fixtures.MappedTest, AssertsCompiledSQL): @classmethod def setup_classes(cls): - table1, table2 = cls.tables.table1, cls.tables.table2 - class T1(cls.Comparable): pass class T2(cls.Comparable): pass - mapper(T1, table1) - mapper(T2, table2) + @classmethod + def setup_mappers(cls): + T1, T2 = cls.classes("T1", "T2") + table1, table2 = cls.tables.table1, cls.tables.table2 + cls.mapper_registry.map_imperatively(T1, table1) + cls.mapper_registry.map_imperatively(T2, table2) def test_mapped_to_select_implicit_left_w_aliased(self): T1, T2 = self.classes.T1, self.classes.T2 @@ -5513,7 +5608,7 @@ class MultiplePathTest(fixtures.MappedTest, AssertsCompiledSQL): class T2(object): pass - mapper( + self.mapper_registry.map_imperatively( T1, t1, properties={ @@ -5521,7 +5616,7 @@ class MultiplePathTest(fixtures.MappedTest, AssertsCompiledSQL): "t2s_2": relationship(T2, secondary=t1t2_2), }, ) - mapper(T2, t2) + self.mapper_registry.map_imperatively(T2, t2) with testing.expect_deprecated_20(join_strings_dep): q = ( @@ -5544,7 +5639,7 @@ class MultiplePathTest(fixtures.MappedTest, AssertsCompiledSQL): ) -class BindSensitiveStringifyTest(fixtures.TestBase): +class BindSensitiveStringifyTest(fixtures.MappedTest): def _fixture(self): # building a totally separate metadata /mapping here # because we need to control if the MetaData is bound or not @@ -5560,7 +5655,8 @@ class BindSensitiveStringifyTest(fixtures.TestBase): Column("name", String(50)), ) - mapper(User, user_table) + clear_mappers() + self.mapper_registry.map_imperatively(User, user_table) return User def _dialect_fixture(self): @@ -5763,3 +5859,101 @@ class ExplicitJoinTest(fixtures.MappedTest): .all(), [], ) + + +class RequirementsTest(fixtures.MappedTest): + + """Tests the contract for user classes.""" + + @classmethod + def define_tables(cls, metadata): + Table( + "ht1", + metadata, + Column( + "id", Integer, primary_key=True, test_needs_autoincrement=True + ), + Column("value", String(10)), + ) + Table( + "ht2", + metadata, + Column( + "id", Integer, primary_key=True, test_needs_autoincrement=True + ), + Column("ht1_id", Integer, ForeignKey("ht1.id")), + Column("value", String(10)), + ) + Table( + "ht3", + metadata, + Column( + "id", Integer, primary_key=True, test_needs_autoincrement=True + ), + Column("value", String(10)), + ) + Table( + "ht4", + metadata, + Column("ht1_id", Integer, ForeignKey("ht1.id"), primary_key=True), + Column("ht3_id", Integer, ForeignKey("ht3.id"), primary_key=True), + ) + Table( + "ht5", + metadata, + Column("ht1_id", Integer, ForeignKey("ht1.id"), primary_key=True), + ) + Table( + "ht6", + metadata, + Column("ht1a_id", Integer, ForeignKey("ht1.id"), primary_key=True), + Column("ht1b_id", Integer, ForeignKey("ht1.id"), primary_key=True), + Column("value", String(10)), + ) + + if util.py2k: + + def test_baseclass_map_imperatively(self): + ht1 = self.tables.ht1 + + class OldStyle: + pass + + assert_raises( + sa.exc.ArgumentError, + self.mapper_registry.map_imperatively, + OldStyle, + ht1, + ) + + assert_raises( + sa.exc.ArgumentError, + self.mapper_registry.map_imperatively, + 123, + ) + + def test_baseclass_legacy_mapper(self): + ht1 = self.tables.ht1 + + class OldStyle: + pass + + assert_raises( + sa.exc.ArgumentError, + mapper, + OldStyle, + ht1, + ) + + assert_raises( + sa.exc.ArgumentError, + mapper, + 123, + ) + + class NoWeakrefSupport(str): + pass + + # TODO: is weakref support detectable without an instance? + # self.assertRaises( + # sa.exc.ArgumentError, mapper, NoWeakrefSupport, t2) diff --git a/test/orm/test_dynamic.py b/test/orm/test_dynamic.py index 4a936dd3e5..8479152bfa 100644 --- a/test/orm/test_dynamic.py +++ b/test/orm/test_dynamic.py @@ -10,7 +10,6 @@ from sqlalchemy.orm import attributes from sqlalchemy.orm import backref from sqlalchemy.orm import configure_mappers from sqlalchemy.orm import exc as orm_exc -from sqlalchemy.orm import mapper from sqlalchemy.orm import noload from sqlalchemy.orm import Query from sqlalchemy.orm import relationship @@ -34,7 +33,7 @@ class _DynamicFixture(object): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -43,7 +42,7 @@ class _DynamicFixture(object): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) return User, Address def _order_item_fixture(self, items_args={}): @@ -55,7 +54,7 @@ class _DynamicFixture(object): self.classes.Item, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -64,7 +63,7 @@ class _DynamicFixture(object): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) return Order, Item def _user_order_item_fixture(self): @@ -92,7 +91,7 @@ class _DynamicFixture(object): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -101,7 +100,7 @@ class _DynamicFixture(object): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -110,7 +109,7 @@ class _DynamicFixture(object): ), }, ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties={ @@ -119,7 +118,7 @@ class _DynamicFixture(object): ) # m2m }, ) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) return User, Order, Item, Keyword @@ -293,12 +292,12 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): self.tables.addresses, self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={"user": relationship(User, lazy="dynamic")}, ) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) assert_raises_message( exc.InvalidRequestError, "On relationship Address.user, 'dynamic' loaders cannot be " @@ -314,14 +313,14 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): self.tables.addresses, self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ "user": relationship(User, uselist=True, lazy="dynamic") }, ) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) assert_raises_message( exc.SAWarning, "On relationship Address.user, 'dynamic' loaders cannot be " @@ -431,7 +430,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -440,7 +439,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): ) }, ) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() ad = sess.query(Address).get(1) @@ -548,7 +547,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): self.classes.Item, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -560,7 +559,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() o = sess.query(Order).first() @@ -589,7 +588,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): self.classes.Item, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -598,7 +597,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() u1 = sess.query(User).first() @@ -632,7 +631,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): class ItemKeyword(object): pass - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -641,12 +640,12 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): ) }, ) - mapper( + self.mapper_registry.map_imperatively( ItemKeyword, item_keywords, primary_key=[item_keywords.c.item_id, item_keywords.c.keyword_id], ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties={"item_keywords": relationship(ItemKeyword)}, @@ -981,7 +980,7 @@ class UOWTest( def test_self_referential(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ diff --git a/test/orm/test_eager_relations.py b/test/orm/test_eager_relations.py index 41c715efa3..cb3ce8bfd5 100644 --- a/test/orm/test_eager_relations.py +++ b/test/orm/test_eager_relations.py @@ -24,7 +24,6 @@ from sqlalchemy.orm import joinedload from sqlalchemy.orm import lazyload from sqlalchemy.orm import Load from sqlalchemy.orm import load_only -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.orm import undefer @@ -60,12 +59,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="joined", order_by=Address.id, ) @@ -95,12 +94,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="joined", order_by=Address.id, ) @@ -130,10 +129,15 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.users, ) - m = mapper(User, users) + m = self.mapper_registry.map_imperatively(User, users) sess = fixture_session() sess.query(User).all() - m.add_property("addresses", relationship(mapper(Address, addresses))) + m.add_property( + "addresses", + relationship( + self.mapper_registry.map_imperatively(Address, addresses) + ), + ) sess.expunge_all() @@ -165,7 +169,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -174,7 +178,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() user = sess.query(User).get(7) @@ -194,12 +198,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="joined", order_by=addresses.c.email_address, ) @@ -231,12 +235,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="joined", order_by=[addresses.c.email_address, addresses.c.id], ) @@ -271,8 +275,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -313,8 +317,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -355,8 +359,10 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(Address, addresses) - mapper(User, users, properties=dict(addresses=relationship(Address))) + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties=dict(addresses=relationship(Address)) + ) sess = fixture_session() q = ( @@ -399,7 +405,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.addresses, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -407,7 +413,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): "user": relationship(User, lazy="joined"), }, ) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -457,12 +463,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): # trigger, etc.) sa.orm.clear_mappers() - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={"user_id": deferred(addresses.c.user_id)}, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, lazy="joined")}, @@ -487,7 +493,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): sa.orm.clear_mappers() - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -496,7 +502,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -504,7 +510,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): "dingalings": relationship(Dingaling, lazy="joined"), }, ) - mapper( + self.mapper_registry.map_imperatively( Dingaling, dingalings, properties={"address_id": deferred(dingalings.c.address_id)}, @@ -530,12 +536,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): def test_aliased_stmt_includes_unnamed_fn(self): User, Address = self.classes("User", "Address") users, addresses = self.tables("users", "addresses") - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, lazy="joined")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session() @@ -569,14 +575,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): User, Address = self.classes("User", "Address") users, addresses = self.tables("users", "addresses") - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship(Address, order_by=addresses.c.id) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session() @@ -629,14 +635,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.item_keywords, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "orders": relationship(Order, order_by=orders.c.id) # o2m, m2o }, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -645,7 +651,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) # m2m }, ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties={ @@ -654,7 +660,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) # m2m }, ) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) for opt, count in [ ((joinedload(User.orders, Order.items),), 10), @@ -695,12 +701,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, lazy="dynamic")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() assert_raises_message( sa.exc.InvalidRequestError, @@ -718,8 +724,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Item, ) - mapper(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively(Keyword, keywords) + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -765,8 +771,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Item, ) - mapper(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively(Keyword, keywords) + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -804,8 +810,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -852,8 +858,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.order_items, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -865,12 +871,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) open_mapper = aliased(Order, orders) closed_mapper = aliased(Order, orders) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -928,8 +934,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.order_items, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -941,7 +947,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) open_mapper = aliased( Order, select(orders).where(orders.c.isopen == 1).alias() @@ -950,7 +956,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): Order, select(orders).where(orders.c.isopen == 0).alias() ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -994,8 +1000,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.users, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -1007,8 +1013,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Item, items) - mapper( + self.mapper_registry.map_imperatively(Item, items) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -1099,12 +1105,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): elif type_ == "subquery": target = select(users).subquery() - mapper( + self.mapper_registry.map_imperatively( User, target, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() @@ -1128,7 +1134,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.users, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1136,8 +1142,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): "orders": relationship(Order, lazy="joined"), }, ) - mapper(Address, addresses) - mapper(Order, orders) + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively(Order, orders) self.allusers = fixture_session().query(User).all() @@ -1179,8 +1185,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.addresses, ) - mapper(Item, items) - mapper( + self.mapper_registry.map_imperatively(Item, items) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -1192,12 +1198,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="joined", order_by=addresses.c.id, ), @@ -1232,12 +1238,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): u2.select(), ).alias("u") - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="joined", order_by=addresses.c.id, ) @@ -1265,12 +1271,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="joined", order_by=addresses.c.email_address, ) @@ -1304,8 +1310,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Item, ) - mapper(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively(Keyword, keywords) + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -1361,8 +1367,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.users, ) - mapper(Item, items) - mapper( + self.mapper_registry.map_imperatively(Item, items) + self.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -1370,8 +1376,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ), ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -1445,7 +1451,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) .alias("useralias") ) - mapper( + self.mapper_registry.map_imperatively( User, sel, properties={ @@ -1457,7 +1463,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session() eq_( @@ -1503,8 +1509,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -1544,8 +1550,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -1609,12 +1615,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.addresses, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=odict(orders=relationship(Order, backref="user")), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=odict( @@ -1629,8 +1635,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ] ), ) - mapper(Address, addresses) - mapper(Item, items) + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() @@ -1779,12 +1785,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( address=relationship( - mapper(Address, addresses), lazy="joined", uselist=False + self.mapper_registry.map_imperatively(Address, addresses), + lazy="joined", + uselist=False, ) ), ) @@ -1804,12 +1812,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( address=relationship( - mapper(Address, addresses), lazy="joined", uselist=False + self.mapper_registry.map_imperatively(Address, addresses), + lazy="joined", + uselist=False, ) ), ) @@ -1837,11 +1847,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties=dict( - user=relationship(mapper(User, users), lazy="joined") + user=relationship( + self.mapper_registry.map_imperatively(User, users), + lazy="joined", + ) ), ) sess = fixture_session() @@ -1870,12 +1883,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): # use a primaryjoin intended to defeat SA's usage of # query.get() for a many-to-one lazyload - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict( address=relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), primaryjoin=and_( addresses.c.id == orders.c.address_id, addresses.c.email_address != None, # noqa @@ -1919,7 +1932,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Order, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1928,8 +1941,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Item, items) - mapper( + self.mapper_registry.map_imperatively(Item, items) + self.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -1973,8 +1986,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): .alias("max_orders") ) - mapper(Order, orders) - mapper( + self.mapper_registry.map_imperatively(Order, orders) + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2021,12 +2034,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Order, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"order": relationship(Order, uselist=False)}, ) - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) s = fixture_session() assert_raises( sa.exc.SAWarning, s.query(User).options(joinedload(User.order)).all @@ -2055,7 +2068,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.addresses, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -2067,13 +2080,13 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Item, items) - mapper( + self.mapper_registry.map_imperatively(Item, items) + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy=False, order_by=addresses.c.id, ), @@ -2102,11 +2115,11 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): s = sa.select(orders).where(orders.c.isopen == 1).alias("openorders") - mapper( + self.mapper_registry.map_imperatively( Order, s, properties={"user": relationship(User, lazy="joined")} ) - mapper(User, users) - mapper(Item, items) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively(Item, items) q = fixture_session().query(Order) eq_( @@ -2130,12 +2143,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="joined", order_by=addresses.c.id, ) @@ -2157,12 +2170,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="joined", innerjoin=True, order_by=addresses.c.id, @@ -2207,14 +2220,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( orders=relationship(Order, innerjoin="unnested", lazy=False) ), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -2226,7 +2239,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) ), ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() self.assert_compile( @@ -2296,7 +2309,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -2305,7 +2318,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) ), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -2318,7 +2331,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) ), ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() self.assert_compile( @@ -2419,12 +2432,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict(orders=relationship(Order, order_by=orders.c.id)), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -2433,7 +2446,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) ), ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() q = sess.query(User).options( @@ -2497,7 +2510,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): Order, orders = self.classes.Order, self.tables.orders Address, addresses = self.classes.Address, self.tables.addresses - mapper( + self.mapper_registry.map_imperatively( User, users, properties=odict( @@ -2507,8 +2520,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ] ), ) - mapper(Order, orders) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Order, orders) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() q = sess.query(User).options( @@ -2539,7 +2552,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): Order, orders = self.classes.Order, self.tables.orders Address, addresses = self.classes.Address, self.tables.addresses - mapper( + self.mapper_registry.map_imperatively( User, users, properties=odict( @@ -2549,8 +2562,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ] ), ) - mapper(Order, orders) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Order, orders) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() q = sess.query(User).options( @@ -2601,14 +2614,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.item_keywords, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "orders": relationship(Order, backref="user") }, # o2m, m2o ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -2617,7 +2630,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) # m2m }, ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties={ @@ -2626,7 +2639,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) # m2m }, ) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) sess = fixture_session() q = ( @@ -2682,12 +2695,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict(orders=relationship(Order, lazy=False)), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -2699,7 +2712,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) ), ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() @@ -2746,12 +2759,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict(orders=relationship(Order, lazy=False)), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -2760,7 +2773,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) ), ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() @@ -2793,7 +2806,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -2804,7 +2817,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) ), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -2813,7 +2826,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) ), ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() self.assert_compile( sess.query(User).options(joinedload(User.orders, innerjoin=True)), @@ -2920,19 +2933,19 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.orders, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict(orders=relationship(Order, lazy="select")), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict( items=relationship(Item, secondary=order_items, lazy="joined") ), ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() @@ -3154,8 +3167,10 @@ class InnerJoinSplicingTest(fixtures.MappedTest, testing.AssertsCompiledSQL): cls.classes.D2, cls.classes.E1, ) - mapper(A, cls.tables.a, properties={"bs": relationship(B)}) - mapper( + cls.mapper_registry.map_imperatively( + A, cls.tables.a, properties={"bs": relationship(B)} + ) + cls.mapper_registry.map_imperatively( B, cls.tables.b, properties=odict( @@ -3165,23 +3180,23 @@ class InnerJoinSplicingTest(fixtures.MappedTest, testing.AssertsCompiledSQL): ] ), ) - mapper( + cls.mapper_registry.map_imperatively( C1, cls.tables.c1, properties={"d1s": relationship(D1, order_by=cls.tables.d1.c.id)}, ) - mapper( + cls.mapper_registry.map_imperatively( C2, cls.tables.c2, properties={"d2s": relationship(D2, order_by=cls.tables.d2.c.id)}, ) - mapper( + cls.mapper_registry.map_imperatively( D1, cls.tables.d1, properties={"e1s": relationship(E1, order_by=cls.tables.e1.c.id)}, ) - mapper(D2, cls.tables.d2) - mapper(E1, cls.tables.e1) + cls.mapper_registry.map_imperatively(D2, cls.tables.d2) + cls.mapper_registry.map_imperatively(E1, cls.tables.e1) @classmethod def _fixture_data(cls): @@ -3453,9 +3468,13 @@ class InnerJoinSplicingWSecondaryTest( cls.classes.C, cls.classes.D, ) - mapper(A, cls.tables.a, properties={"b": relationship(B)}) - mapper(B, cls.tables.b, properties=odict([("c", relationship(C))])) - mapper( + cls.mapper_registry.map_imperatively( + A, cls.tables.a, properties={"b": relationship(B)} + ) + cls.mapper_registry.map_imperatively( + B, cls.tables.b, properties=odict([("c", relationship(C))]) + ) + cls.mapper_registry.map_imperatively( C, cls.tables.c, properties=odict( @@ -3471,7 +3490,7 @@ class InnerJoinSplicingWSecondaryTest( ] ), ) - mapper(D, cls.tables.d) + cls.mapper_registry.map_imperatively(D, cls.tables.d) @classmethod def _fixture_data(cls): @@ -3553,8 +3572,10 @@ class SubqueryAliasingTest(fixtures.MappedTest, testing.AssertsCompiledSQL): def _fixture(self, props): A, B = self.classes.A, self.classes.B b_table, a_table = self.tables.b, self.tables.a - mapper(A, a_table, properties=props) - mapper(B, b_table, properties={"a": relationship(A, backref="bs")}) + self.mapper_registry.map_imperatively(A, a_table, properties=props) + self.mapper_registry.map_imperatively( + B, b_table, properties={"a": relationship(A, backref="bs")} + ) def test_column_property(self): A = self.classes.A @@ -3729,17 +3750,19 @@ class LoadOnExistingTest(_fixtures.FixtureTest): self.classes.Address, self.classes.Dingaling, ) - mapper( + self.mapper_registry.map_imperatively( User, self.tables.users, properties={"addresses": relationship(Address)}, ) - mapper( + self.mapper_registry.map_imperatively( Address, self.tables.addresses, properties={"dingaling": relationship(Dingaling)}, ) - mapper(Dingaling, self.tables.dingalings) + self.mapper_registry.map_imperatively( + Dingaling, self.tables.dingalings + ) sess = fixture_session(autoflush=False) return User, Address, Dingaling, sess @@ -3750,29 +3773,29 @@ class LoadOnExistingTest(_fixtures.FixtureTest): self.classes.Order, self.classes.Item, ) - mapper( + self.mapper_registry.map_imperatively( User, self.tables.users, properties={"orders": relationship(Order)} ) - mapper( + self.mapper_registry.map_imperatively( Order, self.tables.orders, properties={ "items": relationship(Item, secondary=self.tables.order_items) }, ) - mapper(Item, self.tables.items) + self.mapper_registry.map_imperatively(Item, self.tables.items) sess = fixture_session(autoflush=False) return User, Order, Item, sess def _eager_config_fixture(self): User, Address = self.classes.User, self.classes.Address - mapper( + self.mapper_registry.map_imperatively( User, self.tables.users, properties={"addresses": relationship(Address, lazy="joined")}, ) - mapper(Address, self.tables.addresses) + self.mapper_registry.map_imperatively(Address, self.tables.addresses) sess = fixture_session(autoflush=False) return User, Address, sess @@ -3797,7 +3820,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): ) def test_refresh_no_recursion(self, strat): User, Address = self.classes.User, self.classes.Address - mapper( + self.mapper_registry.map_imperatively( User, self.tables.users, properties={ @@ -3806,7 +3829,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Address, self.tables.addresses, properties={ @@ -3982,7 +4005,7 @@ class AddEntityTest(_fixtures.FixtureTest): self.tables.addresses, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -3990,8 +4013,8 @@ class AddEntityTest(_fixtures.FixtureTest): "orders": relationship(Order), }, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -4003,7 +4026,7 @@ class AddEntityTest(_fixtures.FixtureTest): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() oalias = sa.orm.aliased(Order) @@ -4042,7 +4065,7 @@ class AddEntityTest(_fixtures.FixtureTest): self.tables.addresses, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -4050,8 +4073,8 @@ class AddEntityTest(_fixtures.FixtureTest): "orders": relationship(Order), }, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -4060,7 +4083,7 @@ class AddEntityTest(_fixtures.FixtureTest): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() @@ -4148,7 +4171,7 @@ class OrderBySecondaryTest(fixtures.MappedTest): class B(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( A, a, properties={ @@ -4157,7 +4180,7 @@ class OrderBySecondaryTest(fixtures.MappedTest): ) }, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) sess = fixture_session() eq_( @@ -4189,7 +4212,7 @@ class SelfReferentialEagerTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -4265,7 +4288,7 @@ class SelfReferentialEagerTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -4312,7 +4335,7 @@ class SelfReferentialEagerTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -4373,7 +4396,7 @@ class SelfReferentialEagerTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -4448,7 +4471,7 @@ class SelfReferentialEagerTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={"children": relationship(Node, lazy="joined")}, @@ -4521,8 +4544,8 @@ class MixedSelfReferentialEagerTest(fixtures.MappedTest): class B(cls.Comparable): pass - mapper(A, a_table) - mapper( + cls.mapper_registry.map_imperatively(A, a_table) + cls.mapper_registry.map_imperatively( B, b_table, properties={ @@ -4640,7 +4663,7 @@ class SelfReferentialM2MEagerTest(fixtures.MappedTest): class Widget(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( Widget, widget, properties={ @@ -4707,7 +4730,7 @@ class MixedEntitiesTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): cls.tables.addresses, ) - mapper( + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -4715,8 +4738,8 @@ class MixedEntitiesTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): "orders": relationship(Order, backref="user"), # o2m, m2o }, ) - mapper(Address, addresses) - mapper( + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively( Order, orders, properties={ @@ -4725,7 +4748,7 @@ class MixedEntitiesTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) # m2m }, ) - mapper( + cls.mapper_registry.map_imperatively( Item, items, properties={ @@ -4734,7 +4757,7 @@ class MixedEntitiesTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) # m2m }, ) - mapper(Keyword, keywords) + cls.mapper_registry.map_imperatively(Keyword, keywords) def test_two_entities(self): Item, Order, User, Address = ( @@ -5083,13 +5106,13 @@ class SubqueryTest(fixtures.MappedTest): else: user_score = user_score.scalar_subquery() - mapper( + self.mapper_registry.map_imperatively( Tag, tags_table, properties={"query_score": sa.orm.column_property(tag_score)}, ) - mapper( + self.mapper_registry.map_imperatively( User, users_table, properties={ @@ -5225,7 +5248,7 @@ class CorrelatedSubqueryTest(fixtures.MappedTest): class Stuff(fixtures.ComparableEntity): pass - mapper(Stuff, stuff) + self.mapper_registry.map_imperatively(Stuff, stuff) if aliasstuff: salias = stuff.alias() else: @@ -5268,7 +5291,7 @@ class CorrelatedSubqueryTest(fixtures.MappedTest): stuff_view = stuff_view.scalar_subquery() if ondate: - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -5282,7 +5305,7 @@ class CorrelatedSubqueryTest(fixtures.MappedTest): }, ) else: - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -5389,8 +5412,10 @@ class CyclicalInheritingEagerTestOne(fixtures.MappedTest): class SubT2(T2): pass - mapper(T, t1, polymorphic_on=t1.c.type, polymorphic_identity="t1") - mapper( + self.mapper_registry.map_imperatively( + T, t1, polymorphic_on=t1.c.type, polymorphic_identity="t1" + ) + self.mapper_registry.map_imperatively( SubT, None, inherits=T, @@ -5403,8 +5428,12 @@ class CyclicalInheritingEagerTestOne(fixtures.MappedTest): ) }, ) - mapper(T2, t2, polymorphic_on=t2.c.type, polymorphic_identity="t2") - mapper(SubT2, None, inherits=T2, polymorphic_identity="subt2") + self.mapper_registry.map_imperatively( + T2, t2, polymorphic_on=t2.c.type, polymorphic_identity="t2" + ) + self.mapper_registry.map_imperatively( + SubT2, None, inherits=T2, polymorphic_identity="subt2" + ) # testing a particular endless loop condition in eager load setup fixture_session().query(SubT).all() @@ -6243,9 +6272,9 @@ class DeepOptionsTest(_fixtures.FixtureTest): cls.tables.orders, ) - mapper(Keyword, keywords) + cls.mapper_registry.map_imperatively(Keyword, keywords) - mapper( + cls.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -6255,7 +6284,7 @@ class DeepOptionsTest(_fixtures.FixtureTest): ), ) - mapper( + cls.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -6263,7 +6292,7 @@ class DeepOptionsTest(_fixtures.FixtureTest): ), ) - mapper( + cls.mapper_registry.map_imperatively( User, users, properties=dict(orders=relationship(Order, order_by=orders.c.id)), @@ -6431,13 +6460,13 @@ class SecondaryOptionsTest(fixtures.MappedTest): class Related(cls.Comparable): pass - mapper( + cls.mapper_registry.map_imperatively( Base, base, polymorphic_on=base.c.type, properties={"related": relationship(Related, uselist=False)}, ) - mapper( + cls.mapper_registry.map_imperatively( Child1, child1, inherits=Base, @@ -6450,8 +6479,10 @@ class SecondaryOptionsTest(fixtures.MappedTest): ) }, ) - mapper(Child2, child2, inherits=Base, polymorphic_identity="child2") - mapper(Related, related) + cls.mapper_registry.map_imperatively( + Child2, child2, inherits=Base, polymorphic_identity="child2" + ) + cls.mapper_registry.map_imperatively(Related, related) @classmethod def insert_data(cls, connection): diff --git a/test/orm/test_evaluator.py b/test/orm/test_evaluator.py index db56eeb833..62acca5827 100644 --- a/test/orm/test_evaluator.py +++ b/test/orm/test_evaluator.py @@ -11,7 +11,6 @@ from sqlalchemy import String from sqlalchemy import tuple_ from sqlalchemy.orm import evaluator from sqlalchemy.orm import exc as orm_exc -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import assert_raises from sqlalchemy.testing import assert_raises_message @@ -62,7 +61,7 @@ class EvaluateTest(fixtures.MappedTest): def setup_mappers(cls): users, User = cls.tables.users, cls.classes.User - mapper(User, users) + cls.mapper_registry.map_imperatively(User, users) def test_compare_to_value(self): User = self.classes.User diff --git a/test/orm/test_events.py b/test/orm/test_events.py index 8062ca7b66..297dfd2324 100644 --- a/test/orm/test_events.py +++ b/test/orm/test_events.py @@ -651,8 +651,8 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): class B(A): pass - mapper(A, users) - mapper( + self.mapper_registry.map_imperatively(A, users) + self.mapper_registry.map_imperatively( B, addresses, inherits=A, properties={"address_id": addresses.c.id} ) @@ -722,7 +722,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_init_allow_kw_modify(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) @event.listens_for(User, "init") def add_name(obj, args, kwargs): @@ -739,7 +739,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): if kw.get("fail"): raise Exception("failure") - mapper(Thing, users) + self.mapper_registry.map_imperatively(Thing, users) canary = Mock() event.listen(Thing, "init_failure", canary) @@ -752,7 +752,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_listen_doesnt_force_compile(self): User, users = self.classes.User, self.tables.users - m = mapper( + m = self.mapper_registry.map_imperatively( User, users, properties={ @@ -768,7 +768,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_basic(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) canary = self.listen_all(User) named_canary = self.listen_all(User, named=True) @@ -804,7 +804,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_insert_before_configured(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) canary = Mock() @@ -823,7 +823,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_insert_flags(self): users, User = self.tables.users, self.classes.User - m = mapper(User, users) + m = self.mapper_registry.map_imperatively(User, users) canary = Mock() @@ -856,7 +856,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_merge(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) canary = [] @@ -887,8 +887,8 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): class AdminUser(User): pass - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( AdminUser, addresses, inherits=User, @@ -951,7 +951,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): self.classes.User, ) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) canary1 = self.listen_all(User, propagate=True) canary2 = self.listen_all(User) @@ -959,7 +959,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): class AdminUser(User): pass - mapper( + self.mapper_registry.map_imperatively( AdminUser, addresses, inherits=User, @@ -1026,14 +1026,14 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): self.classes.Item, ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties={ "keywords": relationship(Keyword, secondary=item_keywords) }, ) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) canary1 = self.listen_all(Item) canary2 = self.listen_all(Keyword) @@ -1060,7 +1060,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): m1 = Mock() - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) assert_raises_message( sa.exc.SAWarning, r"before_configured' and 'after_configured' ORM events only " @@ -1089,7 +1089,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): m1 = Mock() m2 = Mock() - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) event.listen(mapper, "before_configured", m1) event.listen(mapper, "after_configured", m2) @@ -1114,9 +1114,9 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): event.listen(Mapper, "instrument_class", instrument_class) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) eq_(canary, [User]) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) eq_(canary, [User, Address]) def test_instrument_class_precedes_class_instrumentation(self): @@ -1145,9 +1145,9 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): def class_instrument(class_): canary.class_instrument(class_) - mapper(MyClass, users) + self.mapper_registry.map_imperatively(MyClass, users) - mapper(MySubClass, inherits=MyClass) + self.mapper_registry.map_imperatively(MySubClass, inherits=MyClass) m1 = MyClass() assert attributes.instance_state(m1) @@ -1186,7 +1186,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): """ User, users = self.classes.User, self.tables.users - ump = mapper(User, users) + ump = self.mapper_registry.map_imperatively(User, users) AnotherBase = declarative_base() @@ -1428,7 +1428,7 @@ class DeferredMapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): event.listen(User, "before_insert", evt, raw=True) - m = mapper(User, users) + m = self.mapper_registry.map_imperatively(User, users) m.dispatch.before_insert(5, 6, 7) eq_(canary, [5]) @@ -1454,11 +1454,11 @@ class DeferredMapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): event.listen(User, "before_insert", canary, propagate=True, raw=True) - m = mapper(SubUser, users) + m = self.mapper_registry.map_imperatively(SubUser, users) m.dispatch.before_insert(5, 6, 7) eq_(canary.mock_calls, [call(5, 6, 7)]) - m2 = mapper(SubSubUser, users) + m2 = self.mapper_registry.map_imperatively(SubSubUser, users) m2.dispatch.before_insert(8, 9, 10) eq_(canary.mock_calls, [call(5, 6, 7), call(8, 9, 10)]) @@ -1482,7 +1482,7 @@ class DeferredMapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): event.listen(User, "before_insert", evt, propagate=False) - m = mapper(SubUser, users) + m = self.mapper_registry.map_imperatively(SubUser, users) m.dispatch.before_insert(5, 6, 7) eq_(canary, []) @@ -1498,7 +1498,7 @@ class DeferredMapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): class SubUser(User): pass - m = mapper(SubUser, users) + m = self.mapper_registry.map_imperatively(SubUser, users) canary = [] @@ -1525,12 +1525,12 @@ class DeferredMapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): class SubSubUser(SubUser): pass - m = mapper(SubUser, users) + m = self.mapper_registry.map_imperatively(SubUser, users) canary = Mock() event.listen(User, "before_insert", canary, propagate=True, raw=True) - m2 = mapper(SubSubUser, users) + m2 = self.mapper_registry.map_imperatively(SubSubUser, users) m.dispatch.before_insert(5, 6, 7) eq_(canary.mock_calls, [call(5, 6, 7)]) @@ -1550,7 +1550,7 @@ class DeferredMapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): class SubUser(User): pass - m = mapper(SubUser, users) + m = self.mapper_registry.map_imperatively(SubUser, users) canary = [] @@ -1578,7 +1578,7 @@ class DeferredMapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): event.listen(User, "load", evt, raw=True) - m = mapper(User, users) + m = self.mapper_registry.map_imperatively(User, users) m.class_manager.dispatch.load(5) eq_(canary, [5]) @@ -1604,8 +1604,8 @@ class DeferredMapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): event.listen(User, "load", evt, propagate=True, raw=True) - m = mapper(SubUser, users) - m2 = mapper(SubUser2, users) + m = self.mapper_registry.map_imperatively(SubUser, users) + m2 = self.mapper_registry.map_imperatively(SubUser2, users) m.class_manager.dispatch.load(5) eq_(canary, [5]) @@ -1635,8 +1635,8 @@ class DeferredMapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): event.listen(User, "load", canary, propagate=True, raw=False) # reversing these fixes.... - m = mapper(SubUser, users) - m2 = mapper(User, users) + m = self.mapper_registry.map_imperatively(SubUser, users) + m2 = self.mapper_registry.map_imperatively(User, users) instance = Mock() m.class_manager.dispatch.load(instance) @@ -1646,7 +1646,7 @@ class DeferredMapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): m2.class_manager.dispatch.load(instance) eq_(canary.mock_calls, [call(instance.obj()), call(instance.obj())]) - m3 = mapper(SubUser2, users) + m3 = self.mapper_registry.map_imperatively(SubUser2, users) m3.class_manager.dispatch.load(instance) eq_( canary.mock_calls, @@ -1671,7 +1671,7 @@ class DeferredMapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): event.listen(User, "load", evt, propagate=False) - m = mapper(SubUser, users) + m = self.mapper_registry.map_imperatively(SubUser, users) m.class_manager.dispatch.load(5) eq_(canary, []) @@ -1756,7 +1756,7 @@ class DeferredMapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): event.listen(User, "attribute_instrument", evt, propagate=False) - mapper(SubUser, users) + self.mapper_registry.map_imperatively(SubUser, users) instrumentation._instrumentation_factory.dispatch.attribute_instrument( 5 ) @@ -1770,7 +1770,7 @@ class LoadTest(_fixtures.FixtureTest): def setup_mappers(cls): User, users = cls.classes.User, cls.tables.users - mapper(User, users) + cls.mapper_registry.map_imperatively(User, users) def _fixture(self): User = self.classes.User @@ -1833,8 +1833,8 @@ class RemovalTest(_fixtures.FixtureTest): class AdminUser(User): pass - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( AdminUser, addresses, inherits=User, @@ -1868,7 +1868,7 @@ class RemovalTest(_fixtures.FixtureTest): class User(Foo): pass - m = mapper(User, users) + m = self.mapper_registry.map_imperatively(User, users) u1 = User() m.dispatch.before_insert(m, None, attributes.instance_state(u1)) @@ -1884,7 +1884,7 @@ class RemovalTest(_fixtures.FixtureTest): class Bar(Foo): pass - m = mapper(Bar, users) + m = self.mapper_registry.map_imperatively(Bar, users) b1 = Bar() m.dispatch.before_insert(m, None, attributes.instance_state(b1)) eq_(fn.call_count, 1) @@ -1898,7 +1898,7 @@ class RemovalTest(_fixtures.FixtureTest): pass event.listen(User, "load", fn) - m = mapper(User, users) + m = self.mapper_registry.map_imperatively(User, users) u1 = User() m.class_manager.dispatch.load(u1._sa_instance_state, "u1") @@ -1917,7 +1917,7 @@ class RefreshTest(_fixtures.FixtureTest): def setup_mappers(cls): User, users = cls.classes.User, cls.tables.users - mapper(User, users) + cls.mapper_registry.map_imperatively(User, users) def _fixture(self): User = self.classes.User @@ -2191,7 +2191,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_flush_autocommit_hook(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess, canary = self._listener_fixture( autoflush=False, autocommit=True, expire_on_commit=False @@ -2219,7 +2219,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_rollback_hook(self): User, users = self.classes.User, self.tables.users sess, canary = self._listener_fixture() - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u = User(name="u1", id=1) sess.add(u) @@ -2261,7 +2261,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_can_use_session_in_outer_rollback_hook(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -2304,7 +2304,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): sess, canary = self._listener_fixture() - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u = User(name="u1") sess.add(u) @@ -2329,7 +2329,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): sess, canary = self._listener_fixture() - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u = User(name="u1") sess.add(u) sess.flush() @@ -2364,7 +2364,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): else: assert inst not in session.new - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u = User(name="u1") sess.add(u) sess.flush() @@ -2383,7 +2383,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): else: assert inst in session.new - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u = User(name="u1") sess.add(u) sess.flush() @@ -2412,7 +2412,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): event.listen(sess, "after_begin", canary.after_begin) event.listen(sess, "after_bulk_update", canary.after_bulk_update) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess.query(User).update({"name": "foo"}) @@ -2432,7 +2432,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): event.listen(sess, "after_begin", canary.after_begin) event.listen(sess, "after_bulk_delete", canary.after_bulk_delete) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess.query(User).delete() @@ -2453,7 +2453,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_reentrant_flush(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) def before_flush(session, flush_context, objects): session.flush() @@ -2468,7 +2468,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_before_flush_affects_flush_plan(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) def before_flush(session, flush_context, objects): for obj in list(session.new) + list(session.dirty): @@ -2521,7 +2521,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_before_flush_affects_dirty(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) def before_flush(session, flush_context, objects): for obj in list(session.identity_map.values()): @@ -2546,7 +2546,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_snapshot_still_present_after_commit(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -2568,7 +2568,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest): def test_snapshot_still_present_after_rollback(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -2596,7 +2596,7 @@ class SessionLifecycleEventsTest(_RemoveListeners, _fixtures.FixtureTest): if include_address: addresses, Address = self.tables.addresses, self.classes.Address - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2605,9 +2605,9 @@ class SessionLifecycleEventsTest(_RemoveListeners, _fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) else: - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) listener = Mock() @@ -3142,7 +3142,7 @@ class QueryEventsTest( User = cls.classes.User users = cls.tables.users - mapper(User, users) + cls.mapper_registry.map_imperatively(User, users) def test_before_compile(self): @event.listens_for(query.Query, "before_compile", retval=True) @@ -3305,7 +3305,9 @@ class RefreshFlushInReturningTest(fixtures.MappedTest): def setup_mappers(cls): Thing = cls.classes.Thing - mapper(Thing, cls.tables.test, eager_defaults=True) + cls.mapper_registry.map_imperatively( + Thing, cls.tables.test, eager_defaults=True + ) def test_no_attr_events_flush(self): Thing = self.classes.Thing diff --git a/test/orm/test_expire.py b/test/orm/test_expire.py index 6c6c795b1a..92a7ea42d3 100644 --- a/test/orm/test_expire.py +++ b/test/orm/test_expire.py @@ -16,7 +16,6 @@ from sqlalchemy.orm import exc as orm_exc from sqlalchemy.orm import joinedload from sqlalchemy.orm import lazyload from sqlalchemy.orm import make_transient_to_detached -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.orm import strategies @@ -43,12 +42,12 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) u = sess.query(User).get(7) @@ -90,8 +89,10 @@ class ExpireTest(_fixtures.FixtureTest): User, users = self.classes.User, self.tables.users Address, addresses = self.classes.Address, self.tables.addresses - mapper(User, users) - mapper(Address, addresses, properties={"user": relationship(User)}) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) s = fixture_session() @@ -107,7 +108,7 @@ class ExpireTest(_fixtures.FixtureTest): def test_persistence_check(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session() u = s.query(User).get(7) s.expunge_all() @@ -122,7 +123,7 @@ class ExpireTest(_fixtures.FixtureTest): def test_get_refreshes(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session(autocommit=False) u = s.query(User).get(10) s.expire_all() @@ -145,7 +146,7 @@ class ExpireTest(_fixtures.FixtureTest): def test_get_on_deleted_expunges(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session(autocommit=False) u = s.query(User).get(10) @@ -160,7 +161,7 @@ class ExpireTest(_fixtures.FixtureTest): def test_refresh_on_deleted_raises(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session(autocommit=False) u = s.query(User).get(10) s.expire_all() @@ -181,7 +182,7 @@ class ExpireTest(_fixtures.FixtureTest): def test_rollback_undoes_expunge_from_deleted(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session(autocommit=False) u = s.query(User).get(10) s.expire_all() @@ -204,7 +205,7 @@ class ExpireTest(_fixtures.FixtureTest): Order, orders = self.classes.Order, self.tables.orders - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"description": deferred(orders.c.description)}, @@ -236,7 +237,9 @@ class ExpireTest(_fixtures.FixtureTest): def test_deferred_notfound(self): users, User = self.tables.users, self.classes.User - mapper(User, users, properties={"name": deferred(users.c.name)}) + self.mapper_registry.map_imperatively( + User, users, properties={"name": deferred(users.c.name)} + ) s = fixture_session(autocommit=False) u = s.query(User).get(10) @@ -259,7 +262,7 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -268,7 +271,7 @@ class ExpireTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session(autoflush=True, autocommit=False) u = s.query(User).get(8) adlist = u.addresses @@ -303,7 +306,7 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -312,7 +315,7 @@ class ExpireTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session(autoflush=True, autocommit=False) u = s.query(User).get(8) assert_raises_message( @@ -326,7 +329,7 @@ class ExpireTest(_fixtures.FixtureTest): def test_refresh_cancels_expire(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session() u = s.query(User).get(7) s.expire(u) @@ -341,7 +344,7 @@ class ExpireTest(_fixtures.FixtureTest): def test_expire_doesntload_on_set(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autoflush=False) u = sess.query(User).get(7) @@ -359,7 +362,7 @@ class ExpireTest(_fixtures.FixtureTest): def test_no_session(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u = sess.query(User).get(7) @@ -372,7 +375,7 @@ class ExpireTest(_fixtures.FixtureTest): # this was the opposite in 0.4, but the reasoning there seemed off. # expiring a pending instance makes no sense, so should raise - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u = User(id=15) sess.add(u) @@ -385,7 +388,7 @@ class ExpireTest(_fixtures.FixtureTest): # an instance is pending, but has expired attributes. this # is actually part of a larger behavior when postfetch needs to # occur during a flush() on an instance that was just inserted - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autoflush=False) u = sess.query(User).get(7) @@ -401,7 +404,7 @@ class ExpireTest(_fixtures.FixtureTest): # same as test_no_instance_key, but the PK columns # are absent. ensure an error is raised. - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u = sess.query(User).get(7) @@ -418,7 +421,7 @@ class ExpireTest(_fixtures.FixtureTest): Order, orders = self.classes.Order, self.tables.orders - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session(autoflush=False) o = sess.query(Order).get(3) sess.expire(o) @@ -469,7 +472,7 @@ class ExpireTest(_fixtures.FixtureTest): orders, Order = self.tables.orders, self.classes.Order - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session(autoflush=False) o = sess.query(Order).get(3) @@ -495,7 +498,7 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -504,7 +507,7 @@ class ExpireTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session(autoflush=False) u = s.query(User).get(8) assert u.addresses[0].email_address == "ed@wood.com" @@ -521,7 +524,7 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -530,7 +533,7 @@ class ExpireTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session(autoflush=False) u = s.query(User).get(8) assert u.addresses[0].email_address == "ed@wood.com" @@ -563,12 +566,12 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, cascade=cascade)}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session(autoflush=False) u = s.query(User).get(8) @@ -595,12 +598,12 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u = sess.query(User).get(7) @@ -626,7 +629,7 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -635,7 +638,7 @@ class ExpireTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u = sess.query(User).get(7) @@ -675,7 +678,7 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -684,7 +687,7 @@ class ExpireTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) u = sess.query(User).get(7) @@ -720,13 +723,15 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"orders": relationship(Order, order_by=orders.c.id)}, ) - mapper(Address, addresses, properties={"user": relationship(User)}) - mapper(Order, orders) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) + self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session(autoflush=False) @@ -821,7 +826,7 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -830,7 +835,7 @@ class ExpireTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) u = sess.query(User).get(8) sess.expire(u, ["name", "addresses"]) @@ -851,7 +856,7 @@ class ExpireTest(_fixtures.FixtureTest): # changed in #1763, eager loaders are run when we unexpire - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -860,7 +865,7 @@ class ExpireTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u = sess.query(User).get(8) sess.expire(u) @@ -880,12 +885,12 @@ class ExpireTest(_fixtures.FixtureTest): # changed in #1763, eager loaders are run when we unexpire - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u = sess.query(User).options(joinedload(User.addresses)).get(8) sess.expire(u) @@ -901,7 +906,7 @@ class ExpireTest(_fixtures.FixtureTest): self.tables.addresses, self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -910,7 +915,7 @@ class ExpireTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u = sess.query(User).get(8) sess.expire(u) @@ -928,7 +933,9 @@ class ExpireTest(_fixtures.FixtureTest): def test_expire_synonym(self): User, users = self.classes.User, self.tables.users - mapper(User, users, properties={"uname": sa.orm.synonym("name")}) + self.mapper_registry.map_imperatively( + User, users, properties={"uname": sa.orm.synonym("name")} + ) sess = fixture_session() u = sess.query(User).get(7) @@ -952,7 +959,7 @@ class ExpireTest(_fixtures.FixtureTest): def test_partial_expire(self): orders, Order = self.tables.orders, self.classes.Order - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session(autoflush=False) o = sess.query(Order).get(3) @@ -1016,12 +1023,12 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) u = sess.query(User).get(8) @@ -1074,7 +1081,7 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1083,7 +1090,7 @@ class ExpireTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) u = sess.query(User).get(8) @@ -1132,12 +1139,12 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) u = sess.query(User).get(8) @@ -1160,7 +1167,7 @@ class ExpireTest(_fixtures.FixtureTest): def test_partial_expire_deferred(self): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"description": sa.orm.deferred(orders.c.description)}, @@ -1195,7 +1202,7 @@ class ExpireTest(_fixtures.FixtureTest): sa.orm.clear_mappers() - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) sess.expunge_all() # same tests, using deferred at the options level @@ -1243,7 +1250,7 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1252,7 +1259,7 @@ class ExpireTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) u = sess.query(User).get(8) @@ -1272,7 +1279,7 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1284,7 +1291,7 @@ class ExpireTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) userlist = sess.query(User).order_by(User.id).all() @@ -1306,7 +1313,7 @@ class ExpireTest(_fixtures.FixtureTest): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autoflush=False) @@ -1356,7 +1363,9 @@ class ExpireTest(_fixtures.FixtureTest): users, User = self.tables.users, self.classes.User - mapper(User, users, properties={"name": deferred(users.c.name)}) + self.mapper_registry.map_imperatively( + User, users, properties={"name": deferred(users.c.name)} + ) sess = fixture_session(autoflush=False) u1 = sess.query(User).options(undefer(User.name)).first() @@ -1405,12 +1414,12 @@ class ExpireTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, lazy="noload")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) u1 = sess.query(User).options(lazyload(User.addresses)).first() @@ -1452,7 +1461,7 @@ class ExpireTest(_fixtures.FixtureTest): def test_deferred_expire_w_transient_to_detached(self): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"description": deferred(orders.c.description)}, @@ -1468,7 +1477,7 @@ class ExpireTest(_fixtures.FixtureTest): def test_deferred_expire_normally(self): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"description": deferred(orders.c.description)}, @@ -1483,7 +1492,7 @@ class ExpireTest(_fixtures.FixtureTest): def test_deferred_expire_explicit_attrs(self): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"description": deferred(orders.c.description)}, @@ -1565,13 +1574,13 @@ class PolymorphicExpireTest(fixtures.MappedTest): cls.classes.Engineer, ) - mapper( + cls.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c.type, polymorphic_identity="person", ) - mapper( + cls.mapper_registry.map_imperatively( Engineer, engineers, inherits=Person, @@ -1667,12 +1676,12 @@ class ExpiredPendingTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) a1 = Address(email_address="a1") @@ -1751,9 +1760,11 @@ class LifecycleTest(fixtures.MappedTest): @classmethod def setup_mappers(cls): - mapper(cls.classes.Data, cls.tables.data) - mapper(cls.classes.DataFetched, cls.tables.data_fetched) - mapper( + cls.mapper_registry.map_imperatively(cls.classes.Data, cls.tables.data) + cls.mapper_registry.map_imperatively( + cls.classes.DataFetched, cls.tables.data_fetched + ) + cls.mapper_registry.map_imperatively( cls.classes.DataDefer, cls.tables.data_defer, properties={"data": deferred(cls.tables.data_defer.c.data)}, @@ -1865,12 +1876,13 @@ class RefreshTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), backref="user" + self.mapper_registry.map_imperatively(Address, addresses), + backref="user", ) }, ) @@ -1908,7 +1920,7 @@ class RefreshTest(_fixtures.FixtureTest): def test_persistence_check(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session() u = s.query(User).get(7) s.expunge_all() @@ -1922,8 +1934,10 @@ class RefreshTest(_fixtures.FixtureTest): User, users = self.classes.User, self.tables.users Address, addresses = self.classes.Address, self.tables.addresses - mapper(User, users) - mapper(Address, addresses, properties={"user": relationship(User)}) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) s = fixture_session() @@ -1939,7 +1953,7 @@ class RefreshTest(_fixtures.FixtureTest): def test_refresh_expired(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session() u = s.query(User).get(7) s.expire(u) @@ -1960,10 +1974,14 @@ class RefreshTest(_fixtures.FixtureTest): ) s = fixture_session() - mapper( + self.mapper_registry.map_imperatively( User, users, - properties={"addresses": relationship(mapper(Address, addresses))}, + properties={ + "addresses": relationship( + self.mapper_registry.map_imperatively(Address, addresses) + ) + }, ) q = s.query(User).options(sa.orm.lazyload("addresses")) u = q.filter(users.c.id == 8).first() @@ -1984,12 +2002,13 @@ class RefreshTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), lazy="joined" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="joined", ) }, ) @@ -2014,15 +2033,17 @@ class RefreshTest(_fixtures.FixtureTest): "users", "addresses", "dingalings" ) - mapper(User, users, properties={"addresses": relationship(Address)}) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={"dingalings": relationship(Dingaling)}, ) - mapper(Dingaling, dingalings) + self.mapper_registry.map_imperatively(Dingaling, dingalings) s = fixture_session() q = ( @@ -2063,9 +2084,9 @@ class RefreshTest(_fixtures.FixtureTest): ) s = fixture_session() - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( diff --git a/test/orm/test_froms.py b/test/orm/test_froms.py index 863690ffb5..640ee45d21 100644 --- a/test/orm/test_froms.py +++ b/test/orm/test_froms.py @@ -26,7 +26,6 @@ from sqlalchemy.orm import configure_mappers from sqlalchemy.orm import contains_eager from sqlalchemy.orm import declarative_base from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.orm.context import ORMSelectCompileState @@ -92,7 +91,7 @@ class QueryTest(_fixtures.FixtureTest): cls.tables.addresses, ) - mapper( + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -104,7 +103,7 @@ class QueryTest(_fixtures.FixtureTest): ), # o2m, m2o }, ) - mapper( + cls.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -113,8 +112,8 @@ class QueryTest(_fixtures.FixtureTest): ) # o2o }, ) - mapper(Dingaling, dingalings) - mapper( + cls.mapper_registry.map_imperatively(Dingaling, dingalings) + cls.mapper_registry.map_imperatively( Order, orders, properties={ @@ -124,16 +123,16 @@ class QueryTest(_fixtures.FixtureTest): "address": relationship(Address), # m2o }, ) - mapper( + cls.mapper_registry.map_imperatively( Item, items, properties={ "keywords": relationship(Keyword, secondary=item_keywords) }, ) # m2m - mapper(Keyword, keywords) + cls.mapper_registry.map_imperatively(Keyword, keywords) - mapper( + cls.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -143,7 +142,7 @@ class QueryTest(_fixtures.FixtureTest): }, ) - mapper(CompositePk, composite_pk_table) + cls.mapper_registry.map_imperatively(CompositePk, composite_pk_table) configure_mappers() @@ -986,8 +985,6 @@ class AddEntityEquivalenceTest(fixtures.MappedTest, AssertsCompiledSQL): @classmethod def setup_classes(cls): - a, c, b, d = (cls.tables.a, cls.tables.c, cls.tables.b, cls.tables.d) - class A(cls.Comparable): pass @@ -1000,7 +997,12 @@ class AddEntityEquivalenceTest(fixtures.MappedTest, AssertsCompiledSQL): class D(A): pass - mapper( + @classmethod + def setup_mappers(cls): + a, c, b, d = (cls.tables.a, cls.tables.c, cls.tables.b, cls.tables.d) + A, B, C, D = cls.classes("A", "B", "C", "D") + + cls.mapper_registry.map_imperatively( A, a, polymorphic_identity="a", @@ -1010,15 +1012,19 @@ class AddEntityEquivalenceTest(fixtures.MappedTest, AssertsCompiledSQL): "link": relationship(B, uselist=False, backref="back") }, ) - mapper( + cls.mapper_registry.map_imperatively( B, b, polymorphic_identity="b", polymorphic_on=b.c.type, with_polymorphic=("*", None), ) - mapper(C, c, inherits=B, polymorphic_identity="c") - mapper(D, d, inherits=A, polymorphic_identity="d") + cls.mapper_registry.map_imperatively( + C, c, inherits=B, polymorphic_identity="c" + ) + cls.mapper_registry.map_imperatively( + D, d, inherits=A, polymorphic_identity="d" + ) @classmethod def insert_data(cls, connection): @@ -2718,8 +2724,10 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): self.classes.User, ) - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) sel = users.select().where(users.c.id.in_([7, 8])).alias() sess = fixture_session() @@ -2764,7 +2772,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): def test_select_from_aliased_one(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -2782,7 +2790,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): def test_select_from_aliased_two(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -2799,7 +2807,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): def test_select_from_core_alias_one(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -2819,7 +2827,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -2893,7 +2901,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): def test_aliased_class_vs_nonaliased(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) ua = aliased(User) @@ -2945,7 +2953,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): def test_join_no_order_by(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sel = users.select().where(users.c.id.in_([7, 8])) sess = fixture_session() @@ -2958,12 +2966,13 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): def test_join_relname_from_selected_from(self): User, Address = self.classes.User, self.classes.Address users, addresses = self.tables.users, self.tables.addresses - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), backref="user" + self.mapper_registry.map_imperatively(Address, addresses), + backref="user", ) }, ) @@ -2979,10 +2988,14 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): def test_filter_by_selected_from(self): User, Address = self.classes.User, self.classes.Address users, addresses = self.tables.users, self.tables.addresses - mapper( + self.mapper_registry.map_imperatively( User, users, - properties={"addresses": relationship(mapper(Address, addresses))}, + properties={ + "addresses": relationship( + self.mapper_registry.map_imperatively(Address, addresses) + ) + }, ) sess = fixture_session() @@ -3000,10 +3013,14 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): def test_join_ent_selected_from(self): User, Address = self.classes.User, self.classes.Address users, addresses = self.tables.users, self.tables.addresses - mapper( + self.mapper_registry.map_imperatively( User, users, - properties={"addresses": relationship(mapper(Address, addresses))}, + properties={ + "addresses": relationship( + self.mapper_registry.map_imperatively(Address, addresses) + ) + }, ) sess = fixture_session() @@ -3022,8 +3039,10 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): self.classes.User, ) - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) sel = users.select().where(users.c.id.in_([7, 8])) sess = fixture_session() @@ -3110,12 +3129,12 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): self.tables.item_keywords, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"orders": relationship(Order, backref="user")}, ) # o2m, m2o - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -3125,7 +3144,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): }, ) # m2m - mapper( + self.mapper_registry.map_imperatively( Item, items, properties={ @@ -3134,7 +3153,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): ) }, ) # m2m - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) sess = fixture_session() sel = users.select().where(users.c.id.in_([7, 8])) @@ -3173,12 +3192,12 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): self.tables.item_keywords, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"orders": relationship(Order, backref="user")}, ) # o2m, m2o - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -3187,7 +3206,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): ) }, ) # m2m - mapper( + self.mapper_registry.map_imperatively( Item, items, properties={ @@ -3196,7 +3215,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): ) }, ) # m2m - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) sess = fixture_session() @@ -3303,14 +3322,14 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship(Address, order_by=addresses.c.id) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sel = users.select().where(users.c.id.in_([7, 8])) sess = fixture_session() @@ -3404,8 +3423,8 @@ class CustomJoinTest(QueryTest): self.tables.users, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -3417,8 +3436,8 @@ class CustomJoinTest(QueryTest): ) }, ) - mapper(Item, items) - mapper( + self.mapper_registry.map_imperatively(Item, items) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -3477,8 +3496,8 @@ class CustomJoinTest(QueryTest): self.tables.users, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -3490,8 +3509,8 @@ class CustomJoinTest(QueryTest): ) }, ) - mapper(Item, items) - mapper( + self.mapper_registry.map_imperatively(Item, items) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -3549,7 +3568,7 @@ class ExternalColumnsTest(QueryTest): assert_raises_message( sa_exc.ArgumentError, "not represented in the mapper's table", - mapper, + self.mapper_registry.map_imperatively, User, users, properties={"concat": (users.c.id * 2)}, @@ -3567,7 +3586,7 @@ class ExternalColumnsTest(QueryTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -3583,7 +3602,7 @@ class ExternalColumnsTest(QueryTest): }, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -3735,7 +3754,7 @@ class ExternalColumnsTest(QueryTest): # subquery, but "user" still needs to be adapted. therefore the long # standing practice of eager adapters being "chained" has been removed # since its unnecessary and breaks this exact condition. - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -3753,8 +3772,8 @@ class ExternalColumnsTest(QueryTest): ), }, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={"address": relationship(Address)} ) # m2o @@ -3791,13 +3810,13 @@ class ExternalColumnsTest(QueryTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"fullname": column_property(users.c.name.label("x"))}, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -3867,7 +3886,7 @@ class TestOverlyEagerEquivalentCols(fixtures.MappedTest): class Sub2(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( Base, base, properties={ @@ -3876,8 +3895,8 @@ class TestOverlyEagerEquivalentCols(fixtures.MappedTest): }, ) - mapper(Sub1, sub1) - mapper(Sub2, sub2) + self.mapper_registry.map_imperatively(Sub1, sub1) + self.mapper_registry.map_imperatively(Sub2, sub2) sess = fixture_session() s11 = Sub1(data="s11") @@ -3917,8 +3936,10 @@ class LabelCollideTest(fixtures.MappedTest): @classmethod def setup_mappers(cls): - mapper(cls.classes.Foo, cls.tables.foo) - mapper(cls.classes.Bar, cls.tables.foo_bar) + cls.mapper_registry.map_imperatively(cls.classes.Foo, cls.tables.foo) + cls.mapper_registry.map_imperatively( + cls.classes.Bar, cls.tables.foo_bar + ) @classmethod def insert_data(cls, connection): diff --git a/test/orm/test_generative.py b/test/orm/test_generative.py index f6f1b5d74f..1a40447a6d 100644 --- a/test/orm/test_generative.py +++ b/test/orm/test_generative.py @@ -3,7 +3,6 @@ from sqlalchemy import ForeignKey from sqlalchemy import func from sqlalchemy import Integer from sqlalchemy import testing -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import eq_ from sqlalchemy.testing import fixtures @@ -40,7 +39,7 @@ class GenerativeQueryTest(fixtures.MappedTest): class Foo(cls.Basic): pass - mapper(Foo, foo) + cls.mapper_registry.map_imperatively(Foo, foo) def test_selectby(self): Foo = self.classes.Foo @@ -187,8 +186,8 @@ class GenerativeTest2(fixtures.MappedTest): class Obj2(cls.Basic): pass - mapper(Obj1, table1) - mapper(Obj2, table2) + cls.mapper_registry.map_imperatively(Obj1, table1) + cls.mapper_registry.map_imperatively(Obj2, table2) @classmethod def fixtures(cls): @@ -241,17 +240,19 @@ class RelationshipsTest(_fixtures.FixtureTest): cls.tables.users, ) - mapper( + cls.mapper_registry.map_imperatively( User, users, properties={ "orders": relationship( - mapper( + cls.mapper_registry.map_imperatively( Order, orders, properties={ "addresses": relationship( - mapper(Address, addresses) + cls.mapper_registry.map_imperatively( + Address, addresses + ) ) }, ) @@ -351,8 +352,8 @@ class CaseSensitiveTest(fixtures.MappedTest): class Obj2(cls.Basic): pass - mapper(Obj1, Table1) - mapper(Obj2, Table2) + cls.mapper_registry.map_imperatively(Obj1, Table1) + cls.mapper_registry.map_imperatively(Obj2, Table2) @classmethod def fixtures(cls): diff --git a/test/orm/test_hasparent.py b/test/orm/test_hasparent.py index 50f5772400..425dd947d4 100644 --- a/test/orm/test_hasparent.py +++ b/test/orm/test_hasparent.py @@ -5,7 +5,6 @@ from sqlalchemy import Integer from sqlalchemy import testing from sqlalchemy.orm import attributes from sqlalchemy.orm import exc as orm_exc -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import eq_ @@ -62,8 +61,10 @@ class ParentRemovalTest(fixtures.MappedTest): @classmethod def setup_mappers(cls): - mapper(cls.classes.Address, cls.tables.addresses) - mapper( + cls.mapper_registry.map_imperatively( + cls.classes.Address, cls.tables.addresses + ) + cls.mapper_registry.map_imperatively( cls.classes.User, cls.tables.users, properties={ diff --git a/test/orm/test_immediate_load.py b/test/orm/test_immediate_load.py index 1164b7ffdd..376157bf7f 100644 --- a/test/orm/test_immediate_load.py +++ b/test/orm/test_immediate_load.py @@ -2,7 +2,6 @@ from sqlalchemy import testing from sqlalchemy.orm import immediateload -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import eq_ from sqlalchemy.testing.fixtures import fixture_session @@ -27,8 +26,8 @@ class ImmediateTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, lazy=default_lazy)}, @@ -69,12 +68,12 @@ class ImmediateTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={"user": relationship(User, lazy=default_lazy)}, ) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() result = ( @@ -100,8 +99,8 @@ class ImmediateTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, lazy="immediate")}, @@ -135,7 +134,7 @@ class ImmediateTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -144,7 +143,7 @@ class ImmediateTest(_fixtures.FixtureTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -174,7 +173,7 @@ class ImmediateTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -183,7 +182,7 @@ class ImmediateTest(_fixtures.FixtureTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ diff --git a/test/orm/test_inspect.py b/test/orm/test_inspect.py index 72ab37c701..dc732181bb 100644 --- a/test/orm/test_inspect.py +++ b/test/orm/test_inspect.py @@ -65,8 +65,6 @@ class TestORMInspection(_fixtures.FixtureTest): assert not insp.is_aliased_class def test_mapper_selectable_fixed(self): - from sqlalchemy.orm import mapper - class Foo(object): pass @@ -75,8 +73,10 @@ class TestORMInspection(_fixtures.FixtureTest): user_table = self.tables.users addresses_table = self.tables.addresses - mapper(Foo, user_table, with_polymorphic=(Bar,)) - mapper( + self.mapper_registry.map_imperatively( + Foo, user_table, with_polymorphic=(Bar,) + ) + self.mapper_registry.map_imperatively( Bar, addresses_table, inherits=Foo, @@ -244,7 +244,6 @@ class TestORMInspection(_fixtures.FixtureTest): HYBRID_METHOD, ) from sqlalchemy import Table, MetaData, Integer, Column - from sqlalchemy.orm import mapper from sqlalchemy.orm.interfaces import NOT_EXTENSION class SomeClass(self.classes.User): @@ -278,9 +277,11 @@ class TestORMInspection(_fixtures.FixtureTest): Column("id", Integer, primary_key=True), Column("s_id", ForeignKey("sometable.id")), ) - mapper(SomeClass, t, properties={"addresses": relationship(Address)}) - mapper(Address, ta) - mapper(SomeSubClass, inherits=SomeClass) + self.mapper_registry.map_imperatively( + SomeClass, t, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, ta) + self.mapper_registry.map_imperatively(SomeSubClass, inherits=SomeClass) insp = inspect(SomeSubClass) eq_( @@ -411,10 +412,10 @@ class TestORMInspection(_fixtures.FixtureTest): __foo__ = "bar" __bat__ = Thing() - from sqlalchemy.orm import mapper, column_property + from sqlalchemy.orm import column_property from sqlalchemy.ext.hybrid import hybrid_property - m = mapper(AnonClass, self.tables.users) + m = self.mapper_registry.map_imperatively(AnonClass, self.tables.users) eq_(set(inspect(AnonClass).attrs.keys()), set(["id", "name"])) eq_( @@ -553,7 +554,6 @@ class %s(SuperCls): class MyClass(object): pass - from sqlalchemy.orm import mapper from sqlalchemy import Table, MetaData, Column, Integer names = self._random_names() @@ -566,7 +566,7 @@ class %s(SuperCls): *[Column(name, Integer) for name in names] ) - m = mapper(MyClass, t) + m = self.mapper_registry.map_imperatively(MyClass, t) eq_(m.all_orm_descriptors.keys(), ["id"] + names) diff --git a/test/orm/test_instrumentation.py b/test/orm/test_instrumentation.py index c9b2442be4..a2d4aa9cac 100644 --- a/test/orm/test_instrumentation.py +++ b/test/orm/test_instrumentation.py @@ -8,7 +8,6 @@ from sqlalchemy.orm import attributes from sqlalchemy.orm import class_mapper from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import instrumentation -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import assert_raises from sqlalchemy.testing import assert_raises_message @@ -491,7 +490,7 @@ class InitTest(fixtures.ORMTest): assert o.o is Y.outofscope -class MapperInitTest(fixtures.ORMTest): +class MapperInitTest(fixtures.MappedTest): def fixture(self): return Table( "t", @@ -513,7 +512,7 @@ class MapperInitTest(fixtures.ORMTest): def __init__(self, x): pass - mapper(A, self.fixture()) + self.mapper_registry.map_imperatively(A, self.fixture()) # B is not mapped in the current implementation assert_raises(sa.orm.exc.UnmappedClassError, class_mapper, B) @@ -533,7 +532,7 @@ class MapperInitTest(fixtures.ORMTest): r"unreachable cycles and memory leaks, as SQLAlchemy " r"instrumentation often creates reference cycles. " r"Please remove this method.", - mapper, + self.mapper_registry.map_imperatively, A, self.fixture(), ) @@ -565,7 +564,7 @@ class OnLoadTest(fixtures.ORMTest): del A -class NativeInstrumentationTest(fixtures.ORMTest): +class NativeInstrumentationTest(fixtures.MappedTest): def test_register_reserved_attribute(self): class T(object): pass @@ -597,7 +596,7 @@ class NativeInstrumentationTest(fixtures.ORMTest): class T(object): pass - assert_raises(KeyError, mapper, T, t) + assert_raises(KeyError, self.mapper_registry.map_imperatively, T, t) def test_mapped_managerattr(self): t = Table( @@ -610,7 +609,7 @@ class NativeInstrumentationTest(fixtures.ORMTest): class T(object): pass - assert_raises(KeyError, mapper, T, t) + assert_raises(KeyError, self.mapper_registry.map_imperatively, T, t) class Py3KFunctionInstTest(fixtures.ORMTest): @@ -693,7 +692,7 @@ def _kw_opt_fixture(self): setattr(Py3KFunctionInstTest, k, _locals[k]) -class MiscTest(fixtures.ORMTest): +class MiscTest(fixtures.MappedTest): """Seems basic, but not directly covered elsewhere!""" def test_compileonattr(self): @@ -707,7 +706,7 @@ class MiscTest(fixtures.ORMTest): class A(object): pass - mapper(A, t) + self.mapper_registry.map_imperatively(A, t) a = A() assert a.id is None @@ -733,8 +732,10 @@ class MiscTest(fixtures.ORMTest): class B(object): pass - mapper(A, t1, properties=dict(bs=relationship(B))) - mapper(B, t2) + self.mapper_registry.map_imperatively( + A, t1, properties=dict(bs=relationship(B)) + ) + self.mapper_registry.map_imperatively(B, t2) a = A() assert not a.bs @@ -780,8 +781,10 @@ class MiscTest(fixtures.ORMTest): class B(base): pass - mapper(A, t1, properties=dict(bs=relationship(B, backref="a"))) - mapper(B, t2) + self.mapper_registry.map_imperatively( + A, t1, properties=dict(bs=relationship(B, backref="a")) + ) + self.mapper_registry.map_imperatively(B, t2) b = B() assert b.a is None @@ -825,8 +828,10 @@ class MiscTest(fixtures.ORMTest): class B(base): pass - mapper(A, t1) - mapper(B, t2, properties=dict(a=relationship(A, backref="bs"))) + self.mapper_registry.map_imperatively(A, t1) + self.mapper_registry.map_imperatively( + B, t2, properties=dict(a=relationship(A, backref="bs")) + ) a = A() b = B() diff --git a/test/orm/test_joins.py b/test/orm/test_joins.py index d785c2ba03..eb7dfd6f38 100644 --- a/test/orm/test_joins.py +++ b/test/orm/test_joins.py @@ -24,7 +24,6 @@ from sqlalchemy.orm import aliased from sqlalchemy.orm import backref from sqlalchemy.orm import join from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import outerjoin from sqlalchemy.orm import relationship from sqlalchemy.orm import Session @@ -199,7 +198,7 @@ class JoinOnSynonymTest(_fixtures.FixtureTest, AssertsCompiledSQL): User = cls.classes.User Address = cls.classes.Address users, addresses = (cls.tables.users, cls.tables.addresses) - mapper( + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -207,7 +206,7 @@ class JoinOnSynonymTest(_fixtures.FixtureTest, AssertsCompiledSQL): "ad_syn": synonym("addresses"), }, ) - mapper(Address, addresses) + cls.mapper_registry.map_imperatively(Address, addresses) def test_join_on_synonym(self): User = self.classes.User @@ -1775,16 +1774,18 @@ class JoinFromSelectableTest(fixtures.MappedTest, AssertsCompiledSQL): @classmethod def setup_classes(cls): - table1, table2 = cls.tables.table1, cls.tables.table2 - class T1(cls.Comparable): pass class T2(cls.Comparable): pass - mapper(T1, table1) - mapper(T2, table2) + @classmethod + def setup_mappers(cls): + table1, table2 = cls.tables.table1, cls.tables.table2 + T1, T2 = cls.classes("T1", "T2") + cls.mapper_registry.map_imperatively(T1, table1) + cls.mapper_registry.map_imperatively(T2, table2) def test_select_mapped_to_mapped_explicit_left(self): T1, T2 = self.classes.T1, self.classes.T2 @@ -2002,19 +2003,23 @@ class SelfRefMixedTest(fixtures.MappedTest, AssertsCompiledSQL): @classmethod def setup_classes(cls): + class Node(cls.Comparable): + pass + + class Sub(cls.Comparable): + pass + + @classmethod + def setup_mappers(cls): nodes, assoc_table, sub_table = ( cls.tables.nodes, cls.tables.assoc_table, cls.tables.sub_table, ) - class Node(cls.Comparable): - pass - - class Sub(cls.Comparable): - pass + Node, Sub = cls.classes("Node", "Sub") - mapper( + cls.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -2033,7 +2038,7 @@ class SelfRefMixedTest(fixtures.MappedTest, AssertsCompiledSQL): ), }, ) - mapper(Sub, sub_table) + cls.mapper_registry.map_imperatively(Sub, sub_table) def test_o2m_aliased_plus_o2m(self): Node, Sub = self.classes.Node, self.classes.Sub @@ -2080,7 +2085,7 @@ class SelfRefMixedTest(fixtures.MappedTest, AssertsCompiledSQL): ) -class CreateJoinsTest(fixtures.ORMTest, AssertsCompiledSQL): +class CreateJoinsTest(fixtures.MappedTest, AssertsCompiledSQL): __dialect__ = "default" def _inherits_fixture(self): @@ -2116,20 +2121,20 @@ class CreateJoinsTest(fixtures.ORMTest, AssertsCompiledSQL): class C(Base): pass - mapper(Base, base) - mapper( + self.mapper_registry.map_imperatively(Base, base) + self.mapper_registry.map_imperatively( A, a, inherits=Base, properties={"b": relationship(B, primaryjoin=a.c.b_id == b.c.id)}, ) - mapper( + self.mapper_registry.map_imperatively( B, b, inherits=Base, properties={"c": relationship(C, primaryjoin=b.c.c_id == c.c.id)}, ) - mapper(C, c, inherits=Base) + self.mapper_registry.map_imperatively(C, c, inherits=Base) return A, B, C, Base def test_double_level_aliased_exists(self): @@ -2189,8 +2194,8 @@ class JoinToNonPolyAliasesTest(fixtures.MappedTest, AssertsCompiledSQL): class Child(cls.Comparable): pass - mp = mapper(Parent, parent) - mapper(Child, child) + mp = cls.mapper_registry.map_imperatively(Parent, parent) + cls.mapper_registry.map_imperatively(Child, child) derived = select(child).alias() npc = aliased(Child, derived) @@ -2275,7 +2280,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL): def setup_mappers(cls): Node, nodes = cls.classes.Node, cls.tables.nodes - mapper( + cls.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -2882,7 +2887,7 @@ class SelfReferentialM2MTest(fixtures.MappedTest): cls.tables.node_to_nodes, ) - mapper( + cls.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -3010,8 +3015,6 @@ class JoinLateralTest(fixtures.MappedTest, AssertsCompiledSQL): @classmethod def setup_classes(cls): - people, bookcases, books = cls.tables("people", "bookcases", "books") - class Person(cls.Comparable): pass @@ -3021,8 +3024,12 @@ class JoinLateralTest(fixtures.MappedTest, AssertsCompiledSQL): class Book(cls.Comparable): pass - mapper(Person, people) - mapper( + @classmethod + def setup_mappers(cls): + Person, Bookcase, Book = cls.classes("Person", "Bookcase", "Book") + people, bookcases, books = cls.tables("people", "bookcases", "books") + cls.mapper_registry.map_imperatively(Person, people) + cls.mapper_registry.map_imperatively( Bookcase, bookcases, properties={ @@ -3030,7 +3037,7 @@ class JoinLateralTest(fixtures.MappedTest, AssertsCompiledSQL): "books": relationship(Book), }, ) - mapper(Book, books) + cls.mapper_registry.map_imperatively(Book, books) def test_select_subquery(self): Person, Book = self.classes("Person", "Book") diff --git a/test/orm/test_lambdas.py b/test/orm/test_lambdas.py index a1657d746c..30048585bc 100644 --- a/test/orm/test_lambdas.py +++ b/test/orm/test_lambdas.py @@ -9,7 +9,6 @@ from sqlalchemy import testing from sqlalchemy import update from sqlalchemy.future import select from sqlalchemy.orm import aliased -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import selectinload from sqlalchemy.orm import Session @@ -44,7 +43,7 @@ class LambdaTest(QueryTest, AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -52,7 +51,7 @@ class LambdaTest(QueryTest, AssertsCompiledSQL): }, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -444,7 +443,7 @@ class UpdateDeleteTest(fixtures.MappedTest): Address = cls.classes.Address addresses = cls.tables.addresses - mapper( + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -452,7 +451,7 @@ class UpdateDeleteTest(fixtures.MappedTest): "addresses": relationship(Address), }, ) - mapper(Address, addresses) + cls.mapper_registry.map_imperatively(Address, addresses) def test_update(self): User, Address = self.classes("User", "Address") diff --git a/test/orm/test_lazy_relations.py b/test/orm/test_lazy_relations.py index d75b46886c..457cfee4e2 100644 --- a/test/orm/test_lazy_relations.py +++ b/test/orm/test_lazy_relations.py @@ -21,7 +21,6 @@ from sqlalchemy.orm import aliased from sqlalchemy.orm import attributes from sqlalchemy.orm import configure_mappers from sqlalchemy.orm import exc as orm_exc -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.testing import assert_raises @@ -50,12 +49,13 @@ class LazyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), lazy="select" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="select", ) }, ) @@ -81,12 +81,13 @@ class LazyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), lazy="select" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="select", ) }, ) @@ -104,12 +105,12 @@ class LazyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="select", order_by=addresses.c.email_address, ) @@ -141,9 +142,9 @@ class LazyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict(addresses=relationship(Address, lazy="select")), @@ -175,9 +176,9 @@ class LazyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -213,7 +214,7 @@ class LazyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -222,7 +223,7 @@ class LazyTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() user = sess.query(User).get(7) @@ -258,8 +259,8 @@ class LazyTest(_fixtures.FixtureTest): self.tables.addresses, ) - mapper(Item, items) - mapper( + self.mapper_registry.map_imperatively(Item, items) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -268,12 +269,13 @@ class LazyTest(_fixtures.FixtureTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), lazy="select" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="select", ), "orders": relationship(Order, lazy="select"), }, @@ -312,8 +314,8 @@ class LazyTest(_fixtures.FixtureTest): self.tables.addresses, ) - mapper(Item, items) - mapper( + self.mapper_registry.map_imperatively(Item, items) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -322,12 +324,13 @@ class LazyTest(_fixtures.FixtureTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), lazy="select" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="select", ), "orders": relationship(Order, lazy="select"), }, @@ -357,12 +360,12 @@ class LazyTest(_fixtures.FixtureTest): self.classes.Order, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"order": relationship(Order, uselist=False)}, ) - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) s = fixture_session() u1 = s.query(User).filter(User.id == 7).one() assert_raises(sa.exc.SAWarning, getattr, u1, "order") @@ -375,12 +378,12 @@ class LazyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="select", primaryjoin=and_( users.c.id == addresses.c.user_id, @@ -413,12 +416,14 @@ class LazyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( address=relationship( - mapper(Address, addresses), lazy="select", uselist=False + self.mapper_registry.map_imperatively(Address, addresses), + lazy="select", + uselist=False, ) ), ) @@ -434,13 +439,13 @@ class LazyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, primary_key=[addresses.c.user_id, addresses.c.email_address], ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -489,9 +494,9 @@ class LazyTest(_fixtures.FixtureTest): self.tables.order_items, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -503,7 +508,7 @@ class LazyTest(_fixtures.FixtureTest): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) open_mapper = aliased( Order, select(orders).where(orders.c.isopen == 1).alias() @@ -512,7 +517,7 @@ class LazyTest(_fixtures.FixtureTest): Order, select(orders).where(orders.c.isopen == 0).alias() ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -548,9 +553,9 @@ class LazyTest(_fixtures.FixtureTest): self.tables.order_items, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -562,11 +567,11 @@ class LazyTest(_fixtures.FixtureTest): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) open_mapper = aliased(Order, orders) closed_mapper = aliased(Order, orders) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -678,12 +683,12 @@ class LazyTest(_fixtures.FixtureTest): elif type_ == "subquery": target = select(users).subquery() - mapper( + self.mapper_registry.map_imperatively( User, target, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() @@ -699,8 +704,8 @@ class LazyTest(_fixtures.FixtureTest): self.classes.Item, ) - mapper(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively(Keyword, keywords) + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -734,12 +739,14 @@ class LazyTest(_fixtures.FixtureTest): users.c.id == addresses.c.user_id, addresses.c.user_id == users.c.id, ): - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties=dict( user=relationship( - mapper(User, users), lazy="select", primaryjoin=pj + self.mapper_registry.map_imperatively(User, users), + lazy="select", + primaryjoin=pj, ) ), ) @@ -771,8 +778,8 @@ class LazyTest(_fixtures.FixtureTest): self.tables.users, self.classes.User, ) - um = mapper(User, users) - am = mapper( + um = self.mapper_registry.map_imperatively(User, users) + am = self.mapper_registry.map_imperatively( Address, addresses, properties={"user": relationship(User)} ) @@ -876,10 +883,14 @@ class LazyTest(_fixtures.FixtureTest): Column("email_address", String(50), nullable=False), ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, - properties=dict(user=relationship(mapper(User, users))), + properties=dict( + user=relationship( + self.mapper_registry.map_imperatively(User, users) + ) + ), ) with fixture_session() as sess: @@ -908,11 +919,14 @@ class LazyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties=dict( - user=relationship(mapper(User, users), lazy="select") + user=relationship( + self.mapper_registry.map_imperatively(User, users), + lazy="select", + ) ), ) sess = fixture_session() @@ -933,12 +947,12 @@ class LazyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) ad = sess.query(Address).filter_by(id=1).one() assert ad.user.id == 7 @@ -1018,8 +1032,8 @@ class GetterStateTest(_fixtures.FixtureTest): class Article(fixtures.ComparableEntity): pass - mapper(Category, category) - mapper( + self.mapper_registry.map_imperatively(Category, category) + self.mapper_registry.map_imperatively( Article, article, properties={ @@ -1053,14 +1067,14 @@ class GetterStateTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship(Address, back_populates="user") }, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -1232,9 +1246,11 @@ class M2OGetTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) - mapper(Address, addresses, properties={"user": relationship(User)}) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) sess = fixture_session() ad1 = Address(email_address="somenewaddress", id=12) @@ -1305,7 +1321,7 @@ class CorrelatedTest(fixtures.MappedTest): class Stuff(fixtures.ComparableEntity): pass - mapper(Stuff, stuff) + self.mapper_registry.map_imperatively(Stuff, stuff) stuff_view = ( sa.select(stuff.c.id) @@ -1315,7 +1331,7 @@ class CorrelatedTest(fixtures.MappedTest): .limit(1) ) - mapper( + self.mapper_registry.map_imperatively( User, user_t, properties={ @@ -1382,7 +1398,7 @@ class O2MWOSideFixedTest(fixtures.MappedTest): Person, City = cls.classes.Person, cls.classes.City city, person = cls.tables.city, cls.tables.person - mapper( + cls.mapper_registry.map_imperatively( Person, person, properties={ @@ -1395,7 +1411,7 @@ class O2MWOSideFixedTest(fixtures.MappedTest): ) }, ) - mapper(City, city) + cls.mapper_registry.map_imperatively(City, city) def _fixture(self, include_other): city, person = self.tables.city, self.tables.person @@ -1507,12 +1523,12 @@ class RefersToSelfLazyLoadInterferenceTest(fixtures.MappedTest): @classmethod def setup_mappers(cls): - mapper( + cls.mapper_registry.map_imperatively( cls.classes.A, cls.tables.a, properties={"b": relationship(cls.classes.B)}, ) - bm = mapper( + bm = cls.mapper_registry.map_imperatively( cls.classes.B, cls.tables.b, properties={ @@ -1522,7 +1538,7 @@ class RefersToSelfLazyLoadInterferenceTest(fixtures.MappedTest): "zc": relationship(cls.classes.C), }, ) - mapper(cls.classes.C, cls.tables.c) + cls.mapper_registry.map_imperatively(cls.classes.C, cls.tables.c) bmp = bm._props configure_mappers() @@ -1589,7 +1605,7 @@ class TypeCoerceTest(fixtures.MappedTest, testing.AssertsExecutionResults): @classmethod def setup_mappers(cls): - mapper( + cls.mapper_registry.map_imperatively( cls.classes.Person, cls.tables.person, properties=dict( @@ -1606,7 +1622,7 @@ class TypeCoerceTest(fixtures.MappedTest, testing.AssertsExecutionResults): ), ) - mapper(cls.classes.Pet, cls.tables.pets) + cls.mapper_registry.map_imperatively(cls.classes.Pet, cls.tables.pets) def test_lazyload_singlecast(self): Person = self.classes.Person @@ -1670,8 +1686,8 @@ class CompositeSimpleM2OTest(fixtures.MappedTest): pass def test_use_get_sameorder(self): - mapper(self.classes.A, self.tables.a) - m_b = mapper( + self.mapper_registry.map_imperatively(self.classes.A, self.tables.a) + m_b = self.mapper_registry.map_imperatively( self.classes.B, self.tables.b_sameorder, properties={"a": relationship(self.classes.A)}, @@ -1681,8 +1697,8 @@ class CompositeSimpleM2OTest(fixtures.MappedTest): is_true(m_b.relationships.a.strategy.use_get) def test_use_get_reverseorder(self): - mapper(self.classes.A, self.tables.a) - m_b = mapper( + self.mapper_registry.map_imperatively(self.classes.A, self.tables.a) + m_b = self.mapper_registry.map_imperatively( self.classes.B, self.tables.b_differentorder, properties={"a": relationship(self.classes.A)}, @@ -1692,8 +1708,8 @@ class CompositeSimpleM2OTest(fixtures.MappedTest): is_true(m_b.relationships.a.strategy.use_get) def test_dont_use_get_pj_is_different(self): - mapper(self.classes.A, self.tables.a) - m_b = mapper( + self.mapper_registry.map_imperatively(self.classes.A, self.tables.a) + m_b = self.mapper_registry.map_imperatively( self.classes.B, self.tables.b_sameorder, properties={ diff --git a/test/orm/test_loading.py b/test/orm/test_loading.py index 84fb4975db..a835b2908c 100644 --- a/test/orm/test_loading.py +++ b/test/orm/test_loading.py @@ -4,7 +4,6 @@ from sqlalchemy import testing from sqlalchemy.engine import result_tuple from sqlalchemy.orm import aliased from sqlalchemy.orm import loading -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import mock from sqlalchemy.testing.assertions import assert_raises @@ -23,7 +22,7 @@ class InstanceProcessorTest(_fixtures.FixtureTest): User, Order, Address = self.classes("User", "Order", "Address") users, orders, addresses = self.tables("users", "orders", "addresses") - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -33,12 +32,12 @@ class InstanceProcessorTest(_fixtures.FixtureTest): ), }, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"address": relationship(Address, lazy="joined")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session() diff --git a/test/orm/test_lockmode.py b/test/orm/test_lockmode.py index f82c5cf7c9..e073754848 100644 --- a/test/orm/test_lockmode.py +++ b/test/orm/test_lockmode.py @@ -2,7 +2,6 @@ from sqlalchemy import exc from sqlalchemy import testing from sqlalchemy.engine import default from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import AssertsCompiledSQL @@ -15,7 +14,7 @@ class ForUpdateTest(_fixtures.FixtureTest): @classmethod def setup_mappers(cls): User, users = cls.classes.User, cls.tables.users - mapper(User, users) + cls.mapper_registry.map_imperatively(User, users) def _assert( self, @@ -76,8 +75,10 @@ class BackendTest(_fixtures.FixtureTest): def setup_mappers(cls): User, users = cls.classes.User, cls.tables.users Address, addresses = cls.classes.Address, cls.tables.addresses - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + cls.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + cls.mapper_registry.map_imperatively(Address, addresses) def test_inner_joinedload_w_limit(self): User = self.classes.User @@ -162,8 +163,10 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL): def setup_mappers(cls): User, users = cls.classes.User, cls.tables.users Address, addresses = cls.classes.Address, cls.tables.addresses - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + cls.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + cls.mapper_registry.map_imperatively(Address, addresses) def test_default_update(self): User = self.classes.User diff --git a/test/orm/test_manytomany.py b/test/orm/test_manytomany.py index 79c63872dc..32dfe3af4e 100644 --- a/test/orm/test_manytomany.py +++ b/test/orm/test_manytomany.py @@ -5,7 +5,6 @@ from sqlalchemy import String from sqlalchemy import testing from sqlalchemy.orm import backref from sqlalchemy.orm import exc as orm_exc -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import eq_ @@ -120,7 +119,7 @@ class M2MTest(fixtures.MappedTest): self.tables.transition, ) - mapper( + self.mapper_registry.map_imperatively( Place, place, properties={ @@ -129,7 +128,7 @@ class M2MTest(fixtures.MappedTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Transition, transition, properties={ @@ -152,7 +151,7 @@ class M2MTest(fixtures.MappedTest): self.tables.place_place, ) - mapper( + self.mapper_registry.map_imperatively( Place, place, properties={ @@ -200,7 +199,7 @@ class M2MTest(fixtures.MappedTest): self.tables.place_place, ) - mapper( + self.mapper_registry.map_imperatively( Place, place, properties={ @@ -250,14 +249,14 @@ class M2MTest(fixtures.MappedTest): self.tables.place_output, ) - mapper(PlaceThingy, place_thingy) - mapper( + self.mapper_registry.map_imperatively(PlaceThingy, place_thingy) + self.mapper_registry.map_imperatively( Place, place, properties={"thingies": relationship(PlaceThingy, lazy="joined")}, ) - mapper( + self.mapper_registry.map_imperatively( Transition, transition, properties=dict( @@ -295,8 +294,8 @@ class M2MTest(fixtures.MappedTest): self.tables.place_output, ) - mapper(Place, place) - mapper( + self.mapper_registry.map_imperatively(Place, place) + self.mapper_registry.map_imperatively( Transition, transition, properties=dict( @@ -365,7 +364,7 @@ class M2MTest(fixtures.MappedTest): self.tables.transition, ) - mapper( + self.mapper_registry.map_imperatively( Place, place, properties={ @@ -374,7 +373,7 @@ class M2MTest(fixtures.MappedTest): ) }, ) - mapper(Transition, transition) + self.mapper_registry.map_imperatively(Transition, transition) p1 = Place("place1") t1 = Transition("t1") @@ -456,7 +455,7 @@ class AssortedPersistenceTests(fixtures.MappedTest): self.tables.right, ) A, B = self.classes.A, self.classes.B - mapper( + self.mapper_registry.map_imperatively( A, left, properties={ @@ -465,7 +464,7 @@ class AssortedPersistenceTests(fixtures.MappedTest): ) }, ) - mapper(B, right) + self.mapper_registry.map_imperatively(B, right) def _bidirectional_onescalar_fixture(self): left, secondary, right = ( @@ -474,7 +473,7 @@ class AssortedPersistenceTests(fixtures.MappedTest): self.tables.right, ) A, B = self.classes.A, self.classes.B - mapper( + self.mapper_registry.map_imperatively( A, left, properties={ @@ -486,7 +485,7 @@ class AssortedPersistenceTests(fixtures.MappedTest): ) }, ) - mapper(B, right) + self.mapper_registry.map_imperatively(B, right) def test_session_delete(self): self._standard_bidirectional_fixture() diff --git a/test/orm/test_mapper.py b/test/orm/test_mapper.py index 3ba4e90db3..6c8b26c711 100644 --- a/test/orm/test_mapper.py +++ b/test/orm/test_mapper.py @@ -23,7 +23,6 @@ from sqlalchemy.orm import deferred from sqlalchemy.orm import dynamic_loader from sqlalchemy.orm import Load from sqlalchemy.orm import load_only -from sqlalchemy.orm import mapper from sqlalchemy.orm import reconstructor from sqlalchemy.orm import registry from sqlalchemy.orm import relationship @@ -291,13 +290,23 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): User, users = self.classes.User, self.tables.users s = sa.select(users.c.name).alias("foo") - assert_raises(sa.exc.ArgumentError, mapper, User, s) + assert_raises( + sa.exc.ArgumentError, + self.mapper_registry.map_imperatively, + User, + s, + ) def test_no_pks_2(self): User, users = self.classes.User, self.tables.users s = sa.select(users.c.name).alias() - assert_raises(sa.exc.ArgumentError, mapper, User, s) + assert_raises( + sa.exc.ArgumentError, + self.mapper_registry.map_imperatively, + User, + s, + ) def test_reconfigure_on_other_mapper(self): """A configure trigger on an already-configured mapper @@ -365,7 +374,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): assert_raises_message( sa.exc.ArgumentError, "not represented in the mapper's table", - mapper, + self.mapper_registry.map_imperatively, User, users, properties={"foo": addresses.c.user_id}, @@ -974,7 +983,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): assert_raises_message( sa.exc.SAWarning, "Reassigning polymorphic association for identity 'user'", - mapper, + self.mapper_registry.map_imperatively, MyUser, users, inherits=User, @@ -1226,7 +1235,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): assert_raises_message( sa.exc.InvalidRequestError, "Implicitly", - mapper, + self.mapper_registry.map_imperatively, User, usersaddresses, primary_key=[users.c.id], @@ -1792,7 +1801,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): assert_raises( sa.exc.ArgumentError, - mapper, + self.mapper_registry.map_imperatively, User, users, properties=util.OrderedDict( @@ -1803,9 +1812,10 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): ), ) + clear_mappers() assert_raises( sa.exc.ArgumentError, - mapper, + self.mapper_registry.map_imperatively, User, users, properties=util.OrderedDict( @@ -2273,25 +2283,6 @@ class RequirementsTest(fixtures.MappedTest): Column("value", String(10)), ) - if util.py2k: - - def test_baseclass(self): - ht1 = self.tables.ht1 - - class OldStyle: - pass - - assert_raises(sa.exc.ArgumentError, mapper, OldStyle, ht1) - - assert_raises(sa.exc.ArgumentError, mapper, 123) - - class NoWeakrefSupport(str): - pass - - # TODO: is weakref support detectable without an instance? - # self.assertRaises( - # sa.exc.ArgumentError, mapper, NoWeakrefSupport, t2) - class _ValueBase(object): def __init__(self, value="abc", id_=None): self.id = id_ @@ -2650,13 +2641,14 @@ class MagicNamesTest(fixtures.MappedTest): class T(object): pass + clear_mappers() assert_raises_message( KeyError, ( "%r: requested attribute name conflicts with " "instrumentation attribute of the same name." % reserved ), - mapper, + self.mapper_registry.map_imperatively, T, t, ) @@ -2672,13 +2664,14 @@ class MagicNamesTest(fixtures.MappedTest): class M(object): pass + clear_mappers() assert_raises_message( KeyError, ( "requested attribute name conflicts with " "instrumentation attribute of the same name" ), - mapper, + self.mapper_registry.map_imperatively, M, maps, properties={reserved: maps.c.state}, @@ -3154,7 +3147,7 @@ class ConfigureOrNotConfigureTest(_fixtures.FixtureTest, AssertsCompiledSQL): users = self.tables.users - um = mapper(User, users) + um = self.mapper_registry.map_imperatively(User, users) if use_bound: stmt = select(User).options( @@ -3179,12 +3172,12 @@ class ConfigureOrNotConfigureTest(_fixtures.FixtureTest, AssertsCompiledSQL): User, Address = self.classes("User", "Address") users, addresses = self.tables("users", "addresses") - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - am = mapper(Address, addresses) + am = self.mapper_registry.map_imperatively(Address, addresses) if use_legacy_query: s = Session() diff --git a/test/orm/test_merge.py b/test/orm/test_merge.py index cf4e81c98e..7d61a87222 100644 --- a/test/orm/test_merge.py +++ b/test/orm/test_merge.py @@ -16,7 +16,6 @@ from sqlalchemy.orm import configure_mappers from sqlalchemy.orm import defer from sqlalchemy.orm import deferred from sqlalchemy.orm import foreign -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import selectinload from sqlalchemy.orm import Session @@ -61,12 +60,12 @@ class MergeTest(_fixtures.FixtureTest): self.tables.users, ) - mapper( + self.mapper( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper(Address, addresses) s = fixture_session() u = User( @@ -86,7 +85,7 @@ class MergeTest(_fixtures.FixtureTest): def test_transient_to_pending(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() load = self.load_tracker(User) @@ -106,7 +105,7 @@ class MergeTest(_fixtures.FixtureTest): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u = User(name="fred") @@ -118,7 +117,7 @@ class MergeTest(_fixtures.FixtureTest): def test_warn_transient_already_pending_nopk(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autoflush=False) u = User(name="fred") @@ -133,7 +132,7 @@ class MergeTest(_fixtures.FixtureTest): def test_warn_transient_already_pending_pk(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autoflush=False) u = User(id=1, name="fred") @@ -153,7 +152,7 @@ class MergeTest(_fixtures.FixtureTest): self.tables.users, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -162,7 +161,7 @@ class MergeTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) load = self.load_tracker(User) self.load_tracker(Address, load) @@ -211,12 +210,12 @@ class MergeTest(_fixtures.FixtureTest): self.tables.users, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session() u = User( @@ -244,7 +243,7 @@ class MergeTest(_fixtures.FixtureTest): self.tables.users, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -253,7 +252,7 @@ class MergeTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) load = self.load_tracker(User) self.load_tracker(Address, load) @@ -296,7 +295,7 @@ class MergeTest(_fixtures.FixtureTest): def test_transient_to_persistent(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) load = self.load_tracker(User) sess = fixture_session() @@ -325,7 +324,7 @@ class MergeTest(_fixtures.FixtureTest): self.tables.users, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -338,7 +337,7 @@ class MergeTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) load = self.load_tracker(User) self.load_tracker(Address, load) @@ -416,7 +415,7 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -428,7 +427,7 @@ class MergeTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) load = self.load_tracker(User) self.load_tracker(Address, load) @@ -478,12 +477,14 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), cascade="all", backref="user" + self.mapper_registry.map_imperatively(Address, addresses), + cascade="all", + backref="user", ) }, ) @@ -543,7 +544,7 @@ class MergeTest(_fixtures.FixtureTest): def test_merge_empty_attributes(self): User, dingalings = self.classes.User, self.tables.dingalings - mapper(User, dingalings) + self.mapper_registry.map_imperatively(User, dingalings) sess = fixture_session(autoflush=False) @@ -612,12 +613,12 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), backref="user", collection_class=attribute_mapped_collection( "email_address" @@ -643,12 +644,13 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), backref="user" + self.mapper_registry.map_imperatively(Address, addresses), + backref="user", ) }, ) @@ -783,7 +785,7 @@ class MergeTest(_fixtures.FixtureTest): self.classes.CompositePk, self.tables.composite_pk_table, ) - mapper(CompositePk, composite_pk_table) + self.mapper_registry.map_imperatively(CompositePk, composite_pk_table) cp1 = CompositePk(j=1, k=1) sess = fixture_session() @@ -805,7 +807,7 @@ class MergeTest(_fixtures.FixtureTest): self.tables.composite_pk_table, ) User, users = (self.classes.User, self.tables.users) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -815,7 +817,7 @@ class MergeTest(_fixtures.FixtureTest): ) }, ) - mapper(CompositePk, composite_pk_table) + self.mapper_registry.map_imperatively(CompositePk, composite_pk_table) u1 = User(id=5, name="some user") cp1 = CompositePk(j=1, k=1) @@ -845,12 +847,12 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={"user": relationship(User, cascade="save-update")}, ) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(name="fred") a1 = Address(email_address="asdf", user=u1) @@ -881,10 +883,14 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, - properties={"addresses": relationship(mapper(Address, addresses))}, + properties={ + "addresses": relationship( + self.mapper_registry.map_imperatively(Address, addresses) + ) + }, ) load = self.load_tracker(User) @@ -927,8 +933,10 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(Address, addresses, properties={"user": relationship(User)}) - mapper(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) + self.mapper_registry.map_imperatively(User, users) u1 = User(id=1, name="u1") a1 = Address(id=1, email_address="a1", user=u1) @@ -961,12 +969,13 @@ class MergeTest(_fixtures.FixtureTest): self.classes.Item, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ "items": relationship( - mapper(Item, items), secondary=order_items + self.mapper_registry.map_imperatively(Item, items), + secondary=order_items, ) }, ) @@ -1018,12 +1027,13 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "address": relationship( - mapper(Address, addresses), uselist=False + self.mapper_registry.map_imperatively(Address, addresses), + uselist=False, ) }, ) @@ -1062,12 +1072,14 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "address": relationship( - mapper(Address, addresses), uselist=False, backref="user" + self.mapper_registry.map_imperatively(Address, addresses), + uselist=False, + backref="user", ) }, ) @@ -1095,7 +1107,7 @@ class MergeTest(_fixtures.FixtureTest): def test_transient_no_load(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u = User() @@ -1118,12 +1130,13 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), backref="user" + self.mapper_registry.map_imperatively(Address, addresses), + backref="user", ) }, ) @@ -1177,10 +1190,14 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, - properties={"addresses": relationship(mapper(Address, addresses))}, + properties={ + "addresses": relationship( + self.mapper_registry.map_imperatively(Address, addresses) + ) + }, ) with fixture_session(expire_on_commit=False) as sess: u = User() @@ -1213,7 +1230,7 @@ class MergeTest(_fixtures.FixtureTest): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with fixture_session(expire_on_commit=False) as sess: u = User() u.id = 7 @@ -1252,12 +1269,13 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), backref="user" + self.mapper_registry.map_imperatively(Address, addresses), + backref="user", ) }, ) @@ -1306,12 +1324,12 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), backref="user", cascade="all, delete-orphan", ) @@ -1390,7 +1408,9 @@ class MergeTest(_fixtures.FixtureTest): value = property(_getValue, _setValue) - mapper(User, users, properties={"uid": synonym("id")}) + self.mapper_registry.map_imperatively( + User, users, properties={"uid": synonym("id")} + ) sess = fixture_session() u = User() @@ -1411,12 +1431,13 @@ class MergeTest(_fixtures.FixtureTest): ) s = fixture_session(autoflush=True, autocommit=False) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), backref="user" + self.mapper_registry.map_imperatively(Address, addresses), + backref="user", ) }, ) @@ -1440,12 +1461,13 @@ class MergeTest(_fixtures.FixtureTest): ) sess = fixture_session(autoflush=True, autocommit=False) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), backref="user" + self.mapper_registry.map_imperatively(Address, addresses), + backref="user", ) }, ) @@ -1465,7 +1487,7 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1474,7 +1496,7 @@ class MergeTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) u = User( id=7, name="fred", addresses=[Address(id=1, email_address="fred1")] @@ -1502,7 +1524,7 @@ class MergeTest(_fixtures.FixtureTest): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u = User(id=7) sess = fixture_session(autoflush=True, autocommit=False) u = sess.merge(u) @@ -1528,7 +1550,7 @@ class MergeTest(_fixtures.FixtureTest): sess = fixture_session() - umapper = mapper(User, users) + umapper = self.mapper_registry.map_imperatively(User, users) sess.add_all([User(id=1, name="u1"), User(id=2, name="u2")]) sess.commit() @@ -1581,9 +1603,13 @@ class MergeTest(_fixtures.FixtureTest): self.tables.orders, ) - mapper(User, users, properties={"orders": relationship(Order)}) - mapper(Order, orders, properties={"address": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"orders": relationship(Order)} + ) + self.mapper_registry.map_imperatively( + Order, orders, properties={"address": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) u1 = User(id=7, name="x") u1.orders = [ @@ -1615,9 +1641,13 @@ class MergeTest(_fixtures.FixtureTest): self.tables.orders, ) - mapper(User, users, properties={"orders": relationship(Order)}) - mapper(Order, orders, properties={"address": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"orders": relationship(Order)} + ) + self.mapper_registry.map_imperatively( + Order, orders, properties={"address": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) u1 = User(id=7, name="x") u1.orders = [ @@ -1644,9 +1674,13 @@ class MergeTest(_fixtures.FixtureTest): self.tables.orders, ) - mapper(User, users, properties={"orders": relationship(Order)}) - mapper(Order, orders, properties={"address": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"orders": relationship(Order)} + ) + self.mapper_registry.map_imperatively( + Order, orders, properties={"address": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() sess.add(Address(id=1, email_address="z")) @@ -1705,7 +1739,7 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest): def setup_mappers(cls): User, Address = cls.classes.User, cls.classes.Address user, address = cls.tables.user, cls.tables.address - mapper( + cls.mapper_registry.map_imperatively( User, user, properties={ @@ -1723,7 +1757,7 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest): ) }, ) - mapper(Address, address) + cls.mapper_registry.map_imperatively(Address, address) configure_mappers() assert Address.user.property._use_get is False @@ -1851,7 +1885,9 @@ class DeferredMergeTest(fixtures.MappedTest): def test_deferred_column_mapping(self): # defer 'excerpt' at mapping level instead of query level Book, book = self.classes.Book, self.tables.book - mapper(Book, book, properties={"excerpt": deferred(book.c.excerpt)}) + self.mapper_registry.map_imperatively( + Book, book, properties={"excerpt": deferred(book.c.excerpt)} + ) sess = fixture_session() b = Book( @@ -1896,7 +1932,7 @@ class DeferredMergeTest(fixtures.MappedTest): def test_deferred_column_query(self): Book, book = self.classes.Book, self.tables.book - mapper(Book, book) + self.mapper_registry.map_imperatively(Book, book) sess = fixture_session() b = Book( @@ -1961,7 +1997,7 @@ class MutableMergeTest(fixtures.MappedTest): def test_list(self): Data, data = self.classes.Data, self.tables.data - mapper(Data, data) + self.mapper_registry.map_imperatively(Data, data) sess = fixture_session() d = Data(data=["this", "is", "a", "list"]) @@ -1991,7 +2027,7 @@ class CompositeNullPksTest(fixtures.MappedTest): def test_merge_allow_partial(self): Data, data = self.classes.Data, self.tables.data - mapper(Data, data) + self.mapper_registry.map_imperatively(Data, data) sess = fixture_session() d1 = Data(pk1="someval", pk2=None) @@ -2004,7 +2040,9 @@ class CompositeNullPksTest(fixtures.MappedTest): def test_merge_disallow_partial(self): Data, data = self.classes.Data, self.tables.data - mapper(Data, data, allow_partial_pks=False) + self.mapper_registry.map_imperatively( + Data, data, allow_partial_pks=False + ) sess = fixture_session() d1 = Data(pk1="someval", pk2=None) @@ -2042,7 +2080,7 @@ class LoadOnPendingTest(fixtures.MappedTest): pass def _setup_delete_orphan_o2o(self): - mapper( + self.mapper_registry.map_imperatively( self.classes.Rock, self.tables.rocks, properties={ @@ -2054,7 +2092,9 @@ class LoadOnPendingTest(fixtures.MappedTest): ) }, ) - mapper(self.classes.Bug, self.tables.bugs) + self.mapper_registry.map_imperatively( + self.classes.Bug, self.tables.bugs + ) self.sess = fixture_session() def _merge_delete_orphan_o2o_with(self, bug): @@ -2113,7 +2153,7 @@ class PolymorphicOnTest(fixtures.MappedTest): pass def _setup_polymorphic_on_mappers(self): - employee_mapper = mapper( + employee_mapper = self.mapper_registry.map_imperatively( self.classes.Employee, self.tables.employees, polymorphic_on=case( @@ -2127,12 +2167,12 @@ class PolymorphicOnTest(fixtures.MappedTest): ), polymorphic_identity="employee", ) - mapper( + self.mapper_registry.map_imperatively( self.classes.Manager, inherits=employee_mapper, polymorphic_identity="manager", ) - mapper( + self.mapper_registry.map_imperatively( self.classes.Engineer, inherits=employee_mapper, polymorphic_identity="engineer", diff --git a/test/orm/test_naturalpks.py b/test/orm/test_naturalpks.py index 422b72bb36..9f31c4b800 100644 --- a/test/orm/test_naturalpks.py +++ b/test/orm/test_naturalpks.py @@ -12,7 +12,6 @@ from sqlalchemy import Integer from sqlalchemy import String from sqlalchemy import testing from sqlalchemy import TypeDecorator -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm.session import make_transient from sqlalchemy.testing import assert_raises @@ -108,7 +107,7 @@ class NaturalPKTest(fixtures.MappedTest): def test_entity(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(username="jack", fullname="jack") @@ -134,7 +133,7 @@ class NaturalPKTest(fixtures.MappedTest): def test_load_after_expire(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(username="jack", fullname="jack") @@ -161,7 +160,7 @@ class NaturalPKTest(fixtures.MappedTest): def test_update_to_sql_expr(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(username="jack", fullname="jack") @@ -180,7 +179,7 @@ class NaturalPKTest(fixtures.MappedTest): # such as to bump a server side trigger users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(username="jack", fullname="jack") @@ -197,7 +196,7 @@ class NaturalPKTest(fixtures.MappedTest): def test_flush_new_pk_after_expire(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(username="jack", fullname="jack") @@ -226,7 +225,7 @@ class NaturalPKTest(fixtures.MappedTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -235,7 +234,7 @@ class NaturalPKTest(fixtures.MappedTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u1 = User(username="jack", fullname="jack") @@ -325,8 +324,8 @@ class NaturalPKTest(fixtures.MappedTest): addresses.insert(), dict(email="jack2", username="jack") ) - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( Address, addresses, properties={"user": relationship(User, passive_updates=False)}, @@ -350,8 +349,8 @@ class NaturalPKTest(fixtures.MappedTest): self.classes.User, ) - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -429,7 +428,7 @@ class NaturalPKTest(fixtures.MappedTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -438,7 +437,7 @@ class NaturalPKTest(fixtures.MappedTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u1 = User(username="jack", fullname="jack") @@ -484,8 +483,8 @@ class NaturalPKTest(fixtures.MappedTest): self.classes.User, ) - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -564,7 +563,7 @@ class NaturalPKTest(fixtures.MappedTest): self.tables.users_to_items, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -576,7 +575,7 @@ class NaturalPKTest(fixtures.MappedTest): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() u1 = User(username="jack") @@ -635,8 +634,8 @@ class NaturalPKTest(fixtures.MappedTest): self.classes.User, ) - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -761,8 +760,10 @@ class TransientExceptionTesst(_fixtures.FixtureTest): self.classes.User, ) - mapper(User, users) - mapper(Address, addresses, properties={"user": relationship(User)}) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) sess = fixture_session() u1 = User(id=5, name="u1") @@ -815,7 +816,7 @@ class ReversePKsTest(fixtures.MappedTest): PUBLISHED, EDITABLE, ARCHIVED = 1, 2, 3 - mapper(User, user) + self.mapper_registry.map_imperatively(User, user) session = fixture_session() @@ -855,7 +856,7 @@ class ReversePKsTest(fixtures.MappedTest): PUBLISHED, EDITABLE, ARCHIVED = 1, 2, 3 - mapper(User, user) + self.mapper_registry.map_imperatively(User, user) session = fixture_session() @@ -909,7 +910,7 @@ class SelfReferentialTest(fixtures.MappedTest): def test_one_to_many_on_m2o(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -948,7 +949,7 @@ class SelfReferentialTest(fixtures.MappedTest): def test_one_to_many_on_o2m(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -993,7 +994,7 @@ class SelfReferentialTest(fixtures.MappedTest): def _test_many_to_one(self, passive): Node, nodes = self.classes.Node, self.tables.nodes - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -1079,7 +1080,7 @@ class NonPKCascadeTest(fixtures.MappedTest): self.tables.addresses, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1088,7 +1089,7 @@ class NonPKCascadeTest(fixtures.MappedTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u1 = User(username="jack", fullname="jack") @@ -1227,7 +1228,7 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL): self.tables.addresses, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1236,7 +1237,7 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() a1 = Address(username="ed", email="ed@host1") @@ -1268,7 +1269,7 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL): self.tables.addresses, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1277,7 +1278,7 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) a1 = Address(username="ed", email="ed@host1") @@ -1315,8 +1316,8 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL): self.tables.addresses, ) - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -1357,8 +1358,8 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL): ) # tests [ticket:1856] - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -1384,8 +1385,8 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL): self.tables.addresses, ) - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( Address, addresses, properties={"user": relationship(User, passive_updates=True)}, @@ -1442,7 +1443,7 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL): self.tables.addresses, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1451,7 +1452,7 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() a1, a2 = ( @@ -1565,7 +1566,7 @@ class JoinedInheritanceTest(fixtures.MappedTest): "person", "manager", "engineer", "owner" ) - mapper( + self.mapper_registry.map_imperatively( Person, person, polymorphic_on=person.c.type, @@ -1573,7 +1574,7 @@ class JoinedInheritanceTest(fixtures.MappedTest): passive_updates=passive_updates, ) - mapper( + self.mapper_registry.map_imperatively( Engineer, engineer, inherits=Person, @@ -1587,12 +1588,12 @@ class JoinedInheritanceTest(fixtures.MappedTest): }, ) - mapper( + self.mapper_registry.map_imperatively( Manager, manager, inherits=Person, polymorphic_identity="manager" ) if threelevel: - mapper( + self.mapper_registry.map_imperatively( Owner, owner, inherits=Manager, polymorphic_identity="owner" ) @@ -1816,7 +1817,7 @@ class UnsortablePKTest(fixtures.MappedTest): @classmethod def setup_mappers(cls): - mapper(cls.classes.Data, cls.tables.data) + cls.mapper_registry.map_imperatively(cls.classes.Data, cls.tables.data) def test_updates_sorted(self): Data = self.classes.Data @@ -1898,14 +1899,14 @@ class JoinedInheritancePKOnFKTest(fixtures.MappedTest): self.tables.engineer, ) - mapper( + self.mapper_registry.map_imperatively( Person, person, polymorphic_on=person.c.type, polymorphic_identity="person", passive_updates=passive_updates, ) - mapper( + self.mapper_registry.map_imperatively( Engineer, engineer, inherits=Person, diff --git a/test/orm/test_onetoone.py b/test/orm/test_onetoone.py index 83213839fa..efc49d641e 100644 --- a/test/orm/test_onetoone.py +++ b/test/orm/test_onetoone.py @@ -2,7 +2,6 @@ from sqlalchemy import ForeignKey from sqlalchemy import Integer from sqlalchemy import String from sqlalchemy import testing -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.testing import fixtures from sqlalchemy.testing.fixtures import fixture_session @@ -57,8 +56,8 @@ class O2OTest(fixtures.MappedTest): self.classes.Jack, ) - mapper(Port, port) - mapper( + self.mapper_registry.map_imperatively(Port, port) + self.mapper_registry.map_imperatively( Jack, jack, properties=dict( @@ -122,8 +121,8 @@ class O2OTest(fixtures.MappedTest): self.classes.Jack, ) - mapper(Port, port) - mapper( + self.mapper_registry.map_imperatively(Port, port) + self.mapper_registry.map_imperatively( Jack, jack, properties=dict( @@ -161,8 +160,8 @@ class O2OTest(fixtures.MappedTest): self.classes.Jack, ) - mapper(Port, port) - mapper( + self.mapper_registry.map_imperatively(Port, port) + self.mapper_registry.map_imperatively( Jack, jack, properties=dict( diff --git a/test/orm/test_options.py b/test/orm/test_options.py index cd91e222e1..ebbbe738de 100644 --- a/test/orm/test_options.py +++ b/test/orm/test_options.py @@ -16,7 +16,6 @@ from sqlalchemy.orm import exc as orm_exc from sqlalchemy.orm import joinedload from sqlalchemy.orm import Load from sqlalchemy.orm import load_only -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import strategy_options from sqlalchemy.orm import subqueryload @@ -26,6 +25,7 @@ from sqlalchemy.orm import with_polymorphic from sqlalchemy.testing import fixtures from sqlalchemy.testing.assertions import assert_raises_message from sqlalchemy.testing.assertions import AssertsCompiledSQL +from sqlalchemy.testing.assertions import emits_warning from sqlalchemy.testing.assertions import eq_ from sqlalchemy.testing.fixtures import fixture_session from test.orm import _fixtures @@ -52,7 +52,7 @@ class QueryTest(_fixtures.FixtureTest): class SubItem(cls.classes.Item): pass - mapper( + cls.mapper_registry.map_imperatively( SubItem, None, inherits=cls.classes.Item, @@ -70,7 +70,9 @@ class QueryTest(_fixtures.FixtureTest): def some_attr(self): return "hi" - mapper(OrderWProp, None, inherits=cls.classes.Order) + cls.mapper_registry.map_imperatively( + OrderWProp, None, inherits=cls.classes.Order + ) class PathTest(object): @@ -273,7 +275,7 @@ class OfTypePathingTest(PathTest, QueryTest): class SubAddr(Address): pass - mapper( + self.mapper_registry.map_imperatively( SubAddr, inherits=Address, properties={ @@ -284,6 +286,7 @@ class OfTypePathingTest(PathTest, QueryTest): return User, Address, SubAddr + @emits_warning("This declarative base already contains a class") def test_oftype_only_col_attr_unbound(self): User, Address, SubAddr = self._fixture() @@ -299,6 +302,7 @@ class OfTypePathingTest(PathTest, QueryTest): [(User, "addresses"), (User, "addresses", SubAddr, "sub_attr")], ) + @emits_warning("This declarative base already contains a class") def test_oftype_only_col_attr_bound(self): User, Address, SubAddr = self._fixture() @@ -316,6 +320,7 @@ class OfTypePathingTest(PathTest, QueryTest): [(User, "addresses"), (User, "addresses", SubAddr, "sub_attr")], ) + @emits_warning("This declarative base already contains a class") def test_oftype_only_col_attr_string_unbound(self): User, Address, SubAddr = self._fixture() @@ -329,6 +334,7 @@ class OfTypePathingTest(PathTest, QueryTest): [(User, "addresses"), (User, "addresses", SubAddr, "sub_attr")], ) + @emits_warning("This declarative base already contains a class") def test_oftype_only_col_attr_string_bound(self): User, Address, SubAddr = self._fixture() @@ -346,6 +352,7 @@ class OfTypePathingTest(PathTest, QueryTest): [(User, "addresses"), (User, "addresses", SubAddr, "sub_attr")], ) + @emits_warning("This declarative base already contains a class") def test_oftype_only_rel_attr_unbound(self): User, Address, SubAddr = self._fixture() @@ -359,6 +366,7 @@ class OfTypePathingTest(PathTest, QueryTest): l1, q, [(User, "addresses"), (User, "addresses", SubAddr, "dings")] ) + @emits_warning("This declarative base already contains a class") def test_oftype_only_rel_attr_bound(self): User, Address, SubAddr = self._fixture() @@ -374,6 +382,7 @@ class OfTypePathingTest(PathTest, QueryTest): l1, q, [(User, "addresses"), (User, "addresses", SubAddr, "dings")] ) + @emits_warning("This declarative base already contains a class") def test_oftype_only_rel_attr_string_unbound(self): User, Address, SubAddr = self._fixture() @@ -385,6 +394,7 @@ class OfTypePathingTest(PathTest, QueryTest): l1, q, [(User, "addresses"), (User, "addresses", SubAddr, "dings")] ) + @emits_warning("This declarative base already contains a class") def test_oftype_only_rel_attr_string_bound(self): User, Address, SubAddr = self._fixture() @@ -700,6 +710,7 @@ class OptionsTest(PathTest, QueryTest): opt = self._option_fixture(ac.orders, Order.items) self._assert_path_result(opt, q, []) + @emits_warning("This declarative base already contains a class") def test_from_base_to_subclass_attr(self): Dingaling, Address = self.classes.Dingaling, self.classes.Address @@ -708,7 +719,7 @@ class OptionsTest(PathTest, QueryTest): class SubAddr(Address): pass - mapper( + self.mapper_registry.map_imperatively( SubAddr, inherits=Address, properties={"flub": relationship(Dingaling, viewonly=True)}, @@ -719,6 +730,7 @@ class OptionsTest(PathTest, QueryTest): self._assert_path_result(opt, q, [(SubAddr, "flub")]) + @emits_warning("This declarative base already contains a class") def test_from_subclass_to_subclass_attr(self): Dingaling, Address = self.classes.Dingaling, self.classes.Address @@ -727,7 +739,7 @@ class OptionsTest(PathTest, QueryTest): class SubAddr(Address): pass - mapper( + self.mapper_registry.map_imperatively( SubAddr, inherits=Address, properties={"flub": relationship(Dingaling, viewonly=True)}, @@ -746,7 +758,7 @@ class OptionsTest(PathTest, QueryTest): class SubAddr(Address): pass - mapper( + self.mapper_registry.map_imperatively( SubAddr, inherits=Address, properties={"flub": relationship(Dingaling, viewonly=True)}, @@ -759,6 +771,7 @@ class OptionsTest(PathTest, QueryTest): opt, q, [(Address, inspect(Address).attrs.user)] ) + @emits_warning("This declarative base already contains a class") def test_of_type(self): User, Address = self.classes.User, self.classes.Address @@ -767,7 +780,7 @@ class OptionsTest(PathTest, QueryTest): class SubAddr(Address): pass - mapper(SubAddr, inherits=Address) + self.mapper_registry.map_imperatively(SubAddr, inherits=Address) q = sess.query(User) opt = self._option_fixture( @@ -790,6 +803,7 @@ class OptionsTest(PathTest, QueryTest): ], ) + @emits_warning("This declarative base already contains a class") def test_of_type_string_attr(self): User, Address = self.classes.User, self.classes.Address @@ -798,7 +812,7 @@ class OptionsTest(PathTest, QueryTest): class SubAddr(Address): pass - mapper(SubAddr, inherits=Address) + self.mapper_registry.map_imperatively(SubAddr, inherits=Address) q = sess.query(User) opt = self._option_fixture(User.addresses.of_type(SubAddr), "user") @@ -819,6 +833,7 @@ class OptionsTest(PathTest, QueryTest): ], ) + @emits_warning("This declarative base already contains a class") def test_of_type_plus_level(self): Dingaling, User, Address = ( self.classes.Dingaling, @@ -831,7 +846,7 @@ class OptionsTest(PathTest, QueryTest): class SubAddr(Address): pass - mapper( + self.mapper_registry.map_imperatively( SubAddr, inherits=Address, properties={"flub": relationship(Dingaling, viewonly=True)}, @@ -1316,7 +1331,7 @@ class OptionsNoPropTest(_fixtures.FixtureTest): cls.tables.orders, cls.classes.Order, ) - mapper( + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -1324,8 +1339,8 @@ class OptionsNoPropTest(_fixtures.FixtureTest): "orders": relationship(Order), }, ) - mapper(Address, addresses) - mapper(Order, orders) + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively(Order, orders) keywords, items, item_keywords, Keyword, Item = ( cls.tables.keywords, cls.tables.items, @@ -1333,14 +1348,14 @@ class OptionsNoPropTest(_fixtures.FixtureTest): cls.classes.Keyword, cls.classes.Item, ) - mapper( + cls.mapper_registry.map_imperatively( Keyword, keywords, properties={ "keywords": column_property(keywords.c.name + "some keyword") }, ) - mapper( + cls.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -1353,7 +1368,9 @@ class OptionsNoPropTest(_fixtures.FixtureTest): def some_attr(self): return "hi" - mapper(OrderWProp, None, inherits=cls.classes.Order) + cls.mapper_registry.map_imperatively( + OrderWProp, None, inherits=cls.classes.Order + ) def _assert_option(self, entity_list, option): Item = self.classes.Item @@ -1995,12 +2012,12 @@ class MapperOptionsTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="select", order_by=addresses.c.id, ), @@ -2030,12 +2047,13 @@ class MapperOptionsTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), order_by=addresses.c.id + self.mapper_registry.map_imperatively(Address, addresses), + order_by=addresses.c.id, ) ), ) @@ -2060,12 +2078,13 @@ class MapperOptionsTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), lazy="select" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="select", ) ), ) @@ -2097,12 +2116,13 @@ class MapperOptionsTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), lazy="joined" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="joined", ) ), ) @@ -2131,12 +2151,12 @@ class MapperOptionsTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="joined", order_by=addresses.c.id, ) @@ -2201,11 +2221,11 @@ class MapperOptionsTest(_fixtures.FixtureTest): # users, they will have no addresses or orders. the number of lazy # loads when traversing the whole thing will be three for the # addresses and three for the orders. - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -2218,7 +2238,7 @@ class MapperOptionsTest(_fixtures.FixtureTest): ), ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties=dict( @@ -2231,7 +2251,7 @@ class MapperOptionsTest(_fixtures.FixtureTest): ), ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -2277,12 +2297,13 @@ class MapperOptionsTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), lazy="joined" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="joined", ) ), ) @@ -2310,13 +2331,15 @@ class MapperOptionsTest(_fixtures.FixtureTest): self.tables.orders, ) - mapper(User, users, properties=dict(orders=relationship(Order))) - mapper( + self.mapper_registry.map_imperatively( + User, users, properties=dict(orders=relationship(Order)) + ) + self.mapper_registry.map_imperatively( Order, orders, properties=dict(items=relationship(Item, secondary=order_items)), ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) sess = fixture_session() diff --git a/test/orm/test_pickled.py b/test/orm/test_pickled.py index 317f84dec1..8f4683d15c 100644 --- a/test/orm/test_pickled.py +++ b/test/orm/test_pickled.py @@ -12,7 +12,6 @@ from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import exc as orm_exc from sqlalchemy.orm import instrumentation from sqlalchemy.orm import lazyload -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import state as sa_state from sqlalchemy.orm import subqueryload @@ -101,17 +100,17 @@ class PickleTest(fixtures.MappedTest): self.tables.dingalings, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={"dingaling": relationship(Dingaling)}, ) - mapper(Dingaling, dingalings) + self.mapper_registry.map_imperatively(Dingaling, dingalings) sess = fixture_session() u1 = User(name="ed") u1.addresses.append(Address(email_address="ed@bar.com")) @@ -123,12 +122,12 @@ class PickleTest(fixtures.MappedTest): def test_transient(self): users, addresses = (self.tables.users, self.tables.addresses) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u1 = User(name="ed") @@ -145,7 +144,7 @@ class PickleTest(fixtures.MappedTest): def test_no_mappers(self): users = self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u1 = User(name="ed") u1_pickled = pickle.dumps(u1, -1) @@ -162,13 +161,13 @@ class PickleTest(fixtures.MappedTest): def test_no_instrumentation(self): users = self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u1 = User(name="ed") u1_pickled = pickle.dumps(u1, -1) clear_mappers() - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u1 = pickle.loads(u1_pickled) # this fails unless the InstanceState @@ -178,7 +177,7 @@ class PickleTest(fixtures.MappedTest): def test_class_deferred_cols(self): addresses, users = (self.tables.addresses, self.tables.users) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -186,7 +185,7 @@ class PickleTest(fixtures.MappedTest): "addresses": relationship(Address, backref="user"), }, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -229,12 +228,12 @@ class PickleTest(fixtures.MappedTest): def test_instance_lazy_relation_loaders(self): users, addresses = (self.tables.users, self.tables.addresses) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, lazy="noload")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u1 = User(name="ed", addresses=[Address(email_address="ed@bar.com")]) @@ -253,12 +252,12 @@ class PickleTest(fixtures.MappedTest): def test_lazyload_extra_criteria_not_supported(self): users, addresses = (self.tables.users, self.tables.addresses) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address)}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u1 = User( @@ -296,12 +295,12 @@ class PickleTest(fixtures.MappedTest): def test_invalidated_flag_pickle(self): users, addresses = (self.tables.users, self.tables.addresses) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, lazy="noload")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) u1 = User() u1.addresses.append(Address()) @@ -312,12 +311,12 @@ class PickleTest(fixtures.MappedTest): def test_invalidated_flag_deepcopy(self): users, addresses = (self.tables.users, self.tables.addresses) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, lazy="noload")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) u1 = User() u1.addresses.append(Address()) @@ -329,12 +328,12 @@ class PickleTest(fixtures.MappedTest): def test_instance_deferred_cols(self): users, addresses = (self.tables.users, self.tables.addresses) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) with fixture_session(expire_on_commit=False) as sess: u1 = User(name="ed") @@ -391,12 +390,12 @@ class PickleTest(fixtures.MappedTest): def test_pickle_protocols(self): users, addresses = (self.tables.users, self.tables.addresses) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u1 = User(name="ed") @@ -413,7 +412,7 @@ class PickleTest(fixtures.MappedTest): def test_09_pickle(self): users = self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() sess.add(User(id=1, name="ed")) sess.commit() @@ -448,7 +447,7 @@ class PickleTest(fixtures.MappedTest): def test_11_pickle(self): users = self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(id=1, name="ed") sess.add(u1) @@ -480,7 +479,7 @@ class PickleTest(fixtures.MappedTest): def test_state_info_pickle(self): users = self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u1 = User(id=1, name="ed") @@ -577,7 +576,7 @@ class PickleTest(fixtures.MappedTest): ) p = Table("p", m, Column("id", String, primary_key=True)) - mapper( + self.mapper_registry.map_imperatively( Parent, p, properties={ @@ -585,8 +584,8 @@ class PickleTest(fixtures.MappedTest): "children2": relationship(Child2), }, ) - mapper(Child1, c1) - mapper(Child2, c2) + self.mapper_registry.map_imperatively(Child1, c1) + self.mapper_registry.map_imperatively(Child2, c2) obj = Parent() screen1 = Screen(obj) @@ -599,7 +598,7 @@ class PickleTest(fixtures.MappedTest): pass users = self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) for sa_exc in ( orm_exc.UnmappedInstanceError(Foo()), @@ -613,7 +612,7 @@ class PickleTest(fixtures.MappedTest): def test_attribute_mapped_collection(self): users, addresses = self.tables.users, self.tables.addresses - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -625,7 +624,7 @@ class PickleTest(fixtures.MappedTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) u1 = User() u1.addresses = {"email1": Address(email_address="email1")} for loads, dumps in picklers(): @@ -636,7 +635,7 @@ class PickleTest(fixtures.MappedTest): def test_column_mapped_collection(self): users, addresses = self.tables.users, self.tables.addresses - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -648,7 +647,7 @@ class PickleTest(fixtures.MappedTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) u1 = User() u1.addresses = { "email1": Address(email_address="email1"), @@ -662,7 +661,7 @@ class PickleTest(fixtures.MappedTest): def test_composite_column_mapped_collection(self): users, addresses = self.tables.users, self.tables.addresses - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -674,7 +673,7 @@ class PickleTest(fixtures.MappedTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) u1 = User() u1.addresses = { (1, "email1"): Address(id=1, email_address="email1"), @@ -743,13 +742,13 @@ class PolymorphicDeferredTest(fixtures.MappedTest): def test_polymorphic_deferred(self): email_users, users = (self.tables.email_users, self.tables.users) - mapper( + self.mapper_registry.map_imperatively( User, users, polymorphic_identity="user", polymorphic_on=users.c.type, ) - mapper( + self.mapper_registry.map_imperatively( EmailUser, email_users, inherits=User, @@ -782,7 +781,7 @@ class TupleLabelTest(_fixtures.FixtureTest): cls.tables.addresses, cls.tables.orders, ) - mapper( + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -795,8 +794,8 @@ class TupleLabelTest(_fixtures.FixtureTest): ), }, ) - mapper(Address, addresses) - mapper( + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively( Order, orders, properties={"address": relationship(Address)} ) # m2o @@ -893,7 +892,7 @@ class CustomSetupTeardownTest(fixtures.MappedTest): users = self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u1 = User() attributes.manager_of_class(User).teardown_instance(u1) diff --git a/test/orm/test_query.py b/test/orm/test_query.py index 16e5accfd3..80fb913ffc 100644 --- a/test/orm/test_query.py +++ b/test/orm/test_query.py @@ -44,13 +44,13 @@ from sqlalchemy.orm import aliased from sqlalchemy.orm import attributes from sqlalchemy.orm import backref from sqlalchemy.orm import Bundle +from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import column_property from sqlalchemy.orm import contains_eager from sqlalchemy.orm import defer from sqlalchemy.orm import deferred from sqlalchemy.orm import joinedload from sqlalchemy.orm import lazyload -from sqlalchemy.orm import mapper from sqlalchemy.orm import Query from sqlalchemy.orm import relationship from sqlalchemy.orm import selectinload @@ -196,9 +196,11 @@ class RowTupleTest(QueryTest, AssertsCompiledSQL): Column("id", Integer, primary_key=True), Column("name", String, key="uname"), ) - mapper(User, uwkey) + self.mapper_registry.map_imperatively(User, uwkey) else: - mapper(User, users, properties={"uname": users.c.name}) + self.mapper_registry.map_imperatively( + User, users, properties={"uname": users.c.name} + ) s = fixture_session() if legacy: @@ -241,7 +243,7 @@ class RowTupleTest(QueryTest, AssertsCompiledSQL): """test #6979""" User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session() @@ -267,7 +269,7 @@ class RowTupleTest(QueryTest, AssertsCompiledSQL): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session() @@ -289,7 +291,7 @@ class RowTupleTest(QueryTest, AssertsCompiledSQL): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session() @@ -307,7 +309,7 @@ class RowTupleTest(QueryTest, AssertsCompiledSQL): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session() @@ -322,8 +324,10 @@ class RowTupleTest(QueryTest, AssertsCompiledSQL): User, users = self.classes.User, self.tables.users Address, addresses = self.classes.Address, self.tables.addresses - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session() @@ -551,8 +555,8 @@ class RowTupleTest(QueryTest, AssertsCompiledSQL): self.classes.User, ) - mapper(User, users) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() user_alias = aliased(User) user_alias_id_label = user_alias.id.label("foo") @@ -579,8 +583,10 @@ class RowTupleTest(QueryTest, AssertsCompiledSQL): User, users = self.classes.User, self.tables.users Address, addresses = self.classes.Address, self.tables.addresses - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session() q = ( @@ -615,8 +621,10 @@ class RowTupleTest(QueryTest, AssertsCompiledSQL): User, users = self.classes.User, self.tables.users Address, addresses = self.classes.Address, self.tables.addresses - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session() @@ -641,8 +649,10 @@ class RowTupleTest(QueryTest, AssertsCompiledSQL): User, users = self.classes.User, self.tables.users Address, addresses = self.classes.Address, self.tables.addresses - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session() @@ -672,8 +682,10 @@ class RowTupleTest(QueryTest, AssertsCompiledSQL): User, users = self.classes.User, self.tables.users Address, addresses = self.classes.Address, self.tables.addresses - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session() @@ -702,8 +714,10 @@ class RowTupleTest(QueryTest, AssertsCompiledSQL): User, users = self.classes.User, self.tables.users Address, addresses = self.classes.Address, self.tables.addresses - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) class MyType(TypeDecorator): impl = Integer @@ -975,10 +989,15 @@ class RowLabelingTest(QueryTest): String, ), ) - mapper(Foo, users, properties={"uname": users.c.name}) + self.mapper_registry.map_imperatively( + Foo, users, properties={"uname": users.c.name} + ) else: users = self.tables.users - mapper(Foo, users, properties={"uname": users.c.name}) + clear_mappers() + self.mapper_registry.map_imperatively( + Foo, users, properties={"uname": users.c.name} + ) return Foo @@ -1226,7 +1245,7 @@ class GetTest(QueryTest): assert_raises(sa_exc.InvalidRequestError, q.get, (5,)) @testing.fixture - def outerjoin_mapping(self): + def outerjoin_mapping(self, registry): users, addresses = self.tables.users, self.tables.addresses s = users.outerjoin(addresses) @@ -1234,7 +1253,7 @@ class GetTest(QueryTest): class UserThing(fixtures.ComparableEntity): pass - mapper( + registry.map_imperatively( UserThing, s, properties={ @@ -1319,7 +1338,7 @@ class GetTest(QueryTest): pass s = users.select().where(users.c.id != 12).alias("users") - m = mapper(SomeUser, s) + m = self.mapper_registry.map_imperatively(SomeUser, s) assert s.primary_key == m.primary_key sess = fixture_session() @@ -1367,7 +1386,7 @@ class GetTest(QueryTest): class LocalFoo(self.classes.Base): pass - mapper(LocalFoo, table) + self.mapper_registry.map_imperatively(LocalFoo, table) with Session(connection) as sess: eq_( sess.get(LocalFoo, ustring), @@ -2614,20 +2633,20 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL): else: stmt = stmt.scalar_subquery() - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"ead": column_property(stmt)}, with_polymorphic="*" if polymorphic else None, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) def _func_fixture(self, label=False): User = self.classes.User users = self.tables.users if label: - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2637,7 +2656,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL): }, ) else: - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -4147,7 +4166,7 @@ class SetOpsWDeferredTest(QueryTest, AssertsCompiledSQL): User = self.classes.User users = self.tables.users - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -5254,7 +5273,7 @@ class YieldTest(_fixtures.FixtureTest): def _eagerload_mappings(self, addresses_lazy=True, user_lazy=True): User, Address = self.classes("User", "Address") users, addresses = self.tables("users", "addresses") - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -5265,7 +5284,7 @@ class YieldTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) def test_basic(self): self._eagerload_mappings() @@ -5461,7 +5480,7 @@ class YieldIterationTest(_fixtures.FixtureTest): def setup_mappers(cls): User = cls.classes.User users = cls.tables.users - mapper(User, users) + cls.mapper_registry.map_imperatively(User, users) @classmethod def fixtures(cls): @@ -6590,8 +6609,8 @@ class WithTransientOnNone(_fixtures.FixtureTest, AssertsCompiledSQL): self.tables.has_dingaling, ) - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -6606,8 +6625,8 @@ class WithTransientOnNone(_fixtures.FixtureTest, AssertsCompiledSQL): ), }, ) - mapper(Dingaling, dingalings) - mapper( + self.mapper_registry.map_imperatively(Dingaling, dingalings) + self.mapper_registry.map_imperatively( HasDingaling, has_dingaling, properties={ @@ -6881,7 +6900,7 @@ class SynonymTest(QueryTest, AssertsCompiledSQL): cls.tables.addresses, ) - mapper( + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -6894,8 +6913,8 @@ class SynonymTest(QueryTest, AssertsCompiledSQL): "orders_syn_2": synonym("orders_syn"), }, ) - mapper(Address, addresses) - mapper( + cls.mapper_registry.map_imperatively(Address, addresses) + cls.mapper_registry.map_imperatively( Order, orders, properties={ @@ -6904,7 +6923,7 @@ class SynonymTest(QueryTest, AssertsCompiledSQL): "items_syn": synonym("items"), }, ) - mapper( + cls.mapper_registry.map_imperatively( Item, items, properties={ @@ -6913,7 +6932,7 @@ class SynonymTest(QueryTest, AssertsCompiledSQL): ) # m2m }, ) - mapper(Keyword, keywords) + cls.mapper_registry.map_imperatively(Keyword, keywords) def test_options(self): User, Order = self.classes.User, self.classes.Order @@ -7079,9 +7098,11 @@ class ImmediateTest(_fixtures.FixtureTest): cls.classes.User, ) - mapper(Address, addresses) + cls.mapper_registry.map_imperatively(Address, addresses) - mapper(User, users, properties=dict(addresses=relationship(Address))) + cls.mapper_registry.map_imperatively( + User, users, properties=dict(addresses=relationship(Address)) + ) def test_one(self): User, Address = self.classes.User, self.classes.Address diff --git a/test/orm/test_relationship_criteria.py b/test/orm/test_relationship_criteria.py index 8cf02adaca..571d272320 100644 --- a/test/orm/test_relationship_criteria.py +++ b/test/orm/test_relationship_criteria.py @@ -16,7 +16,6 @@ from sqlalchemy.orm import aliased from sqlalchemy.orm import defer from sqlalchemy.orm import joinedload from sqlalchemy.orm import lazyload -from sqlalchemy.orm import mapper from sqlalchemy.orm import registry from sqlalchemy.orm import relationship from sqlalchemy.orm import selectinload @@ -40,12 +39,13 @@ class _Fixtures(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), order_by=Address.id + self.mapper_registry.map_imperatively(Address, addresses), + order_by=Address.id, ) }, ) @@ -58,7 +58,7 @@ class _Fixtures(_fixtures.FixtureTest): "orders", "items", "order_items" ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -68,7 +68,7 @@ class _Fixtures(_fixtures.FixtureTest): ), }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) return Order, Item @@ -79,12 +79,12 @@ class _Fixtures(_fixtures.FixtureTest): "users", "orders", "items", "order_items" ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"orders": relationship(Order, order_by=orders.c.id)}, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -94,7 +94,7 @@ class _Fixtures(_fixtures.FixtureTest): ), }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) return User, Order, Item @@ -108,7 +108,7 @@ class _Fixtures(_fixtures.FixtureTest): class UserWFoob(HasFoob, self.Comparable): pass - mapper( + self.mapper_registry.map_imperatively( UserWFoob, users, ) @@ -126,7 +126,7 @@ class _Fixtures(_fixtures.FixtureTest): class UserWFoob(HasFoob, self.Comparable): pass - mapper( + self.mapper_registry.map_imperatively( UserWFoob, users, ) diff --git a/test/orm/test_relationships.py b/test/orm/test_relationships.py index f9c8bae7aa..a25e39c82b 100644 --- a/test/orm/test_relationships.py +++ b/test/orm/test_relationships.py @@ -23,7 +23,6 @@ from sqlalchemy.orm import declarative_base from sqlalchemy.orm import exc as orm_exc from sqlalchemy.orm import foreign from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import remote from sqlalchemy.orm import selectinload @@ -257,7 +256,7 @@ class DependencyTwoParentTest(fixtures.MappedTest): cls.tables.tbl_d, ) - mapper( + cls.mapper_registry.map_imperatively( A, tbl_a, properties=dict( @@ -266,8 +265,8 @@ class DependencyTwoParentTest(fixtures.MappedTest): ) ), ) - mapper(B, tbl_b) - mapper( + cls.mapper_registry.map_imperatively(B, tbl_b) + cls.mapper_registry.map_imperatively( C, tbl_c, properties=dict( @@ -276,7 +275,9 @@ class DependencyTwoParentTest(fixtures.MappedTest): ) ), ) - mapper(D, tbl_d, properties=dict(b_row=relationship(B))) + cls.mapper_registry.map_imperatively( + D, tbl_d, properties=dict(b_row=relationship(B)) + ) @classmethod def insert_data(cls, connection): @@ -338,8 +339,10 @@ class M2ODontOverwriteFKTest(fixtures.MappedTest): class B(fixtures.BasicEntity): pass - mapper(A, a, properties={"b": relationship(B, uselist=uselist)}) - mapper(B, b) + self.mapper_registry.map_imperatively( + A, a, properties={"b": relationship(B, uselist=uselist)} + ) + self.mapper_registry.map_imperatively(B, b) return A, B def test_joinedload_doesnt_produce_bogus_event(self): @@ -461,7 +464,7 @@ class DirectSelfRefFKTest(fixtures.MappedTest, AssertsCompiledSQL): Entity = self.classes.Entity entity = self.tables.entity - m = mapper( + m = self.mapper_registry.map_imperatively( Entity, entity, properties={ @@ -484,7 +487,7 @@ class DirectSelfRefFKTest(fixtures.MappedTest, AssertsCompiledSQL): Entity = self.classes.Entity entity = self.tables.entity - m = mapper( + m = self.mapper_registry.map_imperatively( Entity, entity, properties={ @@ -632,14 +635,13 @@ class DirectSelfRefFKTest(fixtures.MappedTest, AssertsCompiledSQL): ) -class OverlappingFksSiblingTest(fixtures.TestBase): +class OverlappingFksSiblingTest(fixtures.MappedTest): """Test multiple relationships that use sections of the same composite foreign key. """ - def teardown_test(self): - clear_mappers() + run_define_tables = "each" def _fixture_one( self, @@ -651,7 +653,7 @@ class OverlappingFksSiblingTest(fixtures.TestBase): add_b_a_overlaps=None, ): - Base = declarative_base(metadata=self.metadata) + Base = self.mapper_registry.generate_base() class A(Base): @@ -717,13 +719,14 @@ class OverlappingFksSiblingTest(fixtures.TestBase): __mapper_args__ = {"polymorphic_identity": "bsub2"} configure_mappers() - self.metadata.create_all(testing.db) + assert self.tables_test_metadata is Base.metadata + self.tables_test_metadata.create_all(testing.db) return A, AMember, B, BSub1, BSub2 def _fixture_two(self, setup_backrefs=False, setup_overlaps=False): - Base = declarative_base(metadata=self.metadata) + Base = self.mapper_registry.generate_base() # purposely using the comma to make sure parsing the comma works @@ -752,7 +755,7 @@ class OverlappingFksSiblingTest(fixtures.TestBase): configure_mappers() def _fixture_three(self, use_same_mappers, setup_overlaps): - Base = declarative_base(metadata=self.metadata) + Base = self.mapper_registry.generate_base() class Child(Base): __tablename__ = "child" @@ -804,7 +807,7 @@ class OverlappingFksSiblingTest(fixtures.TestBase): configure_mappers() def _fixture_four(self): - Base = declarative_base(metadata=self.metadata) + Base = self.mapper_registry.generate_base() class A(Base): __tablename__ = "a" @@ -879,7 +882,7 @@ class OverlappingFksSiblingTest(fixtures.TestBase): @testing.combinations((True,), (False,), argnames="set_overlaps") def test_fixture_five(self, metadata, set_overlaps): - Base = declarative_base(metadata=self.metadata) + Base = self.mapper_registry.generate_base() if set_overlaps: overlaps = "as,cs" @@ -1109,8 +1112,8 @@ class CompositeSelfRefFKTest(fixtures.MappedTest, AssertsCompiledSQL): self.tables.company_t, ) - mapper(Company, company_t) - mapper( + self.mapper_registry.map_imperatively(Company, company_t) + self.mapper_registry.map_imperatively( Employee, employee_t, properties={ @@ -1152,8 +1155,8 @@ class CompositeSelfRefFKTest(fixtures.MappedTest, AssertsCompiledSQL): self.tables.company_t, ) - mapper(Company, company_t) - mapper( + self.mapper_registry.map_imperatively(Company, company_t) + self.mapper_registry.map_imperatively( Employee, employee_t, properties={ @@ -1186,8 +1189,8 @@ class CompositeSelfRefFKTest(fixtures.MappedTest, AssertsCompiledSQL): self.tables.company_t, ) - mapper(Company, company_t) - mapper( + self.mapper_registry.map_imperatively(Company, company_t) + self.mapper_registry.map_imperatively( Employee, employee_t, properties={ @@ -1210,8 +1213,8 @@ class CompositeSelfRefFKTest(fixtures.MappedTest, AssertsCompiledSQL): self.tables.company_t, ) - mapper(Company, company_t) - mapper( + self.mapper_registry.map_imperatively(Company, company_t) + self.mapper_registry.map_imperatively( Employee, employee_t, properties={ @@ -1247,8 +1250,8 @@ class CompositeSelfRefFKTest(fixtures.MappedTest, AssertsCompiledSQL): self.tables.company_t, ) - mapper(Company, company_t) - mapper( + self.mapper_registry.map_imperatively(Company, company_t) + self.mapper_registry.map_imperatively( Employee, employee_t, properties={ @@ -1277,8 +1280,8 @@ class CompositeSelfRefFKTest(fixtures.MappedTest, AssertsCompiledSQL): self.tables.company_t, ) - mapper(Company, company_t) - mapper( + self.mapper_registry.map_imperatively(Company, company_t) + self.mapper_registry.map_imperatively( Employee, employee_t, properties={ @@ -1311,8 +1314,8 @@ class CompositeSelfRefFKTest(fixtures.MappedTest, AssertsCompiledSQL): self.tables.company_t, ) - mapper(Company, company_t) - mapper( + self.mapper_registry.map_imperatively(Company, company_t) + self.mapper_registry.map_imperatively( Employee, employee_t, properties={ @@ -1496,7 +1499,7 @@ class CompositeJoinPartialFK(fixtures.MappedTest, AssertsCompiledSQL): class Child(cls.Comparable): pass - mapper( + cls.mapper_registry.map_imperatively( Parent, parent, properties={ @@ -1510,7 +1513,7 @@ class CompositeJoinPartialFK(fixtures.MappedTest, AssertsCompiledSQL): ) }, ) - mapper(Child, child) + cls.mapper_registry.map_imperatively(Child, child) def test_joins_fully(self): Parent = self.classes.Parent @@ -1564,10 +1567,10 @@ class SynonymsAsFKsTest(fixtures.MappedTest): self.tables.tableA, ) - mapper( + self.mapper_registry.map_imperatively( B, tableB, properties={"a_id": synonym("_a_id", map_column=True)} ) - mapper( + self.mapper_registry.map_imperatively( A, tableA, properties={ @@ -1635,7 +1638,7 @@ class FKsAsPksTest(fixtures.MappedTest): self.tables.tableA, ) - mapper( + self.mapper_registry.map_imperatively( A, tableA, properties={ @@ -1644,7 +1647,7 @@ class FKsAsPksTest(fixtures.MappedTest): ) }, ) - mapper(B, tableB) + self.mapper_registry.map_imperatively(B, tableB) configure_mappers() assert A.b.property.strategy.use_get @@ -1669,12 +1672,12 @@ class FKsAsPksTest(fixtures.MappedTest): self.tables.tableA, ) - mapper( + self.mapper_registry.map_imperatively( A, tableA, properties={"bs": relationship(B, cascade="save-update")}, ) - mapper(B, tableB) + self.mapper_registry.map_imperatively(B, tableB) a1 = A() a1.bs.append(B()) @@ -1699,10 +1702,10 @@ class FKsAsPksTest(fixtures.MappedTest): self.tables.tableA, ) - mapper( + self.mapper_registry.map_imperatively( B, tableB, properties={"a": relationship(A, cascade="save-update")} ) - mapper(A, tableA) + self.mapper_registry.map_imperatively(A, tableA) b1 = B() a1 = A() @@ -1742,10 +1745,10 @@ class FKsAsPksTest(fixtures.MappedTest): class C(fixtures.BasicEntity): pass - mapper( + self.mapper_registry.map_imperatively( C, tableC, properties={"a": relationship(A, cascade="save-update")} ) - mapper(A, tableA) + self.mapper_registry.map_imperatively(A, tableA) c1 = C() c1.id = 5 @@ -1755,7 +1758,12 @@ class FKsAsPksTest(fixtures.MappedTest): # test that no error is raised. sess.flush() - def test_delete_cascade_BtoA(self): + @testing.combinations( + "save-update, delete", + # "save-update, delete-orphan", + "save-update, delete, delete-orphan", + ) + def test_delete_cascade_BtoA(self, cascade): """No 'blank the PK' error when the child is to be deleted as part of a cascade""" @@ -1766,34 +1774,32 @@ class FKsAsPksTest(fixtures.MappedTest): self.tables.tableA, ) - for cascade in ( - "save-update, delete", - # "save-update, delete-orphan", - "save-update, delete, delete-orphan", - ): - mapper( - B, - tableB, - properties={ - "a": relationship(A, cascade=cascade, single_parent=True) - }, - ) - mapper(A, tableA) + self.mapper_registry.map_imperatively( + B, + tableB, + properties={ + "a": relationship(A, cascade=cascade, single_parent=True) + }, + ) + self.mapper_registry.map_imperatively(A, tableA) - b1 = B() - a1 = A() - b1.a = a1 - with fixture_session() as sess: - sess.add(b1) - sess.flush() - sess.delete(b1) - sess.flush() - assert a1 not in sess - assert b1 not in sess - - sa.orm.clear_mappers() - - def test_delete_cascade_AtoB(self): + b1 = B() + a1 = A() + b1.a = a1 + with fixture_session() as sess: + sess.add(b1) + sess.flush() + sess.delete(b1) + sess.flush() + assert a1 not in sess + assert b1 not in sess + + @testing.combinations( + "save-update, delete", + # "save-update, delete-orphan", + "save-update, delete, delete-orphan", + ) + def test_delete_cascade_AtoB(self, cascade): """No 'blank the PK' error when the child is to be deleted as part of a cascade""" @@ -1804,29 +1810,22 @@ class FKsAsPksTest(fixtures.MappedTest): self.tables.tableA, ) - for cascade in ( - "save-update, delete", - # "save-update, delete-orphan", - "save-update, delete, delete-orphan", - ): - mapper( - A, tableA, properties={"bs": relationship(B, cascade=cascade)} - ) - mapper(B, tableB) - - a1 = A() - b1 = B() - a1.bs.append(b1) - with fixture_session() as sess: - sess.add(a1) - sess.flush() + self.mapper_registry.map_imperatively( + A, tableA, properties={"bs": relationship(B, cascade=cascade)} + ) + self.mapper_registry.map_imperatively(B, tableB) - sess.delete(a1) - sess.flush() - assert a1 not in sess - assert b1 not in sess + a1 = A() + b1 = B() + a1.bs.append(b1) + with fixture_session() as sess: + sess.add(a1) + sess.flush() - sa.orm.clear_mappers() + sess.delete(a1) + sess.flush() + assert a1 not in sess + assert b1 not in sess def test_delete_manual_AtoB(self): tableB, A, B, tableA = ( @@ -1836,8 +1835,10 @@ class FKsAsPksTest(fixtures.MappedTest): self.tables.tableA, ) - mapper(A, tableA, properties={"bs": relationship(B, cascade="none")}) - mapper(B, tableB) + self.mapper_registry.map_imperatively( + A, tableA, properties={"bs": relationship(B, cascade="none")} + ) + self.mapper_registry.map_imperatively(B, tableB) a1 = A() b1 = B() @@ -1861,8 +1862,10 @@ class FKsAsPksTest(fixtures.MappedTest): self.tables.tableA, ) - mapper(B, tableB, properties={"a": relationship(A, cascade="none")}) - mapper(A, tableA) + self.mapper_registry.map_imperatively( + B, tableB, properties={"a": relationship(A, cascade="none")} + ) + self.mapper_registry.map_imperatively(A, tableA) b1 = B() a1 = A() @@ -1924,8 +1927,10 @@ class UniqueColReferenceSwitchTest(fixtures.MappedTest): self.tables.table_a, ) - mapper(A, table_a) - mapper(B, table_b, properties={"a": relationship(A, backref="bs")}) + self.mapper_registry.map_imperatively(A, table_a) + self.mapper_registry.map_imperatively( + B, table_b, properties={"a": relationship(A, backref="bs")} + ) session = fixture_session() a1, a2 = A(ident="uuid1"), A(ident="uuid2") @@ -1987,9 +1992,9 @@ class RelationshipToSelectableTest(fixtures.MappedTest): .alias("container_select") ) - mapper(LineItem, items) + self.mapper_registry.map_imperatively(LineItem, items) - mapper( + self.mapper_registry.map_imperatively( Container, container_select, properties=dict( @@ -2073,7 +2078,7 @@ class FKEquatedToConstantTest(fixtures.MappedTest): class TagInstance(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( Tag, tags, properties={ @@ -2088,7 +2093,7 @@ class FKEquatedToConstantTest(fixtures.MappedTest): }, ) - mapper(TagInstance, tag_foo) + self.mapper_registry.map_imperatively(TagInstance, tag_foo) sess = fixture_session() t1 = Tag(data="some tag") @@ -2148,7 +2153,7 @@ class BackrefPropagatesForwardsArgs(fixtures.MappedTest): self.tables.addresses, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2160,7 +2165,7 @@ class BackrefPropagatesForwardsArgs(fixtures.MappedTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u1 = User(name="u1", addresses=[Address(email="a1")]) @@ -2224,9 +2229,9 @@ class AmbiguousJoinInterpretedAsSelfRef(fixtures.MappedTest): class Subscriber(cls.Comparable): pass - mapper(Address, address) + cls.mapper_registry.map_imperatively(Address, address) - mapper( + cls.mapper_registry.map_imperatively( Subscriber, subscriber_and_address, properties={ @@ -2281,7 +2286,7 @@ class ManualBackrefTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2289,7 +2294,7 @@ class ManualBackrefTest(_fixtures.FixtureTest): }, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -2319,7 +2324,7 @@ class ManualBackrefTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2327,7 +2332,7 @@ class ManualBackrefTest(_fixtures.FixtureTest): }, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -2347,7 +2352,7 @@ class ManualBackrefTest(_fixtures.FixtureTest): self.tables.users, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2355,8 +2360,8 @@ class ManualBackrefTest(_fixtures.FixtureTest): }, ) - mapper(Dingaling, dingalings) - mapper( + self.mapper_registry.map_imperatively(Dingaling, dingalings) + self.mapper_registry.map_imperatively( Address, addresses, properties={"dingaling": relationship(Dingaling)}, @@ -2380,7 +2385,7 @@ class ManualBackrefTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2388,7 +2393,7 @@ class ManualBackrefTest(_fixtures.FixtureTest): }, ) - mapper( + self.mapper_registry.map_imperatively( Addr, addr, properties={ @@ -2419,7 +2424,7 @@ class NoLoadBackPopulates(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2429,7 +2434,9 @@ class NoLoadBackPopulates(_fixtures.FixtureTest): }, ) - mapper(Address, addresses, properties={"user": relationship(User)}) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) u1 = User() a1 = Address() @@ -2444,9 +2451,11 @@ class NoLoadBackPopulates(_fixtures.FixtureTest): self.classes.User, ) - mapper(User, users, properties={"addresses": relationship(Address)}) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -2463,10 +2472,8 @@ class NoLoadBackPopulates(_fixtures.FixtureTest): class JoinConditionErrorTest(fixtures.TestBase): - def test_clauseelement_pj(self): - from sqlalchemy.orm import declarative_base - - Base = declarative_base() + def test_clauseelement_pj(self, registry): + Base = registry.generate_base() class C1(Base): __tablename__ = "c1" @@ -2480,10 +2487,8 @@ class JoinConditionErrorTest(fixtures.TestBase): assert_raises(sa.exc.ArgumentError, configure_mappers) - def test_clauseelement_pj_false(self): - from sqlalchemy.orm import declarative_base - - Base = declarative_base() + def test_clauseelement_pj_false(self, registry): + Base = registry.generate_base() class C1(Base): __tablename__ = "c1" @@ -2497,7 +2502,7 @@ class JoinConditionErrorTest(fixtures.TestBase): assert_raises(sa.exc.ArgumentError, configure_mappers) - def test_only_column_elements(self): + def test_only_column_elements(self, registry): m = MetaData() t1 = Table( "t1", @@ -2513,46 +2518,45 @@ class JoinConditionErrorTest(fixtures.TestBase): class C2(object): pass - mapper( + registry.map_imperatively( C1, t1, properties={"c2": relationship(C2, primaryjoin=t1.join(t2))}, ) - mapper(C2, t2) + registry.map_imperatively(C2, t2) assert_raises(sa.exc.ArgumentError, configure_mappers) - def test_invalid_string_args(self): - from sqlalchemy.orm import declarative_base - - for argname, arg in [ - ("remote_side", ["c1.id"]), - ("remote_side", ["id"]), - ("foreign_keys", ["c1id"]), - ("foreign_keys", ["C2.c1id"]), - ("order_by", ["id"]), - ]: - clear_mappers() - kw = {argname: arg} - Base = declarative_base() - - class C1(Base): - __tablename__ = "c1" - id = Column("id", Integer, primary_key=True) - - class C2(Base): - __tablename__ = "c2" - id_ = Column("id", Integer, primary_key=True) - c1id = Column("c1id", Integer, ForeignKey("c1.id")) - c2 = relationship(C1, **kw) + @testing.combinations( + ("remote_side", ["c1.id"]), + ("remote_side", ["id"]), + ("foreign_keys", ["c1id"]), + ("foreign_keys", ["C2.c1id"]), + ("order_by", ["id"]), + argnames="argname, arg", + ) + def test_invalid_string_args(self, registry, argname, arg): - assert_raises_message( - sa.exc.ArgumentError, - "Column expression expected " - "for argument '%s'; got '%s'" % (argname, arg[0]), - configure_mappers, - ) + kw = {argname: arg} + Base = registry.generate_base() + + class C1(Base): + __tablename__ = "c1" + id = Column("id", Integer, primary_key=True) + + class C2(Base): + __tablename__ = "c2" + id_ = Column("id", Integer, primary_key=True) + c1id = Column("c1id", Integer, ForeignKey("c1.id")) + c2 = relationship(C1, **kw) + + assert_raises_message( + sa.exc.ArgumentError, + "Column expression expected " + "for argument '%s'; got '%s'" % (argname, arg[0]), + configure_mappers, + ) - def test_fk_error_not_raised_unrelated(self): + def test_fk_error_not_raised_unrelated(self, registry): m = MetaData() t1 = Table( "t1", @@ -2575,11 +2579,11 @@ class JoinConditionErrorTest(fixtures.TestBase): class C2(object): pass - mapper(C1, t1, properties={"c2": relationship(C2)}) - mapper(C2, t3) + registry.map_imperatively(C1, t1, properties={"c2": relationship(C2)}) + registry.map_imperatively(C2, t3) assert C1.c2.property.primaryjoin.compare(t1.c.id == t3.c.t1id) - def test_join_error_raised(self): + def test_join_error_raised(self, registry): m = MetaData() t1 = Table("t1", m, Column("id", Integer, primary_key=True)) t2 = Table("t2", m, Column("id", Integer, primary_key=True)) # noqa @@ -2597,8 +2601,8 @@ class JoinConditionErrorTest(fixtures.TestBase): class C2(object): pass - mapper(C1, t1, properties={"c2": relationship(C2)}) - mapper(C2, t3) + registry.map_imperatively(C1, t1, properties={"c2": relationship(C2)}) + registry.map_imperatively(C2, t3) assert_raises(sa.exc.ArgumentError, configure_mappers) @@ -2661,9 +2665,11 @@ class TypeMatchTest(fixtures.MappedTest): class C(fixtures.BasicEntity): pass - mapper(A, a, properties={"bs": relationship(B)}) - mapper(B, b) - mapper(C, c) + self.mapper_registry.map_imperatively( + A, a, properties={"bs": relationship(B)} + ) + self.mapper_registry.map_imperatively(B, b) + self.mapper_registry.map_imperatively(C, c) a1 = A() b1 = B() @@ -2693,9 +2699,11 @@ class TypeMatchTest(fixtures.MappedTest): class C(fixtures.BasicEntity): pass - mapper(A, a, properties={"bs": relationship(B, cascade="none")}) - mapper(B, b) - mapper(C, c) + self.mapper_registry.map_imperatively( + A, a, properties={"bs": relationship(B, cascade="none")} + ) + self.mapper_registry.map_imperatively(B, b) + self.mapper_registry.map_imperatively(C, c) a1 = A() b1 = B() @@ -2722,9 +2730,11 @@ class TypeMatchTest(fixtures.MappedTest): class C(B): pass - mapper(A, a, properties={"bs": relationship(B, cascade="none")}) - mapper(B, b) - mapper(C, c, inherits=B) + self.mapper_registry.map_imperatively( + A, a, properties={"bs": relationship(B, cascade="none")} + ) + self.mapper_registry.map_imperatively(B, b) + self.mapper_registry.map_imperatively(C, c, inherits=B) a1 = A() b1 = B() @@ -2751,9 +2761,11 @@ class TypeMatchTest(fixtures.MappedTest): class D(fixtures.BasicEntity): pass - mapper(A, a) - mapper(B, b, inherits=A) - mapper(D, d, properties={"a": relationship(A, cascade="none")}) + self.mapper_registry.map_imperatively(A, a) + self.mapper_registry.map_imperatively(B, b, inherits=A) + self.mapper_registry.map_imperatively( + D, d, properties={"a": relationship(A, cascade="none")} + ) b1 = B() d1 = D() d1.a = b1 @@ -2776,9 +2788,11 @@ class TypeMatchTest(fixtures.MappedTest): class D(fixtures.BasicEntity): pass - mapper(A, a) - mapper(B, b) - mapper(D, d, properties={"a": relationship(A)}) + self.mapper_registry.map_imperatively(A, a) + self.mapper_registry.map_imperatively(B, b) + self.mapper_registry.map_imperatively( + D, d, properties={"a": relationship(A)} + ) b1 = B() d1 = D() d1.a = b1 @@ -2831,8 +2845,8 @@ class TypedAssociationTable(fixtures.MappedTest): class T2(fixtures.BasicEntity): pass - mapper(T2, t2) - mapper( + self.mapper_registry.map_imperatively(T2, t2) + self.mapper_registry.map_imperatively( T1, t1, properties={"t2s": relationship(T2, secondary=t3, backref="t1s")}, @@ -2894,7 +2908,7 @@ class CustomOperatorTest(fixtures.MappedTest, AssertsCompiledSQL): class B(fixtures.BasicEntity): pass - mapper( + self.mapper_registry.map_imperatively( A, self.tables.a, properties={ @@ -2907,7 +2921,7 @@ class CustomOperatorTest(fixtures.MappedTest, AssertsCompiledSQL): ) }, ) - mapper(B, self.tables.b) + self.mapper_registry.map_imperatively(B, self.tables.b) self.assert_compile( fixture_session().query(A).join(A.bs), "SELECT a.id AS a_id, a.foo AS a_foo " @@ -2955,7 +2969,7 @@ class ViewOnlyHistoryTest(fixtures.MappedTest): class B(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( A, self.tables.t1, properties={ @@ -2964,7 +2978,7 @@ class ViewOnlyHistoryTest(fixtures.MappedTest): ) }, ) - mapper(B, self.tables.t2) + self.mapper_registry.map_imperatively(B, self.tables.t2) configure_mappers() @@ -2988,7 +3002,7 @@ class ViewOnlyHistoryTest(fixtures.MappedTest): class B(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( A, self.tables.t1, properties={ @@ -2997,7 +3011,7 @@ class ViewOnlyHistoryTest(fixtures.MappedTest): ) }, ) - mapper(B, self.tables.t2) + self.mapper_registry.map_imperatively(B, self.tables.t2) configure_mappers() @@ -3021,12 +3035,12 @@ class ViewOnlyHistoryTest(fixtures.MappedTest): class B(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( A, self.tables.t1, properties={"bs": relationship(B, viewonly=True)}, ) - mapper(B, self.tables.t2) + self.mapper_registry.map_imperatively(B, self.tables.t2) a1 = A() b1 = B() @@ -3042,8 +3056,8 @@ class ViewOnlyHistoryTest(fixtures.MappedTest): class B(fixtures.ComparableEntity): pass - mapper(A, self.tables.t1) - mapper( + self.mapper_registry.map_imperatively(A, self.tables.t1) + self.mapper_registry.map_imperatively( B, self.tables.t2, properties={"a": relationship(A, viewonly=True)} ) @@ -3090,7 +3104,7 @@ class ViewOnlyM2MBackrefTest(fixtures.MappedTest): class B(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( A, t1, properties={ @@ -3099,7 +3113,7 @@ class ViewOnlyM2MBackrefTest(fixtures.MappedTest): ) }, ) - mapper(B, t2) + self.mapper_registry.map_imperatively(B, t2) configure_mappers() @@ -3168,7 +3182,7 @@ class ViewOnlyOverlappingNames(fixtures.MappedTest): class C3(fixtures.BasicEntity): pass - mapper( + self.mapper_registry.map_imperatively( C1, t1, properties={ @@ -3184,8 +3198,10 @@ class ViewOnlyOverlappingNames(fixtures.MappedTest): ), }, ) - mapper(C2, t2) - mapper(C3, t3, properties={"t2": relationship(C2)}) + self.mapper_registry.map_imperatively(C2, t2) + self.mapper_registry.map_imperatively( + C3, t3, properties={"t2": relationship(C2)} + ) c1 = C1() c1.data = "c1data" @@ -3324,12 +3340,12 @@ class ViewOnlySyncBackref(fixtures.MappedTest): ) return - mapper( + self.mapper_registry.map_imperatively( A, self.tables.t1, properties={"bs": rel()}, ) - mapper(B, self.tables.t2) + self.mapper_registry.map_imperatively(B, self.tables.t2) if case.B_a_init_error: assert_raises_message( @@ -3430,7 +3446,7 @@ class ViewOnlyUniqueNames(fixtures.MappedTest): class C3(fixtures.BasicEntity): pass - mapper( + self.mapper_registry.map_imperatively( C1, t1, properties={ @@ -3446,8 +3462,10 @@ class ViewOnlyUniqueNames(fixtures.MappedTest): ), }, ) - mapper(C2, t2) - mapper(C3, t3, properties={"t2": relationship(C2)}) + self.mapper_registry.map_imperatively(C2, t2) + self.mapper_registry.map_imperatively( + C3, t3, properties={"t2": relationship(C2)} + ) c1 = C1() c1.data = "c1data" @@ -3473,7 +3491,7 @@ class ViewOnlyLocalRemoteM2M(fixtures.TestBase): """test that local-remote is correctly determined for m2m""" - def test_local_remote(self): + def test_local_remote(self, registry): meta = MetaData() t1 = Table("t1", meta, Column("id", Integer, primary_key=True)) @@ -3491,8 +3509,8 @@ class ViewOnlyLocalRemoteM2M(fixtures.TestBase): class B(object): pass - mapper(B, t2) - m = mapper( + registry.map_imperatively(B, t2) + m = registry.map_imperatively( A, t1, properties=dict( @@ -3531,7 +3549,7 @@ class ViewOnlyNonEquijoin(fixtures.MappedTest): class Bar(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -3544,7 +3562,7 @@ class ViewOnlyNonEquijoin(fixtures.MappedTest): }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) with fixture_session() as sess: sess.add_all( @@ -3604,7 +3622,7 @@ class ViewOnlyRepeatedRemoteColumn(fixtures.MappedTest): class Bar(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -3618,7 +3636,7 @@ class ViewOnlyRepeatedRemoteColumn(fixtures.MappedTest): ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) sess = fixture_session() b1 = Bar(id=1, data="b1") @@ -3679,7 +3697,7 @@ class ViewOnlyRepeatedLocalColumn(fixtures.MappedTest): class Bar(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -3692,7 +3710,7 @@ class ViewOnlyRepeatedLocalColumn(fixtures.MappedTest): ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) sess = fixture_session() f1 = Foo(id=1, data="f1") @@ -3779,7 +3797,7 @@ class ViewOnlyComplexJoin(_RelationshipErrors, fixtures.MappedTest): self.tables.t1, ) - mapper( + self.mapper_registry.map_imperatively( T1, t1, properties={ @@ -3796,7 +3814,7 @@ class ViewOnlyComplexJoin(_RelationshipErrors, fixtures.MappedTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( T2, t2, properties={ @@ -3804,7 +3822,7 @@ class ViewOnlyComplexJoin(_RelationshipErrors, fixtures.MappedTest): "t3s": relationship(T3, secondary=t2tot3), }, ) - mapper(T3, t3) + self.mapper_registry.map_imperatively(T3, t3) sess = fixture_session() sess.add(T2(data="t2", t1=T1(data="t1"), t3s=[T3(data="t3")])) @@ -3825,7 +3843,7 @@ class ViewOnlyComplexJoin(_RelationshipErrors, fixtures.MappedTest): self.tables.t1, ) - mapper( + self.mapper_registry.map_imperatively( T1, t1, properties={ @@ -3841,7 +3859,7 @@ class ViewOnlyComplexJoin(_RelationshipErrors, fixtures.MappedTest): ) }, ) - mapper( + self.mapper_registry.map_imperatively( T2, t2, properties={ @@ -3849,7 +3867,7 @@ class ViewOnlyComplexJoin(_RelationshipErrors, fixtures.MappedTest): "t3s": relationship(T3, secondary=t2tot3), }, ) - mapper(T3, t3) + self.mapper_registry.map_imperatively(T3, t3) self._assert_raises_no_local_remote(configure_mappers, "T1.t3s") @@ -4033,7 +4051,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest): ) # old _local_remote_pairs - mapper( + self.mapper_registry.map_imperatively( T1, t1, properties={ @@ -4045,7 +4063,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest): ) }, ) - mapper(T2, t2) + self.mapper_registry.map_imperatively(T2, t2) self._test_onetomany() def test_onetomany_funcfk_annotated(self): @@ -4057,7 +4075,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest): ) # use annotation - mapper( + self.mapper_registry.map_imperatively( T1, t1, properties={ @@ -4067,7 +4085,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest): ) }, ) - mapper(T2, t2) + self.mapper_registry.map_imperatively(T2, t2) self._test_onetomany() def _test_onetomany(self): @@ -4109,8 +4127,8 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest): self.tables.t1, ) - mapper(T1, t1) - mapper( + self.mapper_registry.map_imperatively(T1, t1) + self.mapper_registry.map_imperatively( T2, t2, properties={ @@ -4150,7 +4168,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest): self.tables.t1, ) - mapper( + self.mapper_registry.map_imperatively( T1, t1, properties={ @@ -4162,7 +4180,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest): ) }, ) - mapper(T2, t2) + self.mapper_registry.map_imperatively(T2, t2) sess = fixture_session() a1 = T1(id="NuMbeR1", data="a1") @@ -4194,8 +4212,8 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest): self.tables.t1, ) - mapper(T1, t1) - mapper( + self.mapper_registry.map_imperatively(T1, t1) + self.mapper_registry.map_imperatively( T2, t2, properties={ @@ -4235,7 +4253,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest): self.tables.t1, ) - mapper( + self.mapper_registry.map_imperatively( T1, t1, properties={ @@ -4248,7 +4266,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest): ) }, ) - mapper(T2, t2) + self.mapper_registry.map_imperatively(T2, t2) assert_raises(sa.exc.ArgumentError, sa.orm.configure_mappers) def test_escalation_2(self): @@ -4259,7 +4277,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest): self.tables.t1, ) - mapper( + self.mapper_registry.map_imperatively( T1, t1, properties={ @@ -4270,7 +4288,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest): ) }, ) - mapper(T2, t2) + self.mapper_registry.map_imperatively(T2, t2) assert_raises(sa.exc.ArgumentError, sa.orm.configure_mappers) @@ -4293,7 +4311,9 @@ class InvalidRemoteSideTest(fixtures.MappedTest): def test_o2m_backref(self): T1, t1 = self.classes.T1, self.tables.t1 - mapper(T1, t1, properties={"t1s": relationship(T1, backref="parent")}) + self.mapper_registry.map_imperatively( + T1, t1, properties={"t1s": relationship(T1, backref="parent")} + ) assert_raises_message( sa.exc.ArgumentError, @@ -4306,7 +4326,7 @@ class InvalidRemoteSideTest(fixtures.MappedTest): def test_m2o_backref(self): T1, t1 = self.classes.T1, self.tables.t1 - mapper( + self.mapper_registry.map_imperatively( T1, t1, properties={ @@ -4329,7 +4349,7 @@ class InvalidRemoteSideTest(fixtures.MappedTest): def test_o2m_explicit(self): T1, t1 = self.classes.T1, self.tables.t1 - mapper( + self.mapper_registry.map_imperatively( T1, t1, properties={ @@ -4349,7 +4369,7 @@ class InvalidRemoteSideTest(fixtures.MappedTest): def test_m2o_explicit(self): T1, t1 = self.classes.T1, self.tables.t1 - mapper( + self.mapper_registry.map_imperatively( T1, t1, properties={ @@ -4403,17 +4423,19 @@ class AmbiguousFKResolutionTest(_RelationshipErrors, fixtures.MappedTest): def test_ambiguous_fks_o2m(self): A, B = self.classes.A, self.classes.B a, b = self.tables.a, self.tables.b - mapper(A, a, properties={"bs": relationship(B)}) - mapper(B, b) + self.mapper_registry.map_imperatively( + A, a, properties={"bs": relationship(B)} + ) + self.mapper_registry.map_imperatively(B, b) self._assert_raises_ambig_join(configure_mappers, "A.bs", None) def test_with_fks_o2m(self): A, B = self.classes.A, self.classes.B a, b = self.tables.a, self.tables.b - mapper( + self.mapper_registry.map_imperatively( A, a, properties={"bs": relationship(B, foreign_keys=b.c.aid_1)} ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) sa.orm.configure_mappers() assert A.bs.property.primaryjoin.compare(a.c.id == b.c.aid_1) eq_(A.bs.property._calculated_foreign_keys, set([b.c.aid_1])) @@ -4421,14 +4443,14 @@ class AmbiguousFKResolutionTest(_RelationshipErrors, fixtures.MappedTest): def test_with_pj_o2m(self): A, B = self.classes.A, self.classes.B a, b = self.tables.a, self.tables.b - mapper( + self.mapper_registry.map_imperatively( A, a, properties={ "bs": relationship(B, primaryjoin=a.c.id == b.c.aid_1) }, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) sa.orm.configure_mappers() assert A.bs.property.primaryjoin.compare(a.c.id == b.c.aid_1) eq_(A.bs.property._calculated_foreign_keys, set([b.c.aid_1])) @@ -4436,14 +4458,14 @@ class AmbiguousFKResolutionTest(_RelationshipErrors, fixtures.MappedTest): def test_with_annotated_pj_o2m(self): A, B = self.classes.A, self.classes.B a, b = self.tables.a, self.tables.b - mapper( + self.mapper_registry.map_imperatively( A, a, properties={ "bs": relationship(B, primaryjoin=a.c.id == foreign(b.c.aid_1)) }, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) sa.orm.configure_mappers() assert A.bs.property.primaryjoin.compare(a.c.id == b.c.aid_1) eq_(A.bs.property._calculated_foreign_keys, set([b.c.aid_1])) @@ -4451,15 +4473,19 @@ class AmbiguousFKResolutionTest(_RelationshipErrors, fixtures.MappedTest): def test_no_fks_m2m(self): A, B = self.classes.A, self.classes.B a, b, a_to_b = self.tables.a, self.tables.b, self.tables.atob - mapper(A, a, properties={"bs": relationship(B, secondary=a_to_b)}) - mapper(B, b) + self.mapper_registry.map_imperatively( + A, a, properties={"bs": relationship(B, secondary=a_to_b)} + ) + self.mapper_registry.map_imperatively(B, b) self._assert_raises_no_join(sa.orm.configure_mappers, "A.bs", a_to_b) def test_ambiguous_fks_m2m(self): A, B = self.classes.A, self.classes.B a, b, a_to_b = self.tables.a, self.tables.b, self.tables.atob_ambiguous - mapper(A, a, properties={"bs": relationship(B, secondary=a_to_b)}) - mapper(B, b) + self.mapper_registry.map_imperatively( + A, a, properties={"bs": relationship(B, secondary=a_to_b)} + ) + self.mapper_registry.map_imperatively(B, b) self._assert_raises_ambig_join( configure_mappers, "A.bs", "atob_ambiguous" @@ -4468,7 +4494,7 @@ class AmbiguousFKResolutionTest(_RelationshipErrors, fixtures.MappedTest): def test_with_fks_m2m(self): A, B = self.classes.A, self.classes.B a, b, a_to_b = self.tables.a, self.tables.b, self.tables.atob_ambiguous - mapper( + self.mapper_registry.map_imperatively( A, a, properties={ @@ -4479,7 +4505,7 @@ class AmbiguousFKResolutionTest(_RelationshipErrors, fixtures.MappedTest): ) }, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) sa.orm.configure_mappers() @@ -4600,7 +4626,7 @@ class SecondaryNestedJoinTest( j = sa.join(b, d, b.c.d_id == d.c.id).join(c, c.c.d_id == d.c.id) # j = join(b, d, b.c.d_id == d.c.id).join(c, c.c.d_id == d.c.id) \ # .alias() - mapper( + cls.mapper_registry.map_imperatively( A, a, properties={ @@ -4615,9 +4641,13 @@ class SecondaryNestedJoinTest( ), }, ) - mapper(B, b, properties={"d": relationship(D)}) - mapper(C, c, properties={"a": relationship(A), "d": relationship(D)}) - mapper(D, d) + cls.mapper_registry.map_imperatively( + B, b, properties={"d": relationship(D)} + ) + cls.mapper_registry.map_imperatively( + C, c, properties={"a": relationship(A), "d": relationship(D)} + ) + cls.mapper_registry.map_imperatively(D, d) @classmethod def insert_data(cls, connection): @@ -4774,8 +4804,10 @@ class InvalidRelationshipEscalationTest( self.tables.foos, ) - mapper(Foo, foos, properties={"bars": relationship(Bar)}) - mapper(Bar, bars) + self.mapper_registry.map_imperatively( + Foo, foos, properties={"bars": relationship(Bar)} + ) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_join(sa.orm.configure_mappers, "Foo.bars", None) @@ -4787,8 +4819,10 @@ class InvalidRelationshipEscalationTest( self.tables.foos, ) - mapper(Foo, foos, properties={"foos": relationship(Foo)}) - mapper(Bar, bars) + self.mapper_registry.map_imperatively( + Foo, foos, properties={"foos": relationship(Foo)} + ) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_join(configure_mappers, "Foo.foos", None) @@ -4800,14 +4834,14 @@ class InvalidRelationshipEscalationTest( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ "bars": relationship(Bar, primaryjoin=foos.c.id > bars.c.fid) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_relevant_fks( configure_mappers, "foos.id > bars.fid", "Foo.bars", "primary" @@ -4821,7 +4855,7 @@ class InvalidRelationshipEscalationTest( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -4832,7 +4866,7 @@ class InvalidRelationshipEscalationTest( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_equality( sa.orm.configure_mappers, "foos.id > bars.fid", @@ -4856,7 +4890,7 @@ class InvalidRelationshipEscalationTest( # in this case we don't get eq_pairs, but we hit the # "works if viewonly" rule. so here we add another clause regarding # "try foreign keys". - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -4869,7 +4903,7 @@ class InvalidRelationshipEscalationTest( ) }, ) - mapper(Bar, bars_with_fks) + self.mapper_registry.map_imperatively(Bar, bars_with_fks) self._assert_raises_no_equality( sa.orm.configure_mappers, @@ -4887,7 +4921,7 @@ class InvalidRelationshipEscalationTest( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -4898,7 +4932,7 @@ class InvalidRelationshipEscalationTest( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_ambiguous_direction( sa.orm.configure_mappers, "Foo.bars" @@ -4912,7 +4946,7 @@ class InvalidRelationshipEscalationTest( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -4925,7 +4959,7 @@ class InvalidRelationshipEscalationTest( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_local_remote(configure_mappers, "Foo.bars") @@ -4937,7 +4971,7 @@ class InvalidRelationshipEscalationTest( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -4950,7 +4984,7 @@ class InvalidRelationshipEscalationTest( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_local_remote(configure_mappers, "Foo.bars") @@ -4962,14 +4996,14 @@ class InvalidRelationshipEscalationTest( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ "foos": relationship(Foo, primaryjoin=foos.c.id > foos.c.fid) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_relevant_fks( configure_mappers, "foos.id > foos.fid", "Foo.foos", "primary" @@ -4983,7 +5017,7 @@ class InvalidRelationshipEscalationTest( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -4994,7 +5028,7 @@ class InvalidRelationshipEscalationTest( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_equality( configure_mappers, "foos.id > foos.fid", "Foo.foos", "primary" @@ -5010,7 +5044,7 @@ class InvalidRelationshipEscalationTest( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5019,7 +5053,7 @@ class InvalidRelationshipEscalationTest( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_relevant_fks( sa.orm.configure_mappers, @@ -5028,8 +5062,8 @@ class InvalidRelationshipEscalationTest( "primary", ) - sa.orm.clear_mappers() - mapper( + self.mapper_registry.dispose() + self.mapper_registry.map_imperatively( Foo, foos_with_fks, properties={ @@ -5040,7 +5074,7 @@ class InvalidRelationshipEscalationTest( ) }, ) - mapper(Bar, bars_with_fks) + self.mapper_registry.map_imperatively(Bar, bars_with_fks) sa.orm.configure_mappers() def test_no_equated_self_ref_viewonly(self): @@ -5053,7 +5087,7 @@ class InvalidRelationshipEscalationTest( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5062,7 +5096,7 @@ class InvalidRelationshipEscalationTest( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_relevant_fks( sa.orm.configure_mappers, @@ -5071,8 +5105,8 @@ class InvalidRelationshipEscalationTest( "primary", ) - sa.orm.clear_mappers() - mapper( + self.mapper_registry.dispose() + self.mapper_registry.map_imperatively( Foo, foos_with_fks, properties={ @@ -5083,13 +5117,13 @@ class InvalidRelationshipEscalationTest( ) }, ) - mapper(Bar, bars_with_fks) + self.mapper_registry.map_imperatively(Bar, bars_with_fks) sa.orm.configure_mappers() def test_no_equated_self_ref_viewonly_fks(self): Foo, foos = self.classes.Foo, self.tables.foos - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5115,21 +5149,22 @@ class InvalidRelationshipEscalationTest( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ "bars": relationship(Bar, primaryjoin=foos.c.id == bars.c.fid) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_relevant_fks( configure_mappers, "foos.id = bars.fid", "Foo.bars", "primary" ) - sa.orm.clear_mappers() - mapper( + self.mapper_registry.dispose() + + self.mapper_registry.map_imperatively( Foo, foos_with_fks, properties={ @@ -5138,13 +5173,13 @@ class InvalidRelationshipEscalationTest( ) }, ) - mapper(Bar, bars_with_fks) + self.mapper_registry.map_imperatively(Bar, bars_with_fks) sa.orm.configure_mappers() def test_equated_self_ref(self): Foo, foos = self.classes.Foo, self.tables.foos - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5163,7 +5198,7 @@ class InvalidRelationshipEscalationTest( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5226,12 +5261,12 @@ class InvalidRelationshipEscalationTestM2M( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={"bars": relationship(Bar, secondary=foobars)}, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_join(configure_mappers, "Foo.bars", "foobars") @@ -5244,7 +5279,7 @@ class InvalidRelationshipEscalationTestM2M( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5255,7 +5290,7 @@ class InvalidRelationshipEscalationTestM2M( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_join(configure_mappers, "Foo.bars", "foobars") @@ -5269,7 +5304,7 @@ class InvalidRelationshipEscalationTestM2M( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5281,7 +5316,7 @@ class InvalidRelationshipEscalationTestM2M( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) sa.orm.configure_mappers() eq_(Foo.bars.property.synchronize_pairs, [(foos.c.id, foobars.c.fid)]) eq_( @@ -5289,8 +5324,8 @@ class InvalidRelationshipEscalationTestM2M( [(bars.c.id, foobars.c.bid)], ) - sa.orm.clear_mappers() - mapper( + self.mapper_registry.dispose() + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5302,7 +5337,7 @@ class InvalidRelationshipEscalationTestM2M( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) sa.orm.configure_mappers() eq_( Foo.bars.property.synchronize_pairs, @@ -5324,7 +5359,7 @@ class InvalidRelationshipEscalationTestM2M( # ensure m2m backref is set up with correct annotations # [ticket:2578] - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5333,7 +5368,7 @@ class InvalidRelationshipEscalationTestM2M( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) sa.orm.configure_mappers() eq_(Foo.bars.property._join_condition.local_columns, set([foos.c.id])) eq_(Bar.foos.property._join_condition.local_columns, set([bars.c.id])) @@ -5348,7 +5383,7 @@ class InvalidRelationshipEscalationTestM2M( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5360,14 +5395,14 @@ class InvalidRelationshipEscalationTestM2M( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_equality( configure_mappers, "foos.id > foobars.fid", "Foo.bars", "primary" ) - sa.orm.clear_mappers() - mapper( + self.mapper_registry.dispose() + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5379,7 +5414,7 @@ class InvalidRelationshipEscalationTestM2M( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_equality( configure_mappers, "foos.id > foobars_with_fks.fid", @@ -5387,8 +5422,8 @@ class InvalidRelationshipEscalationTestM2M( "primary", ) - sa.orm.clear_mappers() - mapper( + self.mapper_registry.dispose() + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5401,7 +5436,7 @@ class InvalidRelationshipEscalationTestM2M( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) sa.orm.configure_mappers() def test_bad_secondaryjoin(self): @@ -5413,7 +5448,7 @@ class InvalidRelationshipEscalationTestM2M( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5426,7 +5461,7 @@ class InvalidRelationshipEscalationTestM2M( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_relevant_fks( configure_mappers, "foobars.bid <= bars.id", @@ -5443,7 +5478,7 @@ class InvalidRelationshipEscalationTestM2M( self.tables.foos, ) - mapper( + self.mapper_registry.map_imperatively( Foo, foos, properties={ @@ -5456,7 +5491,7 @@ class InvalidRelationshipEscalationTestM2M( ) }, ) - mapper(Bar, bars) + self.mapper_registry.map_imperatively(Bar, bars) self._assert_raises_no_equality( configure_mappers, @@ -5487,7 +5522,7 @@ class ActiveHistoryFlagTest(_fixtures.FixtureTest): def test_column_property_flag(self): User, users = self.classes.User, self.tables.users - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -5505,12 +5540,12 @@ class ActiveHistoryFlagTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={"user": relationship(User, active_history=True)}, ) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u1 = User(name="jack") u2 = User(name="ed") a1 = Address(email_address="a1", user=u1) @@ -5533,7 +5568,7 @@ class ActiveHistoryFlagTest(_fixtures.FixtureTest): and other.description == self.description ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -5869,14 +5904,14 @@ class InactiveHistoryNoRaiseTest(_fixtures.FixtureTest): opts["lazy"] = "raise" opts["_legacy_inactive_history_style"] = legacy_inactive_history_style - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ "user": relationship(User, back_populates="addresses", **opts) }, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -5978,8 +6013,8 @@ class RaiseLoadTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict(addresses=relationship(Address, lazy="raise")), @@ -6008,8 +6043,10 @@ class RaiseLoadTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(Address, addresses) - mapper(User, users, properties=dict(addresses=relationship(Address))) + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties=dict(addresses=relationship(Address)) + ) q = fixture_session().query(User) result = [None] @@ -6038,8 +6075,8 @@ class RaiseLoadTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict(addresses=relationship(Address, lazy="raise")), @@ -6065,8 +6102,10 @@ class RaiseLoadTest(_fixtures.FixtureTest): self.tables.users, self.classes.User, ) - mapper(Address, addresses, properties={"user": relationship(User)}) - mapper(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) + self.mapper_registry.map_imperatively(User, users) s = fixture_session() a1 = ( s.query(Address) @@ -6091,8 +6130,10 @@ class RaiseLoadTest(_fixtures.FixtureTest): self.tables.users, self.classes.User, ) - mapper(Address, addresses, properties={"user": relationship(User)}) - mapper(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) + self.mapper_registry.map_imperatively(User, users) s = fixture_session() a1 = ( s.query(Address) @@ -6129,7 +6170,7 @@ class RaiseLoadTest(_fixtures.FixtureTest): self.tables.users, self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties={ @@ -6142,7 +6183,7 @@ class RaiseLoadTest(_fixtures.FixtureTest): ) }, ) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session() u1 = s.query(User).first() # noqa a1 = ( @@ -6167,8 +6208,8 @@ class RaiseLoadTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict(addresses=relationship(Address, backref="user")), @@ -6205,8 +6246,8 @@ class RaiseLoadTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict(addresses=relationship(Address, backref="user")), @@ -6302,12 +6343,12 @@ class RelationDeprecationTest(fixtures.MappedTest): self.classes.Address, ) - mapper( + self.mapper_registry.map_imperatively( User, users_table, properties=dict(addresses=relationship(Address, backref="user")), ) - mapper(Address, addresses_table) + self.mapper_registry.map_imperatively(Address, addresses_table) session = fixture_session() @@ -6347,7 +6388,7 @@ class SecondaryIncludesLocalColsTest(fixtures.MappedTest): .alias() ) - mapper( + cls.mapper_registry.map_imperatively( A, a, properties=dict( @@ -6359,7 +6400,7 @@ class SecondaryIncludesLocalColsTest(fixtures.MappedTest): ) ), ) - mapper(B, b) + cls.mapper_registry.map_imperatively(B, b) @classmethod def insert_data(cls, connection): diff --git a/test/orm/test_scoping.py b/test/orm/test_scoping.py index 9604adc6c5..5c9888b304 100644 --- a/test/orm/test_scoping.py +++ b/test/orm/test_scoping.py @@ -3,7 +3,6 @@ from sqlalchemy import ForeignKey from sqlalchemy import Integer from sqlalchemy import String from sqlalchemy import testing -from sqlalchemy.orm import mapper from sqlalchemy.orm import query from sqlalchemy.orm import relationship from sqlalchemy.orm import scoped_session @@ -54,12 +53,12 @@ class ScopedSessionTest(fixtures.MappedTest): query = Session.query_property() custom_query = Session.query_property(query_cls=CustomQuery) - mapper( + self.mapper_registry.map_imperatively( SomeObject, table1, properties={"options": relationship(SomeOtherObject)}, ) - mapper(SomeOtherObject, table2) + self.mapper_registry.map_imperatively(SomeOtherObject, table2) s = SomeObject(id=1, data="hello") sso = SomeOtherObject() diff --git a/test/orm/test_selectable.py b/test/orm/test_selectable.py index c22391b447..3a7029110e 100644 --- a/test/orm/test_selectable.py +++ b/test/orm/test_selectable.py @@ -5,7 +5,6 @@ from sqlalchemy import Integer from sqlalchemy import select from sqlalchemy import String from sqlalchemy import testing -from sqlalchemy.orm import mapper from sqlalchemy.orm import Session from sqlalchemy.testing import assert_raises from sqlalchemy.testing import assert_raises_message @@ -42,7 +41,9 @@ class SelectableNoFromsTest(fixtures.MappedTest, AssertsCompiledSQL): Subset = self.classes.Subset selectable = select(column("x"), column("y"), column("z")).alias() - mapper(Subset, selectable, primary_key=[selectable.c.x]) + self.mapper_registry.map_imperatively( + Subset, selectable, primary_key=[selectable.c.x] + ) self.assert_compile( fixture_session().query(Subset), @@ -58,7 +59,7 @@ class SelectableNoFromsTest(fixtures.MappedTest, AssertsCompiledSQL): assert_raises_message( sa.exc.ArgumentError, "could not assemble any primary key columns", - mapper, + self.mapper_registry.map_imperatively, Subset, selectable, ) @@ -67,13 +68,18 @@ class SelectableNoFromsTest(fixtures.MappedTest, AssertsCompiledSQL): Subset, common = self.classes.Subset, self.tables.common subset_select = select(common.c.id, common.c.data) - assert_raises(sa.exc.ArgumentError, mapper, Subset, subset_select) + assert_raises( + sa.exc.ArgumentError, + self.mapper_registry.map_imperatively, + Subset, + subset_select, + ) def test_basic(self): Subset, common = self.classes.Subset, self.tables.common subset_select = select(common.c.id, common.c.data).alias() - mapper(Subset, subset_select) + self.mapper_registry.map_imperatively(Subset, subset_select) sess = Session(bind=testing.db) sess.add(Subset(data=1)) sess.flush() diff --git a/test/orm/test_selectin_relations.py b/test/orm/test_selectin_relations.py index 4dbd269996..ceaead9c43 100644 --- a/test/orm/test_selectin_relations.py +++ b/test/orm/test_selectin_relations.py @@ -12,7 +12,6 @@ from sqlalchemy.orm import defaultload from sqlalchemy.orm import defer from sqlalchemy.orm import deferred from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import selectinload from sqlalchemy.orm import Session @@ -56,12 +55,13 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), order_by=Address.id + self.mapper_registry.map_imperatively(Address, addresses), + order_by=Address.id, ) }, ) @@ -99,15 +99,15 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.addresses, ) - mapper(Dingaling, dingalings) - mapper( + self.mapper_registry.map_imperatively(Dingaling, dingalings) + self.mapper_registry.map_imperatively( Address, addresses, properties={ "dingalings": relationship(Dingaling, order_by=Dingaling.id) }, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -209,12 +209,13 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), order_by=Address.id + self.mapper_registry.map_imperatively(Address, addresses), + order_by=Address.id, ) }, ) @@ -241,12 +242,13 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), order_by=Address.id + self.mapper_registry.map_imperatively(Address, addresses), + order_by=Address.id, ) }, ) @@ -275,12 +277,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, lazy="dynamic")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() # previously this would not raise, but would emit @@ -301,8 +303,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Item, ) - mapper(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively(Keyword, keywords) + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -331,8 +333,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Item, ) - mapper(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively(Keyword, keywords) + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -364,8 +366,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Item, ) - mapper(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively(Keyword, keywords) + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -397,12 +399,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="selectin", order_by=addresses.c.email_address, ) @@ -434,12 +436,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="selectin", order_by=[addresses.c.email_address, addresses.c.id], ) @@ -474,8 +476,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -516,8 +518,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -587,14 +589,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.item_keywords, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "orders": relationship(Order, order_by=orders.c.id) # o2m, m2o }, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -603,7 +605,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) # m2m }, ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties={ @@ -612,7 +614,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) # m2m }, ) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) callables = { "joinedload": joinedload, @@ -671,7 +673,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): } for o, i, k, count in configs: - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -680,7 +682,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -692,7 +694,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties={ @@ -704,7 +706,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) try: self._do_query_tests([], count) @@ -754,8 +756,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -789,8 +791,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -841,8 +843,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.order_items, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -854,7 +856,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) open_mapper = aliased( Order, select(orders).where(orders.c.isopen == 1).alias() @@ -863,7 +865,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): Order, select(orders).where(orders.c.isopen == 0).alias() ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -911,8 +913,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.order_items, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -924,12 +926,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) open_mapper = aliased(Order, orders) closed_mapper = aliased(Order, orders) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -987,8 +989,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.users, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -1000,8 +1002,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Item, items) - mapper( + self.mapper_registry.map_imperatively(Item, items) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -1095,12 +1097,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): elif type_ == "subquery": target = select(users).subquery() - mapper( + self.mapper_registry.map_imperatively( User, target, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() @@ -1136,8 +1138,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.addresses, ) - mapper(Item, items) - mapper( + self.mapper_registry.map_imperatively(Item, items) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -1149,12 +1151,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="selectin", order_by=addresses.c.id, ), @@ -1181,12 +1183,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( address=relationship( - mapper(Address, addresses), lazy="selectin", uselist=False + self.mapper_registry.map_imperatively(Address, addresses), + lazy="selectin", + uselist=False, ) ), ) @@ -1206,12 +1210,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( address=relationship( - mapper(Address, addresses), lazy="selectin", uselist=False + self.mapper_registry.map_imperatively(Address, addresses), + lazy="selectin", + uselist=False, ) ), ) @@ -1231,11 +1237,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties=dict( - user=relationship(mapper(User, users), lazy="selectin") + user=relationship( + self.mapper_registry.map_imperatively(User, users), + lazy="selectin", + ) ), ) sess = fixture_session() @@ -1257,12 +1266,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Address, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"address": relationship(Address, lazy="selectin")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) q = sess.query(Order).filter(Order.id.in_([4, 5])).order_by(Order.id) @@ -1291,14 +1300,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Address, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ "address": relationship(Address, lazy="selectin", uselist=True) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() q = sess.query(Order).filter(Order.id.in_([4, 5])).order_by(Order.id) @@ -1315,12 +1324,13 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), lazy="selectin" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="selectin", ) ), ) @@ -1350,8 +1360,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): .alias("max_orders") ) - mapper(Order, orders) - mapper( + self.mapper_registry.map_imperatively(Order, orders) + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1401,12 +1411,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Order, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"order": relationship(Order, uselist=False)}, ) - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) s = fixture_session() assert_raises( sa.exc.SAWarning, @@ -1426,17 +1436,19 @@ class LoadOnExistingTest(_fixtures.FixtureTest): self.classes.Address, self.classes.Dingaling, ) - mapper( + self.mapper_registry.map_imperatively( User, self.tables.users, properties={"addresses": relationship(Address)}, ) - mapper( + self.mapper_registry.map_imperatively( Address, self.tables.addresses, properties={"dingaling": relationship(Dingaling)}, ) - mapper(Dingaling, self.tables.dingalings) + self.mapper_registry.map_imperatively( + Dingaling, self.tables.dingalings + ) sess = fixture_session(autoflush=False) return User, Address, Dingaling, sess @@ -1447,35 +1459,35 @@ class LoadOnExistingTest(_fixtures.FixtureTest): self.classes.Order, self.classes.Item, ) - mapper( + self.mapper_registry.map_imperatively( User, self.tables.users, properties={"orders": relationship(Order)} ) - mapper( + self.mapper_registry.map_imperatively( Order, self.tables.orders, properties={ "items": relationship(Item, secondary=self.tables.order_items) }, ) - mapper(Item, self.tables.items) + self.mapper_registry.map_imperatively(Item, self.tables.items) sess = fixture_session(autoflush=False) return User, Order, Item, sess def _eager_config_fixture(self, default_lazy="selectin"): User, Address = self.classes.User, self.classes.Address - mapper( + self.mapper_registry.map_imperatively( User, self.tables.users, properties={"addresses": relationship(Address, lazy=default_lazy)}, ) - mapper(Address, self.tables.addresses) + self.mapper_registry.map_imperatively(Address, self.tables.addresses) sess = fixture_session(autoflush=False) return User, Address, sess def _deferred_config_fixture(self): User, Address = self.classes.User, self.classes.Address - mapper( + self.mapper_registry.map_imperatively( User, self.tables.users, properties={ @@ -1483,7 +1495,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): "addresses": relationship(Address, lazy="selectin"), }, ) - mapper(Address, self.tables.addresses) + self.mapper_registry.map_imperatively(Address, self.tables.addresses) sess = fixture_session(autoflush=False) return User, Address, sess @@ -1670,7 +1682,7 @@ class OrderBySecondaryTest(fixtures.MappedTest): class B(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( A, a, properties={ @@ -1679,7 +1691,7 @@ class OrderBySecondaryTest(fixtures.MappedTest): ) }, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) sess = fixture_session() @@ -1758,7 +1770,7 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic): engineers = cls.tables.engineers paperwork = cls.tables.paperwork - mapper( + cls.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c.type, @@ -1770,14 +1782,14 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic): }, ) - mapper( + cls.mapper_registry.map_imperatively( Engineer, engineers, inherits=Person, polymorphic_identity="engineer", ) - mapper(Paperwork, paperwork) + cls.mapper_registry.map_imperatively(Paperwork, paperwork) @classmethod def insert_data(cls, connection): @@ -2522,14 +2534,14 @@ class SubRelationFromJoinedSubclassMultiLevelTest(_Polymorphic): machines = cls.tables.machines machine_type = cls.tables.machine_type - mapper( + cls.mapper_registry.map_imperatively( Company, companies, properties={ "employees": relationship(Person, order_by=people.c.person_id) }, ) - mapper( + cls.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c.type, @@ -2537,7 +2549,7 @@ class SubRelationFromJoinedSubclassMultiLevelTest(_Polymorphic): with_polymorphic="*", ) - mapper( + cls.mapper_registry.map_imperatively( Engineer, engineers, inherits=Person, @@ -2549,10 +2561,10 @@ class SubRelationFromJoinedSubclassMultiLevelTest(_Polymorphic): }, ) - mapper( + cls.mapper_registry.map_imperatively( Machine, machines, properties={"type": relationship(MachineType)} ) - mapper(MachineType, machine_type) + cls.mapper_registry.map_imperatively(MachineType, machine_type) @classmethod def insert_data(cls, connection): @@ -2618,7 +2630,7 @@ class SelfReferentialTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -2694,7 +2706,7 @@ class SelfReferentialTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -2740,7 +2752,7 @@ class SelfReferentialTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -2798,7 +2810,7 @@ class SelfReferentialTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={"children": relationship(Node, order_by=nodes.c.id)}, @@ -2853,7 +2865,7 @@ class SelfReferentialTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={"children": relationship(Node, lazy="selectin")}, diff --git a/test/orm/test_session.py b/test/orm/test_session.py index b8997015f5..efe10f4ccf 100644 --- a/test/orm/test_session.py +++ b/test/orm/test_session.py @@ -17,7 +17,6 @@ from sqlalchemy.orm import exc as orm_exc from sqlalchemy.orm import joinedload from sqlalchemy.orm import make_transient from sqlalchemy.orm import make_transient_to_detached -from sqlalchemy.orm import mapper from sqlalchemy.orm import object_session from sqlalchemy.orm import relationship from sqlalchemy.orm import Session @@ -95,7 +94,7 @@ class TransScopingTest(_fixtures.FixtureTest): c = testing.db.connect() c.exec_driver_sql("select * from users") - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = Session(bind=c) s.add(User(name="first")) s.flush() @@ -109,7 +108,7 @@ class TransScopingTest(_fixtures.FixtureTest): c = testing.db.connect() c.exec_driver_sql("select * from users") - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = Session(bind=c) s.add(User(name="first")) s.flush() @@ -145,7 +144,7 @@ class TransScopingTest(_fixtures.FixtureTest): # test the new autobegin behavior introduced in #5074 User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = Session(testing.db) @@ -168,7 +167,7 @@ class TransScopingTest(_fixtures.FixtureTest): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s.add(User(name="u1")) s.commit() @@ -200,7 +199,7 @@ class TransScopingTest(_fixtures.FixtureTest): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u1 = User(name="u1") s.add(u1) @@ -244,7 +243,7 @@ class TransScopingTest(_fixtures.FixtureTest): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = Session( testing.db, @@ -310,7 +309,7 @@ class TransScopingTest(_fixtures.FixtureTest): def test_transaction(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) conn1 = testing.db.connect() conn2 = testing.db.connect() @@ -344,7 +343,7 @@ class SessionUtilTest(_fixtures.FixtureTest): def test_close_all_sessions(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s1 = fixture_session() u1 = User() @@ -365,7 +364,7 @@ class SessionUtilTest(_fixtures.FixtureTest): def test_session_close_all_deprecated(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s1 = fixture_session() u1 = User() @@ -398,7 +397,7 @@ class SessionUtilTest(_fixtures.FixtureTest): def test_make_transient(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autoflush=False) sess.add(User(name="test")) sess.flush() @@ -446,7 +445,7 @@ class SessionUtilTest(_fixtures.FixtureTest): # test for [ticket:2182] users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(name="test") sess.add(u1) @@ -461,7 +460,7 @@ class SessionUtilTest(_fixtures.FixtureTest): def test_make_transient_to_detached(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(id=1, name="test") sess.add(u1) @@ -477,7 +476,7 @@ class SessionUtilTest(_fixtures.FixtureTest): def test_make_transient_to_detached_no_session_allowed(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(id=1, name="test") sess.add(u1) @@ -491,7 +490,7 @@ class SessionUtilTest(_fixtures.FixtureTest): def test_make_transient_to_detached_no_key_allowed(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(id=1, name="test") sess.add(u1) @@ -537,7 +536,7 @@ class SessionStateTest(_fixtures.FixtureTest): User, users = self.classes.User, self.tables.users bind = testing.db - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) conn1 = bind.connect() conn2 = bind.connect() @@ -562,7 +561,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_with_no_autoflush(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u = User() @@ -592,8 +591,10 @@ class SessionStateTest(_fixtures.FixtureTest): def test_autoflush_exception_addition(self): User, users = self.classes.User, self.tables.users Address, addresses = self.classes.Address, self.tables.addresses - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) s = Session(testing.db) @@ -615,7 +616,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_deleted_flag(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -646,7 +647,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_deleted_adds_to_imap_unconditionally(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(name="u1") @@ -680,7 +681,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_autoflush_unbound(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with fixture_session(autocommit=False, autoflush=True) as sess: u = User() u.name = "ed" @@ -719,7 +720,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_autoflush_2(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) conn1 = testing.db.connect() sess = Session(bind=conn1, autocommit=False, autoflush=True) u = User() @@ -740,7 +741,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_autocommit_doesnt_raise_on_pending(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) session = Session(testing.db, autocommit=True) session.add(User(name="ed")) @@ -798,14 +799,14 @@ class SessionStateTest(_fixtures.FixtureTest): ) s = fixture_session() - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship(Address, cascade="all, delete") }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) user = User(name="u1") @@ -864,7 +865,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_already_attached(self): User = self.classes.User users = self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s1 = fixture_session() s2 = fixture_session() @@ -885,7 +886,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_identity_conflict(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with fixture_session() as s: s.execute(users.delete()) @@ -912,12 +913,12 @@ class SessionStateTest(_fixtures.FixtureTest): users, User = self.tables.users, self.classes.User addresses, Address = self.tables.addresses, self.classes.Address - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) session = fixture_session() @@ -949,7 +950,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_pickled_update(self): users, User = self.tables.users, pickleable.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess1 = fixture_session() sess2 = fixture_session() u1 = User(name="u1") @@ -966,7 +967,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_duplicate_update(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) Session = sessionmaker() sess = fixture_session() @@ -1025,8 +1026,8 @@ class SessionStateTest(_fixtures.FixtureTest): sess.add(self) Foo.__init__(self) - mapper(Foo, users) - mapper(Bar, users) + self.mapper_registry.map_imperatively(Foo, users) + self.mapper_registry.map_imperatively(Bar, users) b = Bar() assert b in sess @@ -1035,7 +1036,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_identity_map_mutate(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -1053,7 +1054,7 @@ class SessionStateTest(_fixtures.FixtureTest): def _test_extra_dirty_state(self): users, User = self.tables.users, self.classes.User - m = mapper(User, users) + m = self.mapper_registry.map_imperatively(User, users) s = fixture_session() @@ -1098,7 +1099,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_deleted_auto_expunged(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() sess.add(User(name="x")) sess.commit() @@ -1119,7 +1120,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_explicit_expunge_pending(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(name="x") sess.add(u1) @@ -1138,7 +1139,7 @@ class SessionStateTest(_fixtures.FixtureTest): def test_explicit_expunge_deleted(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() sess.add(User(name="x")) sess.commit() @@ -1176,12 +1177,12 @@ class DeferredRelationshipExpressionTest(_fixtures.FixtureTest): cls.classes.User, ) - mapper( + cls.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + cls.mapper_registry.map_imperatively(Address, addresses) def test_deferred_expression_unflushed(self): """test that an expression which is dependent on object state is @@ -1352,8 +1353,10 @@ class SessionStateWFixtureTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(Address, addresses) - mapper(User, users, properties={"addresses": relationship(Address)}) + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) sess = fixture_session(autocommit=False, autoflush=True) u = sess.query(User).get(8) @@ -1379,8 +1382,8 @@ class SessionStateWFixtureTest(_fixtures.FixtureTest): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1418,7 +1421,9 @@ class NoCyclesOnTransientDetachedTest(_fixtures.FixtureTest): run_inserts = None def setup_test(self): - mapper(self.classes.User, self.tables.users) + self.mapper_registry.map_imperatively( + self.classes.User, self.tables.users + ) def _assert_modified(self, u1): assert sa.orm.attributes.instance_state(u1).modified @@ -1569,7 +1574,7 @@ class WeakIdentityMapTest(_fixtures.FixtureTest): users, User = self.tables.users, self.classes.User s = fixture_session() - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s.add(User(name="ed")) s.flush() @@ -1601,7 +1606,7 @@ class WeakIdentityMapTest(_fixtures.FixtureTest): users, User = self.tables.users, pickleable.User s = fixture_session() - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s.add(User(name="ed")) s.flush() @@ -1638,12 +1643,12 @@ class WeakIdentityMapTest(_fixtures.FixtureTest): ) s = fixture_session() - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) s.add(User(name="ed", addresses=[Address(email_address="ed1")])) s.commit() @@ -1676,14 +1681,14 @@ class WeakIdentityMapTest(_fixtures.FixtureTest): ) s = fixture_session() - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "address": relationship(Address, backref="user", uselist=False) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) s.add(User(name="ed", address=Address(email_address="ed1"))) s.commit() @@ -1710,7 +1715,7 @@ class WeakIdentityMapTest(_fixtures.FixtureTest): def test_auto_detach_on_gc_session(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = Session(testing.db) @@ -1741,7 +1746,7 @@ class WeakIdentityMapTest(_fixtures.FixtureTest): # test issue #4068 users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -1773,8 +1778,10 @@ class IsModifiedTest(_fixtures.FixtureTest): def _default_mapping_fixture(self): User, Address = self.classes.User, self.classes.Address users, addresses = self.tables.users, self.tables.addresses - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) return User, Address def test_is_modified(self): @@ -1840,7 +1847,9 @@ class IsModifiedTest(_fixtures.FixtureTest): s = fixture_session() - mapper(User, users, properties={"uname": sa.orm.synonym("name")}) + self.mapper_registry.map_imperatively( + User, users, properties={"uname": sa.orm.synonym("name")} + ) u = User(uname="fred") assert s.is_modified(u) s.add(u) @@ -1865,12 +1874,12 @@ class DisposedStates(fixtures.MappedTest): ) @classmethod - def setup_classes(cls): + def setup_mappers(cls): class T(cls.Basic): def __init__(self, data): self.data = data - mapper(T, cls.tables.t1) + cls.mapper_registry.map_imperatively(T, cls.tables.t1) def teardown_test(self): from sqlalchemy.orm.session import _sessions @@ -1947,7 +1956,7 @@ class DisposedStates(fixtures.MappedTest): sess.rollback() -class SessionInterface(fixtures.TestBase): +class SessionInterface(fixtures.MappedTest): """Bogus args to Session methods produce actionable exceptions.""" _class_methods = set( @@ -1977,7 +1986,8 @@ class SessionInterface(fixtures.TestBase): return ok def _map_it(self, cls): - return mapper( + self.mapper_registry.dispose() + return self.mapper_registry.map_imperatively( cls, Table( "t", @@ -2202,12 +2212,12 @@ class FlushWarningsTest(fixtures.MappedTest): def setup_mappers(cls): user, User = cls.tables.user, cls.classes.User address, Address = cls.tables.address, cls.classes.Address - mapper( + cls.mapper_registry.map_imperatively( User, user, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, address) + cls.mapper_registry.map_imperatively(Address, address) def test_o2m_cascade_add(self): Address = self.classes.Address diff --git a/test/orm/test_subquery_relations.py b/test/orm/test_subquery_relations.py index dc52f562a9..70d8d19bd5 100644 --- a/test/orm/test_subquery_relations.py +++ b/test/orm/test_subquery_relations.py @@ -13,7 +13,6 @@ from sqlalchemy.orm import close_all_sessions from sqlalchemy.orm import defer from sqlalchemy.orm import deferred from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import selectinload from sqlalchemy.orm import Session @@ -55,12 +54,13 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), order_by=Address.id + self.mapper_registry.map_imperatively(Address, addresses), + order_by=Address.id, ) }, ) @@ -96,12 +96,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="subquery", order_by=Address.id, ) @@ -136,15 +136,15 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.addresses, ) - mapper(Dingaling, dingalings) - mapper( + self.mapper_registry.map_imperatively(Dingaling, dingalings) + self.mapper_registry.map_imperatively( Address, addresses, properties={ "dingalings": relationship(Dingaling, order_by=Dingaling.id) }, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -300,12 +300,13 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), order_by=Address.id + self.mapper_registry.map_imperatively(Address, addresses), + order_by=Address.id, ) }, ) @@ -332,12 +333,13 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), order_by=Address.id + self.mapper_registry.map_imperatively(Address, addresses), + order_by=Address.id, ) }, ) @@ -366,12 +368,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, lazy="dynamic")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() # previously this would not raise, but would emit @@ -392,8 +394,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Item, ) - mapper(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively(Keyword, keywords) + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -422,8 +424,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Item, ) - mapper(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively(Keyword, keywords) + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -455,8 +457,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Item, ) - mapper(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively(Keyword, keywords) + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -488,12 +490,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="subquery", order_by=addresses.c.email_address, ) @@ -525,12 +527,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="subquery", order_by=[addresses.c.email_address, addresses.c.id], ) @@ -565,8 +567,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -607,8 +609,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -678,14 +680,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.item_keywords, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "orders": relationship(Order, order_by=orders.c.id) # o2m, m2o }, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -694,7 +696,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) # m2m }, ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties={ @@ -703,7 +705,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) # m2m }, ) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) callables = {"joinedload": joinedload, "subqueryload": subqueryload} @@ -752,7 +754,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): } for o, i, k, count in configs: - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -761,7 +763,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -773,7 +775,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties={ @@ -785,7 +787,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) try: self._do_query_tests([], count) @@ -835,8 +837,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -870,8 +872,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -906,8 +908,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties=dict(addresses=relationship(Address, lazy="subquery")), @@ -945,8 +947,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.order_items, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -958,7 +960,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) open_mapper = aliased( Order, select(orders).where(orders.c.isopen == 1).alias() @@ -967,7 +969,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): Order, select(orders).where(orders.c.isopen == 0).alias() ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -1009,8 +1011,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.order_items, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -1022,12 +1024,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Item, items) + self.mapper_registry.map_imperatively(Item, items) open_mapper = aliased(Order, orders) closed_mapper = aliased(Order, orders) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -1085,8 +1087,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.users, ) - mapper(Address, addresses) - mapper( + self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -1098,8 +1100,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper(Item, items) - mapper( + self.mapper_registry.map_imperatively(Item, items) + self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -1192,12 +1194,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): elif type_ == "subquery": target = select(users).subquery() - mapper( + self.mapper_registry.map_imperatively( User, target, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() @@ -1233,8 +1235,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.tables.addresses, ) - mapper(Item, items) - mapper( + self.mapper_registry.map_imperatively(Item, items) + self.mapper_registry.map_imperatively( Order, orders, properties={ @@ -1246,12 +1248,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) }, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="subquery", order_by=addresses.c.id, ), @@ -1279,12 +1281,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ "addresses": relationship( - mapper(Address, addresses), + self.mapper_registry.map_imperatively(Address, addresses), lazy="subquery", order_by=addresses.c.email_address, ) @@ -1317,12 +1319,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( address=relationship( - mapper(Address, addresses), lazy="subquery", uselist=False + self.mapper_registry.map_imperatively(Address, addresses), + lazy="subquery", + uselist=False, ) ), ) @@ -1342,11 +1346,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties=dict( - user=relationship(mapper(User, users), lazy="subquery") + user=relationship( + self.mapper_registry.map_imperatively(User, users), + lazy="subquery", + ) ), ) sess = fixture_session() @@ -1380,8 +1387,8 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): .alias("max_orders") ) - mapper(Order, orders) - mapper( + self.mapper_registry.map_imperatively(Order, orders) + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1431,12 +1438,12 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.classes.Order, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"order": relationship(Order, uselist=False)}, ) - mapper(Order, orders) + self.mapper_registry.map_imperatively(Order, orders) s = fixture_session() assert_raises( sa.exc.SAWarning, @@ -1456,17 +1463,19 @@ class LoadOnExistingTest(_fixtures.FixtureTest): self.classes.Address, self.classes.Dingaling, ) - mapper( + self.mapper_registry.map_imperatively( User, self.tables.users, properties={"addresses": relationship(Address)}, ) - mapper( + self.mapper_registry.map_imperatively( Address, self.tables.addresses, properties={"dingaling": relationship(Dingaling)}, ) - mapper(Dingaling, self.tables.dingalings) + self.mapper_registry.map_imperatively( + Dingaling, self.tables.dingalings + ) sess = fixture_session(autoflush=False) return User, Address, Dingaling, sess @@ -1477,35 +1486,35 @@ class LoadOnExistingTest(_fixtures.FixtureTest): self.classes.Order, self.classes.Item, ) - mapper( + self.mapper_registry.map_imperatively( User, self.tables.users, properties={"orders": relationship(Order)} ) - mapper( + self.mapper_registry.map_imperatively( Order, self.tables.orders, properties={ "items": relationship(Item, secondary=self.tables.order_items) }, ) - mapper(Item, self.tables.items) + self.mapper_registry.map_imperatively(Item, self.tables.items) sess = fixture_session(autoflush=False) return User, Order, Item, sess def _eager_config_fixture(self, default_lazy="subquery"): User, Address = self.classes.User, self.classes.Address - mapper( + self.mapper_registry.map_imperatively( User, self.tables.users, properties={"addresses": relationship(Address, lazy=default_lazy)}, ) - mapper(Address, self.tables.addresses) + self.mapper_registry.map_imperatively(Address, self.tables.addresses) sess = fixture_session(autoflush=False) return User, Address, sess def _deferred_config_fixture(self): User, Address = self.classes.User, self.classes.Address - mapper( + self.mapper_registry.map_imperatively( User, self.tables.users, properties={ @@ -1513,7 +1522,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): "addresses": relationship(Address, lazy="subquery"), }, ) - mapper(Address, self.tables.addresses) + self.mapper_registry.map_imperatively(Address, self.tables.addresses) sess = fixture_session(autoflush=False) return User, Address, sess @@ -1700,7 +1709,7 @@ class OrderBySecondaryTest(fixtures.MappedTest): class B(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( A, a, properties={ @@ -1709,7 +1718,7 @@ class OrderBySecondaryTest(fixtures.MappedTest): ) }, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) sess = fixture_session() @@ -1791,7 +1800,7 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic): paperwork = cls.tables.paperwork pages = cls.tables.pages - mapper( + cls.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c.type, @@ -1803,20 +1812,20 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic): }, ) - mapper( + cls.mapper_registry.map_imperatively( Engineer, engineers, inherits=Person, polymorphic_identity="engineer", ) - mapper( + cls.mapper_registry.map_imperatively( Paperwork, paperwork, properties={"pages": relationship(Page, order_by=pages.c.page_id)}, ) - mapper(Page, pages) + cls.mapper_registry.map_imperatively(Page, pages) @classmethod def insert_data(cls, connection): @@ -2277,14 +2286,14 @@ class SubRelationFromJoinedSubclassMultiLevelTest(_Polymorphic): machines = cls.tables.machines machine_type = cls.tables.machine_type - mapper( + cls.mapper_registry.map_imperatively( Company, companies, properties={ "employees": relationship(Person, order_by=people.c.person_id) }, ) - mapper( + cls.mapper_registry.map_imperatively( Person, people, polymorphic_on=people.c.type, @@ -2292,7 +2301,7 @@ class SubRelationFromJoinedSubclassMultiLevelTest(_Polymorphic): with_polymorphic="*", ) - mapper( + cls.mapper_registry.map_imperatively( Engineer, engineers, inherits=Person, @@ -2304,10 +2313,10 @@ class SubRelationFromJoinedSubclassMultiLevelTest(_Polymorphic): }, ) - mapper( + cls.mapper_registry.map_imperatively( Machine, machines, properties={"type": relationship(MachineType)} ) - mapper(MachineType, machine_type) + cls.mapper_registry.map_imperatively(MachineType, machine_type) @classmethod def insert_data(cls, connection): @@ -2373,7 +2382,7 @@ class SelfReferentialTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -2449,7 +2458,7 @@ class SelfReferentialTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -2495,7 +2504,7 @@ class SelfReferentialTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -2553,7 +2562,7 @@ class SelfReferentialTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={"children": relationship(Node, order_by=nodes.c.id)}, @@ -2608,7 +2617,7 @@ class SelfReferentialTest(fixtures.MappedTest): def append(self, node): self.children.append(node) - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={"children": relationship(Node, lazy="subquery")}, @@ -2713,25 +2722,27 @@ class InheritanceToRelatedTest(fixtures.MappedTest): @classmethod def setup_mappers(cls): - mapper( + cls.mapper_registry.map_imperatively( cls.classes.Foo, cls.tables.foo, properties={"related": relationship(cls.classes.Related)}, polymorphic_on=cls.tables.foo.c.type, ) - mapper( + cls.mapper_registry.map_imperatively( cls.classes.Bar, cls.tables.bar, polymorphic_identity="bar", inherits=cls.classes.Foo, ) - mapper( + cls.mapper_registry.map_imperatively( cls.classes.Baz, cls.tables.baz, polymorphic_identity="baz", inherits=cls.classes.Foo, ) - mapper(cls.classes.Related, cls.tables.related) + cls.mapper_registry.map_imperatively( + cls.classes.Related, cls.tables.related + ) def test_caches_query_per_base_subq(self): Foo, Bar, Baz, Related = ( @@ -2826,8 +2837,10 @@ class CyclicalInheritingEagerTestOne(fixtures.MappedTest): class SubT2(T2): pass - mapper(T, t1, polymorphic_on=t1.c.type, polymorphic_identity="t1") - mapper( + self.mapper_registry.map_imperatively( + T, t1, polymorphic_on=t1.c.type, polymorphic_identity="t1" + ) + self.mapper_registry.map_imperatively( SubT, None, inherits=T, @@ -2840,8 +2853,12 @@ class CyclicalInheritingEagerTestOne(fixtures.MappedTest): ) }, ) - mapper(T2, t2, polymorphic_on=t2.c.type, polymorphic_identity="t2") - mapper(SubT2, None, inherits=T2, polymorphic_identity="subt2") + self.mapper_registry.map_imperatively( + T2, t2, polymorphic_on=t2.c.type, polymorphic_identity="t2" + ) + self.mapper_registry.map_imperatively( + SubT2, None, inherits=T2, polymorphic_identity="subt2" + ) # testing a particular endless loop condition in eager load setup fixture_session().query(SubT).all() diff --git a/test/orm/test_sync.py b/test/orm/test_sync.py index 76cd7f7583..924ae674eb 100644 --- a/test/orm/test_sync.py +++ b/test/orm/test_sync.py @@ -4,7 +4,6 @@ from sqlalchemy import testing from sqlalchemy.orm import attributes from sqlalchemy.orm import class_mapper from sqlalchemy.orm import exc as orm_exc -from sqlalchemy.orm import mapper from sqlalchemy.orm import sync from sqlalchemy.orm import unitofwork from sqlalchemy.testing import assert_raises_message @@ -56,8 +55,8 @@ class SyncTest( @classmethod def setup_mappers(cls): - mapper(cls.classes.A, cls.tables.t1) - mapper(cls.classes.B, cls.tables.t2) + cls.mapper_registry.map_imperatively(cls.classes.A, cls.tables.t1) + cls.mapper_registry.map_imperatively(cls.classes.B, cls.tables.t2) def _fixture(self): A, B = self.classes.A, self.classes.B diff --git a/test/orm/test_transaction.py b/test/orm/test_transaction.py index ad57a80316..1c8fef5cbd 100644 --- a/test/orm/test_transaction.py +++ b/test/orm/test_transaction.py @@ -14,8 +14,8 @@ from sqlalchemy import testing from sqlalchemy import text from sqlalchemy.future import Engine from sqlalchemy.orm import attributes +from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import exc as orm_exc -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.orm import session as _session @@ -58,7 +58,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): User, users = self.classes.User, self.tables.users c = conn - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = Session(bind=c) s.begin() tran = s._legacy_transaction() @@ -77,7 +77,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_subtransaction_on_external_subtrans(self, conn): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) trans = conn.begin() sess = Session(bind=conn, autocommit=False, autoflush=True) @@ -93,7 +93,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_subtransaction_on_external_no_begin(self, conn): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) trans = conn.begin() sess = Session(bind=conn, autocommit=False, autoflush=True) u = User(name="ed") @@ -108,7 +108,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_external_nested_transaction(self, conn): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) trans = conn.begin() sess = Session(bind=conn, autocommit=False, autoflush=True) u1 = User(name="u1") @@ -127,7 +127,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_subtransaction_on_external_commit_future(self, future_conn): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) conn = future_conn conn.begin() @@ -144,7 +144,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_subtransaction_on_external_rollback_future(self, future_conn): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) conn = future_conn conn.begin() @@ -162,7 +162,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_savepoint_on_external_future(self, future_conn): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) conn = future_conn conn.begin() @@ -184,7 +184,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_nested_accounting_new_items_removed(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) session = fixture_session() session.begin() @@ -200,7 +200,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_nested_accounting_deleted_items_restored(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) session = fixture_session() session.begin() @@ -287,7 +287,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_dirty_state_transferred_deep_nesting(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with fixture_session() as s: u1 = User(name="u1") @@ -315,7 +315,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_dirty_state_transferred_deep_nesting_future(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with fixture_session(future=True) as s: u1 = User(name="u1") @@ -343,7 +343,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_transactions_isolated(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s1 = fixture_session(autocommit=False) s2 = fixture_session(autocommit=False) @@ -364,8 +364,8 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): # TODO: mock up a failure condition here # to ensure a rollback succeeds - mapper(User, users) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively(Address, addresses) engine2 = engines.testing_engine() sess = fixture_session(autocommit=True, autoflush=False, twophase=True) @@ -385,7 +385,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): @testing.requires.independent_connections def test_invalidate(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u = User(name="u1") sess.add(u) @@ -414,7 +414,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_subtransaction_on_noautocommit(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autocommit=False, autoflush=True) sess.begin(subtransactions=True) u = User(name="u1") @@ -429,7 +429,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_nested_transaction(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() sess.begin() @@ -453,7 +453,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_nested_autotrans(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autocommit=False) u = User(name="u1") sess.add(u) @@ -475,7 +475,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_nested_autotrans_future(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autocommit=False, future=True) u = User(name="u1") sess.add(u) @@ -497,7 +497,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_nested_transaction_connection_add(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autocommit=True) @@ -533,7 +533,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_mixed_transaction_control(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autocommit=True) @@ -565,7 +565,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_mixed_transaction_close(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autocommit=False) @@ -644,7 +644,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): we're in commit()""" users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() to_flush = [User(name="ed"), User(name="jack"), User(name="wendy")] @@ -668,7 +668,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_continue_flushing_guard(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @event.listens_for(sess, "after_flush_postexec") @@ -685,7 +685,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_error_on_using_inactive_session_commands(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autocommit=True) sess.begin() sess.begin(subtransactions=True) @@ -752,7 +752,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): # test #4050 users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) session = Session(bind=testing.db) rollback_error = testing.db.dialect.dbapi.InterfaceError( @@ -869,7 +869,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def _inactive_flushed_session_fixture(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(id=1, name="u1") sess.add(u1) @@ -975,7 +975,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_warning_on_using_inactive_session_rollback_evt(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(id=1, name="u1") sess.add(u1) @@ -1018,7 +1018,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_no_autocommit_with_explicit_commit(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) session = fixture_session(autocommit=False) session.add(User(name="ed")) session._legacy_transaction().commit() @@ -1028,7 +1028,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_no_autocommit_with_explicit_commit_future(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) session = fixture_session(autocommit=False, future=True) session.add(User(name="ed")) session._legacy_transaction().commit() @@ -1041,7 +1041,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest): def test_report_primary_error_when_rollback_fails(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with fixture_session() as session: @@ -1072,7 +1072,7 @@ class _LocalFixture(FixtureTest): def setup_mappers(cls): User, Address = cls.classes.User, cls.classes.Address users, addresses = cls.tables.users, cls.tables.addresses - mapper( + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -1084,7 +1084,7 @@ class _LocalFixture(FixtureTest): ) }, ) - mapper(Address, addresses) + cls.mapper_registry.map_imperatively(Address, addresses) def subtransaction_recipe_one(self): @@ -1207,7 +1207,7 @@ class SubtransactionRecipeTest(FixtureTest): ): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with testing.db.connect() as conn: trans = conn.begin() sess = Session(conn, future=self.future) @@ -1224,7 +1224,7 @@ class SubtransactionRecipeTest(FixtureTest): def test_recipe_commit_one(self, subtransaction_recipe): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with fixture_session(future=self.future) as sess: with subtransaction_recipe(sess): u = User(name="u1") @@ -1237,7 +1237,7 @@ class SubtransactionRecipeTest(FixtureTest): ): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with fixture_session(future=self.future) as sess: sess.begin() with subtransaction_recipe(sess): @@ -1252,7 +1252,7 @@ class SubtransactionRecipeTest(FixtureTest): def test_recipe_mixed_transaction_control(self, subtransaction_recipe): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with fixture_session(future=self.future) as sess: @@ -1282,7 +1282,7 @@ class SubtransactionRecipeTest(FixtureTest): ): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with fixture_session(future=self.future) as sess: sess.begin() @@ -1384,7 +1384,7 @@ class CleanSavepointTest(FixtureTest): def _run_test(self, update_fn, future=False): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) with fixture_session(future=future) as s: u1 = User(name="u1") @@ -2060,7 +2060,7 @@ class ContextManagerPlusFutureTest(FixtureTest): def test_contextmanager_nested_rollback(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -2080,7 +2080,7 @@ class ContextManagerPlusFutureTest(FixtureTest): def test_contextmanager_commit(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() with sess.begin(): @@ -2092,7 +2092,7 @@ class ContextManagerPlusFutureTest(FixtureTest): def test_contextmanager_rollback(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() @@ -2435,7 +2435,7 @@ class ContextManagerPlusFutureTest(FixtureTest): ): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) session = fixture_session( future=future, expire_on_commit=expire_on_commit @@ -2593,7 +2593,7 @@ class NaturalPKRollbackTest(fixtures.MappedTest): def test_rollback_recover(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) session = fixture_session() @@ -2622,7 +2622,7 @@ class NaturalPKRollbackTest(fixtures.MappedTest): """test issue #3677""" users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u1 = User(name="u1") @@ -2645,7 +2645,7 @@ class NaturalPKRollbackTest(fixtures.MappedTest): def test_key_replaced_by_update(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u1 = User(name="u1") u2 = User(name="u2") @@ -2673,7 +2673,7 @@ class NaturalPKRollbackTest(fixtures.MappedTest): def test_key_replaced_by_update_nested(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u1 = User(name="u1") @@ -2700,7 +2700,7 @@ class NaturalPKRollbackTest(fixtures.MappedTest): def test_multiple_key_replaced_by_update(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u1 = User(name="u1") u2 = User(name="u2") @@ -2733,7 +2733,7 @@ class NaturalPKRollbackTest(fixtures.MappedTest): def test_key_replaced_by_oob_insert(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u1 = User(name="u1") @@ -2785,7 +2785,7 @@ class JoinIntoAnExternalTransactionFixture(object): self.connection.close() - def test_something(self): + def test_something(self, connection): A = self.A a1 = A() @@ -2816,7 +2816,8 @@ class NewStyleJoinIntoAnExternalTransactionTest( class A(object): pass - mapper(A, self.table) + clear_mappers() + self.mapper_registry.map_imperatively(A, self.table) self.A = A # bind an individual Session to the connection @@ -2874,21 +2875,21 @@ class NewStyleJoinIntoAnExternalTransactionTest( class FutureJoinIntoAnExternalTransactionTest( NewStyleJoinIntoAnExternalTransactionTest, fixtures.FutureEngineMixin, - fixtures.TestBase, + fixtures.MappedTest, ): pass class NonFutureJoinIntoAnExternalTransactionTest( NewStyleJoinIntoAnExternalTransactionTest, - fixtures.TestBase, + fixtures.MappedTest, ): pass class LegacyJoinIntoAnExternalTransactionTest( JoinIntoAnExternalTransactionFixture, - fixtures.TestBase, + fixtures.MappedTest, ): def setup_session(self): # begin a non-ORM transaction @@ -2897,7 +2898,9 @@ class LegacyJoinIntoAnExternalTransactionTest( class A(object): pass - mapper(A, self.table) + # TODO: py2 is not hitting this correctly for some reason, + # some mro issue + self.mapper_registry.map_imperatively(A, self.table) self.A = A # bind an individual Session to the connection @@ -2938,7 +2941,7 @@ class LegacyBranchedJoinIntoAnExternalTransactionTest( class A(object): pass - mapper(A, self.table) + self.mapper_registry.map_imperatively(A, self.table) self.A = A # neutron is doing this inside of a migration diff --git a/test/orm/test_unitofwork.py b/test/orm/test_unitofwork.py index 9cc39f79cf..afba9d9532 100644 --- a/test/orm/test_unitofwork.py +++ b/test/orm/test_unitofwork.py @@ -18,7 +18,6 @@ from sqlalchemy import testing from sqlalchemy.inspection import inspect from sqlalchemy.orm import column_property from sqlalchemy.orm import exc as orm_exc -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.orm.persistence import _sort_states @@ -61,8 +60,8 @@ class HistoryTest(_fixtures.FixtureTest): self.classes.User, ) - am = mapper(Address, addresses) - m = mapper( + am = self.mapper_registry.map_imperatively(Address, addresses) + m = self.mapper_registry.map_imperatively( User, users, properties=dict( @@ -123,7 +122,7 @@ class UnicodeTest(fixtures.MappedTest): def test_basic(self): Test, uni_t1 = self.classes.Test, self.tables.uni_t1 - mapper(Test, uni_t1) + self.mapper_registry.map_imperatively(Test, uni_t1) txt = ue("\u0160\u0110\u0106\u010c\u017d") t1 = Test(id=1, txt=txt) @@ -143,8 +142,10 @@ class UnicodeTest(fixtures.MappedTest): self.classes.Test2, ) - mapper(Test, uni_t1, properties={"t2s": relationship(Test2)}) - mapper(Test2, uni_t2) + self.mapper_registry.map_imperatively( + Test, uni_t1, properties={"t2s": relationship(Test2)} + ) + self.mapper_registry.map_imperatively(Test2, uni_t2) txt = ue("\u0160\u0110\u0106\u010c\u017d") t1 = Test(txt=txt) @@ -212,8 +213,10 @@ class UnicodeSchemaTest(fixtures.MappedTest): class B(fixtures.ComparableEntity): pass - mapper(A, t1, properties={"t2s": relationship(B)}) - mapper(B, t2) + self.mapper_registry.map_imperatively( + A, t1, properties={"t2s": relationship(B)} + ) + self.mapper_registry.map_imperatively(B, t2) a1 = A() b1 = B() @@ -252,8 +255,12 @@ class UnicodeSchemaTest(fixtures.MappedTest): class B(A): pass - mapper(A, t1, polymorphic_on=t1.c.type, polymorphic_identity="a") - mapper(B, t2, inherits=A, polymorphic_identity="b") + self.mapper_registry.map_imperatively( + A, t1, polymorphic_on=t1.c.type, polymorphic_identity="a" + ) + self.mapper_registry.map_imperatively( + B, t2, inherits=A, polymorphic_identity="b" + ) a1 = A(b=5) b1 = B(e=7) @@ -292,7 +299,7 @@ class BinaryHistTest(fixtures.MappedTest, testing.AssertsExecutionResults): # data = b("this is some data") data = b"m\x18" # m\xf2\r\n\x7f\x10' - mapper(Foo, t1) + self.mapper_registry.map_imperatively(Foo, t1) s = fixture_session() @@ -355,7 +362,7 @@ class PKTest(fixtures.MappedTest): def test_primary_key(self): Entry, multipk1 = self.classes.Entry, self.tables.multipk1 - mapper(Entry, multipk1) + self.mapper_registry.map_imperatively(Entry, multipk1) e = Entry(name="entry1", value="this is entry 1", multi_rev=2) @@ -374,7 +381,7 @@ class PKTest(fixtures.MappedTest): def test_manual_pk(self): Entry, multipk2 = self.classes.Entry, self.tables.multipk2 - mapper(Entry, multipk2) + self.mapper_registry.map_imperatively(Entry, multipk2) e = Entry(pk_col_1="pk1", pk_col_2="pk1_related", data="im the data") @@ -385,7 +392,7 @@ class PKTest(fixtures.MappedTest): def test_key_pks(self): Entry, multipk3 = self.classes.Entry, self.tables.multipk3 - mapper(Entry, multipk3) + self.mapper_registry.map_imperatively(Entry, multipk3) e = Entry( primary="pk1", @@ -440,8 +447,8 @@ class ForeignPKTest(fixtures.MappedTest): self.tables.people, ) - mapper(PersonSite, peoplesites) - m2 = mapper( + self.mapper_registry.map_imperatively(PersonSite, peoplesites) + m2 = self.mapper_registry.map_imperatively( Person, people, properties={"sites": relationship(PersonSite)} ) @@ -523,9 +530,9 @@ class ClauseAttributesTest(fixtures.MappedTest): User, users_t = cls.classes.User, cls.tables.users_t HasBoolean, boolean_t = cls.classes.HasBoolean, cls.tables.boolean_t PkDefault, pk_t = cls.classes.PkDefault, cls.tables.pk_t - mapper(User, users_t) - mapper(HasBoolean, boolean_t) - mapper(PkDefault, pk_t) + cls.mapper_registry.map_imperatively(User, users_t) + cls.mapper_registry.map_imperatively(HasBoolean, boolean_t) + cls.mapper_registry.map_imperatively(PkDefault, pk_t) def test_update(self): User = self.classes.User @@ -689,8 +696,8 @@ class PassiveDeletesTest(fixtures.MappedTest): self.tables.mytable, ) - mapper(MyOtherClass, myothertable) - mapper( + self.mapper_registry.map_imperatively(MyOtherClass, myothertable) + self.mapper_registry.map_imperatively( MyClass, mytable, properties={ @@ -744,7 +751,7 @@ class PassiveDeletesTest(fixtures.MappedTest): self.tables.mytable, ) - mapper( + self.mapper_registry.map_imperatively( MyOtherClass, myothertable, properties={ @@ -753,7 +760,7 @@ class PassiveDeletesTest(fixtures.MappedTest): ) }, ) - mapper(MyClass, mytable) + self.mapper_registry.map_imperatively(MyClass, mytable) session = fixture_session() mc = MyClass() @@ -787,7 +794,7 @@ class PassiveDeletesTest(fixtures.MappedTest): self.tables.mytable, ) - mapper( + self.mapper_registry.map_imperatively( MyOtherClass, myothertable, properties={ @@ -796,7 +803,7 @@ class PassiveDeletesTest(fixtures.MappedTest): ) }, ) - mapper(MyClass, mytable) + self.mapper_registry.map_imperatively(MyClass, mytable) sa.orm.configure_mappers() @@ -872,8 +879,8 @@ class ExtraPassiveDeletesTest(fixtures.MappedTest): self.tables.mytable, ) - mapper(MyOtherClass, myothertable) - mapper( + self.mapper_registry.map_imperatively(MyOtherClass, myothertable) + self.mapper_registry.map_imperatively( MyClass, mytable, properties={ @@ -910,8 +917,8 @@ class ExtraPassiveDeletesTest(fixtures.MappedTest): self.tables.mytable, ) - mapper(MyOtherClass, myothertable) - mapper( + self.mapper_registry.map_imperatively(MyOtherClass, myothertable) + self.mapper_registry.map_imperatively( MyClass, mytable, properties={ @@ -947,8 +954,8 @@ class ExtraPassiveDeletesTest(fixtures.MappedTest): self.tables.mytable, ) - mapper(MyOtherClass, myothertable) - mapper( + self.mapper_registry.map_imperatively(MyOtherClass, myothertable) + self.mapper_registry.map_imperatively( MyClass, mytable, properties={ @@ -981,8 +988,8 @@ class ExtraPassiveDeletesTest(fixtures.MappedTest): self.tables.mytable, ) - mapper(MyOtherClass, myothertable) - mapper( + self.mapper_registry.map_imperatively(MyOtherClass, myothertable) + self.mapper_registry.map_imperatively( MyClass, mytable, properties={ @@ -1024,7 +1031,7 @@ class ColumnCollisionTest(fixtures.MappedTest): class Book(fixtures.ComparableEntity): pass - mapper(Book, book) + self.mapper_registry.map_imperatively(Book, book) with fixture_session() as sess: b1 = Book(book_id="abc", title="def") @@ -1136,7 +1143,7 @@ class DefaultTest(fixtures.MappedTest): self.classes.Hoho, ) - mapper(Hoho, default_t) + self.mapper_registry.map_imperatively(Hoho, default_t) h1 = Hoho(hoho=althohoval) h2 = Hoho(counter=12) @@ -1191,7 +1198,7 @@ class DefaultTest(fixtures.MappedTest): ) Secondary = self.classes.Secondary - mapper( + self.mapper_registry.map_imperatively( Hoho, default_t, eager_defaults=True, @@ -1201,7 +1208,9 @@ class DefaultTest(fixtures.MappedTest): }, ) - mapper(Secondary, self.tables.secondary_table) + self.mapper_registry.map_imperatively( + Secondary, self.tables.secondary_table + ) h1 = Hoho() session = fixture_session() @@ -1226,7 +1235,7 @@ class DefaultTest(fixtures.MappedTest): # populates from the FetchValues explicitly so there is no # "post-update" - mapper(Hoho, default_t) + self.mapper_registry.map_imperatively(Hoho, default_t) h1 = Hoho(hoho="15", counter=15) session = fixture_session() @@ -1244,7 +1253,7 @@ class DefaultTest(fixtures.MappedTest): def test_update(self): default_t, Hoho = self.tables.default_t, self.classes.Hoho - mapper(Hoho, default_t) + self.mapper_registry.map_imperatively(Hoho, default_t) h1 = Hoho() session = fixture_session() @@ -1268,7 +1277,7 @@ class DefaultTest(fixtures.MappedTest): self.classes.Secondary, ) - mapper( + self.mapper_registry.map_imperatively( Hoho, default_t, properties={ @@ -1277,7 +1286,7 @@ class DefaultTest(fixtures.MappedTest): ) }, ) - mapper(Secondary, secondary_table) + self.mapper_registry.map_imperatively(Secondary, secondary_table) h1 = Hoho() s1 = Secondary(data="s1") @@ -1335,7 +1344,7 @@ class ColumnPropertyTest(fixtures.MappedTest): def test_refreshes(self): Data, data = self.classes.Data, self.tables.data - mapper( + self.mapper_registry.map_imperatively( Data, data, properties={ @@ -1349,7 +1358,7 @@ class ColumnPropertyTest(fixtures.MappedTest): def test_no_refresh_ro_column_property_no_expire_on_flush(self): Data, data = self.classes.Data, self.tables.data - mapper( + self.mapper_registry.map_imperatively( Data, data, properties={ @@ -1364,7 +1373,7 @@ class ColumnPropertyTest(fixtures.MappedTest): def test_no_refresh_ro_column_property_expire_on_flush(self): Data, data = self.classes.Data, self.tables.data - mapper( + self.mapper_registry.map_imperatively( Data, data, properties={ @@ -1379,7 +1388,7 @@ class ColumnPropertyTest(fixtures.MappedTest): def test_no_refresh_ro_deferred_no_expire_on_flush(self): Data, data = self.classes.Data, self.tables.data - mapper( + self.mapper_registry.map_imperatively( Data, data, properties={ @@ -1395,7 +1404,7 @@ class ColumnPropertyTest(fixtures.MappedTest): def test_no_refresh_ro_deferred_expire_on_flush(self): Data, data = self.classes.Data, self.tables.data - mapper( + self.mapper_registry.map_imperatively( Data, data, properties={ @@ -1411,7 +1420,7 @@ class ColumnPropertyTest(fixtures.MappedTest): def test_refreshes_post_init(self): Data, data = self.classes.Data, self.tables.data - m = mapper(Data, data) + m = self.mapper_registry.map_imperatively(Data, data) m.add_property( "aplusb", column_property(data.c.a + literal_column("' '") + data.c.b), @@ -1428,7 +1437,7 @@ class ColumnPropertyTest(fixtures.MappedTest): class SubData(Data): pass - mapper( + self.mapper_registry.map_imperatively( Data, data, properties={ @@ -1437,7 +1446,7 @@ class ColumnPropertyTest(fixtures.MappedTest): ) }, ) - mapper(SubData, subdata, inherits=Data) + self.mapper_registry.map_imperatively(SubData, subdata, inherits=Data) sess = fixture_session() sd1 = SubData(a="hello", b="there", c="hi") @@ -1503,12 +1512,13 @@ class OneToManyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), lazy="select" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="select", ) ), ) @@ -1562,12 +1572,13 @@ class OneToManyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), lazy="select" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="select", ) ), ) @@ -1631,12 +1642,13 @@ class OneToManyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), lazy="select" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="select", ) ), ) @@ -1668,12 +1680,13 @@ class OneToManyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( addresses=relationship( - mapper(Address, addresses), lazy="select" + self.mapper_registry.map_imperatively(Address, addresses), + lazy="select", ) ), ) @@ -1704,12 +1717,14 @@ class OneToManyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( address=relationship( - mapper(Address, addresses), lazy="select", uselist=False + self.mapper_registry.map_imperatively(Address, addresses), + lazy="select", + uselist=False, ) ), ) @@ -1740,12 +1755,14 @@ class OneToManyTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties=dict( address=relationship( - mapper(Address, addresses), lazy="select", uselist=False + self.mapper_registry.map_imperatively(Address, addresses), + lazy="select", + uselist=False, ) ), ) @@ -1771,8 +1788,8 @@ class OneToManyTest(_fixtures.FixtureTest): self.classes.User, ) - m1 = mapper(User, users) - mapper( + m1 = self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( Address, addresses, properties=dict( @@ -1797,8 +1814,8 @@ class OneToManyTest(_fixtures.FixtureTest): self.classes.User, ) - m2 = mapper(Address, addresses) - mapper( + m2 = self.mapper_registry.map_imperatively(Address, addresses) + self.mapper_registry.map_imperatively( User, users, properties={ @@ -1838,7 +1855,7 @@ class SaveTest(_fixtures.FixtureTest): def test_basic(self): User, users = self.classes.User, self.tables.users - m = mapper(User, users) + m = self.mapper_registry.map_imperatively(User, users) # save two users u = User(name="savetester") @@ -1893,7 +1910,9 @@ class SaveTest(_fixtures.FixtureTest): syn_name = property(_get_name, _set_name) - mapper(SUser, users, properties={"syn_name": sa.orm.synonym("name")}) + self.mapper_registry.map_imperatively( + SUser, users, properties={"syn_name": sa.orm.synonym("name")} + ) u = SUser(syn_name="some name") eq_(u.syn_name, "User:some name:User") @@ -1921,10 +1940,14 @@ class SaveTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, - properties={"addresses": relationship(mapper(Address, addresses))}, + properties={ + "addresses": relationship( + self.mapper_registry.map_imperatively(Address, addresses) + ) + }, ) u = User(name="u1") @@ -1952,14 +1975,14 @@ class SaveTest(_fixtures.FixtureTest): self.classes.User, ) - m1 = mapper(User, users) + m1 = self.mapper_registry.map_imperatively(User, users) class AddressUser(User): pass # define a mapper for AddressUser that inherits the User.mapper, and # joins on the id column - mapper( + self.mapper_registry.map_imperatively( AddressUser, addresses, inherits=m1, @@ -1982,7 +2005,7 @@ class SaveTest(_fixtures.FixtureTest): orders, Order = self.tables.orders, self.classes.Order - mapper( + self.mapper_registry.map_imperatively( Order, orders, properties={"description": sa.orm.deferred(orders.c.description)}, @@ -2036,7 +2059,7 @@ class SaveTest(_fixtures.FixtureTest): def test_dont_update_blanks(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u = User(name="") session = fixture_session() @@ -2065,7 +2088,7 @@ class SaveTest(_fixtures.FixtureTest): users, addresses, users.c.id == addresses.c.user_id ) - m = mapper( + m = self.mapper_registry.map_imperatively( User, usersaddresses, properties=dict( @@ -2122,7 +2145,7 @@ class SaveTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2131,7 +2154,7 @@ class SaveTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) u = User(name="u1") u.addresses.append(Address(email_address="u1@e1")) @@ -2172,7 +2195,7 @@ class SaveTest(_fixtures.FixtureTest): def after_insert(self, mapper, connection, instance): assert instance is self.current_instance - mapper(User, users, batch=False) + self.mapper_registry.map_imperatively(User, users, batch=False) evt = Events() event.listen(User, "before_insert", evt.before_insert) @@ -2198,7 +2221,7 @@ class SaveTest(_fixtures.FixtureTest): sa.orm.clear_mappers() - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) evt = Events() event.listen(User, "before_insert", evt.before_insert) event.listen(User, "after_insert", evt.after_insert) @@ -2220,12 +2243,14 @@ class ManyToOneTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties=dict( user=relationship( - mapper(User, users), lazy="select", uselist=False + self.mapper_registry.map_imperatively(User, users), + lazy="select", + uselist=False, ) ), ) @@ -2302,11 +2327,14 @@ class ManyToOneTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties=dict( - user=relationship(mapper(User, users), lazy="select") + user=relationship( + self.mapper_registry.map_imperatively(User, users), + lazy="select", + ) ), ) @@ -2338,11 +2366,14 @@ class ManyToOneTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties=dict( - user=relationship(mapper(User, users), lazy="select") + user=relationship( + self.mapper_registry.map_imperatively(User, users), + lazy="select", + ) ), ) @@ -2380,11 +2411,14 @@ class ManyToOneTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( Address, addresses, properties=dict( - user=relationship(mapper(User, users), lazy="select") + user=relationship( + self.mapper_registry.map_imperatively(User, users), + lazy="select", + ) ), ) @@ -2419,7 +2453,7 @@ class ManyToOneTest(_fixtures.FixtureTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2428,7 +2462,7 @@ class ManyToOneTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) # try it on unsaved objects u1 = User(name="u1") @@ -2461,9 +2495,9 @@ class ManyToManyTest(_fixtures.FixtureTest): self.classes.Item, ) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -2612,8 +2646,8 @@ class ManyToManyTest(_fixtures.FixtureTest): self.classes.Item, ) - mapper(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively(Keyword, keywords) + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -2648,9 +2682,9 @@ class ManyToManyTest(_fixtures.FixtureTest): self.classes.Item, ) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -2678,8 +2712,8 @@ class ManyToManyTest(_fixtures.FixtureTest): self.classes.Item, ) - mapper(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively(Keyword, keywords) + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -2726,9 +2760,9 @@ class ManyToManyTest(_fixtures.FixtureTest): class IKAssociation(fixtures.ComparableEntity): pass - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively( IKAssociation, item_keywords, primary_key=[item_keywords.c.item_id, item_keywords.c.keyword_id], @@ -2747,7 +2781,7 @@ class ManyToManyTest(_fixtures.FixtureTest): ), ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -2805,8 +2839,8 @@ class SaveTest2(_fixtures.FixtureTest): self.classes.User, ) - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( Address, addresses, properties=dict( @@ -2922,8 +2956,8 @@ class SaveTest3(fixtures.MappedTest): self.classes.Item, ) - mapper(Keyword, keywords) - mapper( + self.mapper_registry.map_imperatively(Keyword, keywords) + self.mapper_registry.map_imperatively( Item, items, properties=dict( @@ -2977,7 +3011,7 @@ class BooleanColTest(fixtures.MappedTest): class T(fixtures.ComparableEntity): pass - mapper(T, t1_t) + self.mapper_registry.map_imperatively(T, t1_t) sess = fixture_session() t1 = T(value=True, name="t1") @@ -3091,12 +3125,12 @@ class RowSwitchTest(fixtures.MappedTest): self.classes.T5, ) - mapper( + self.mapper_registry.map_imperatively( T5, t5, properties={"t6s": relationship(T6, cascade="all, delete-orphan")}, ) - mapper(T6, t6) + self.mapper_registry.map_imperatively(T6, t6) sess = fixture_session() @@ -3137,14 +3171,14 @@ class RowSwitchTest(fixtures.MappedTest): self.classes.T7, ) - mapper( + self.mapper_registry.map_imperatively( T5, t5, properties={ "t7s": relationship(T7, secondary=t5t7, cascade="all") }, ) - mapper(T7, t7) + self.mapper_registry.map_imperatively(T7, t7) sess = fixture_session() @@ -3194,8 +3228,10 @@ class RowSwitchTest(fixtures.MappedTest): self.classes.T5, ) - mapper(T6, t6, properties={"t5": relationship(T5)}) - mapper(T5, t5) + self.mapper_registry.map_imperatively( + T6, t6, properties={"t5": relationship(T5)} + ) + self.mapper_registry.map_imperatively(T5, t5) sess = fixture_session() @@ -3257,8 +3293,8 @@ class InheritingRowSwitchTest(fixtures.MappedTest): self.tables.child, ) - mapper(P, parent) - mapper(C, child, inherits=P) + self.mapper_registry.map_imperatively(P, parent) + self.mapper_registry.map_imperatively(C, child, inherits=P) sess = fixture_session() c1 = C(pid=1, cid=1, pdata="c1", cdata="c1") @@ -3313,7 +3349,7 @@ class PartialNullPKTest(fixtures.MappedTest): @classmethod def setup_mappers(cls): - mapper(cls.classes.T1, cls.tables.t1) + cls.mapper_registry.map_imperatively(cls.classes.T1, cls.tables.t1) def test_key_switch(self): T1 = self.classes.T1 @@ -3466,9 +3502,9 @@ class EnsurePKSortableTest(fixtures.MappedTest): @classmethod def setup_mappers(cls): - mapper(cls.classes.T1, cls.tables.t1) - mapper(cls.classes.T2, cls.tables.t2) - mapper(cls.classes.T3, cls.tables.t3) + cls.mapper_registry.map_imperatively(cls.classes.T1, cls.tables.t1) + cls.mapper_registry.map_imperatively(cls.classes.T2, cls.tables.t2) + cls.mapper_registry.map_imperatively(cls.classes.T3, cls.tables.t3) def test_exception_persistent_flush_py3k(self): s = fixture_session() diff --git a/test/orm/test_unitofworkv2.py b/test/orm/test_unitofworkv2.py index b468fa72e7..71f4609988 100644 --- a/test/orm/test_unitofworkv2.py +++ b/test/orm/test_unitofworkv2.py @@ -21,7 +21,6 @@ from sqlalchemy.orm import backref from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import declarative_base from sqlalchemy.orm import exc as orm_exc -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.orm import unitofwork @@ -76,8 +75,10 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() a1, a2 = Address(email_address="a1"), Address(email_address="a2") @@ -125,8 +126,10 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() a1, a2 = Address(email_address="a1"), Address(email_address="a2") u1 = User(name="u1", addresses=[a1, a2]) @@ -156,8 +159,10 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() a1, a2 = Address(email_address="a1"), Address(email_address="a2") u1 = User(name="u1", addresses=[a1, a2]) @@ -189,8 +194,10 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users) - mapper(Address, addresses, properties={"user": relationship(User)}) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) sess = fixture_session() u1 = User(name="u1") @@ -241,8 +248,10 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users) - mapper(Address, addresses, properties={"user": relationship(User)}) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) sess = fixture_session() u1 = User(name="u1") @@ -276,8 +285,10 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users) - mapper(Address, addresses, properties={"user": relationship(User)}) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) sess = fixture_session() u1 = User(name="u1") @@ -314,8 +325,10 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users) - mapper(Address, addresses, properties={"parent": relationship(User)}) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"parent": relationship(User)} + ) parent = User(name="p1") c1, c2 = ( @@ -395,8 +408,10 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users) - mapper(Address, addresses, properties={"parent": relationship(User)}) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"parent": relationship(User)} + ) parent = User(name="p1") c1, c2 = ( @@ -460,8 +475,10 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users) - mapper(Address, addresses, properties={"parent": relationship(User)}) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"parent": relationship(User)} + ) parent = User(name="p1") c1, c2 = ( @@ -524,8 +541,10 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users) - mapper(Address, addresses, properties={"user": relationship(User)}) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) sess = fixture_session() u1 = User(name="u1") @@ -555,8 +574,10 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users) - mapper(Address, addresses, properties={"user": relationship(User)}) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"user": relationship(User)} + ) sess = fixture_session() u1 = User(name="u1") @@ -595,8 +616,10 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users) - mapper(Address, addresses, properties={"parent": relationship(User)}) + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( + Address, addresses, properties={"parent": relationship(User)} + ) sess = fixture_session() @@ -635,7 +658,9 @@ class RudimentaryFlushTest(UOWTest): Node, nodes = self.classes.Node, self.tables.nodes - mapper(Node, nodes, properties={"children": relationship(Node)}) + self.mapper_registry.map_imperatively( + Node, nodes, properties={"children": relationship(Node)} + ) sess = fixture_session() @@ -670,14 +695,14 @@ class RudimentaryFlushTest(UOWTest): self.classes.Item, ) - mapper( + self.mapper_registry.map_imperatively( Item, items, properties={ "keywords": relationship(Keyword, secondary=item_keywords) }, ) - mapper(Keyword, keywords) + self.mapper_registry.map_imperatively(Keyword, keywords) sess = fixture_session() k1 = Keyword(name="k1") @@ -722,8 +747,8 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users) - mapper( + self.mapper_registry.map_imperatively(User, users) + self.mapper_registry.map_imperatively( Address, addresses, properties={"user": relationship(User, passive_updates=True)}, @@ -741,8 +766,10 @@ class RudimentaryFlushTest(UOWTest): self.classes.User, ) - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) with fixture_session(autoflush=False) as sess: u1 = User(name="ed") @@ -837,7 +864,9 @@ class SingleCycleTest(UOWTest): def test_one_to_many_save(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper(Node, nodes, properties={"children": relationship(Node)}) + self.mapper_registry.map_imperatively( + Node, nodes, properties={"children": relationship(Node)} + ) sess = fixture_session() n2, n3 = Node(data="n2"), Node(data="n3") @@ -885,7 +914,9 @@ class SingleCycleTest(UOWTest): def test_one_to_many_delete_all(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper(Node, nodes, properties={"children": relationship(Node)}) + self.mapper_registry.map_imperatively( + Node, nodes, properties={"children": relationship(Node)} + ) sess = fixture_session() n2, n3 = Node(data="n2", children=[]), Node(data="n3", children=[]) @@ -913,7 +944,9 @@ class SingleCycleTest(UOWTest): def test_one_to_many_delete_parent(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper(Node, nodes, properties={"children": relationship(Node)}) + self.mapper_registry.map_imperatively( + Node, nodes, properties={"children": relationship(Node)} + ) sess = fixture_session() n2, n3 = Node(data="n2", children=[]), Node(data="n3", children=[]) @@ -943,7 +976,7 @@ class SingleCycleTest(UOWTest): def test_many_to_one_save(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={"parent": relationship(Node, remote_side=nodes.c.id)}, @@ -995,7 +1028,7 @@ class SingleCycleTest(UOWTest): def test_many_to_one_delete_all(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={"parent": relationship(Node, remote_side=nodes.c.id)}, @@ -1027,7 +1060,7 @@ class SingleCycleTest(UOWTest): def test_many_to_one_set_null_unloaded(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={"parent": relationship(Node, remote_side=nodes.c.id)}, @@ -1054,7 +1087,9 @@ class SingleCycleTest(UOWTest): def test_cycle_rowswitch(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper(Node, nodes, properties={"children": relationship(Node)}) + self.mapper_registry.map_imperatively( + Node, nodes, properties={"children": relationship(Node)} + ) sess = fixture_session() n2, n3 = Node(data="n2", children=[]), Node(data="n3", children=[]) @@ -1070,7 +1105,7 @@ class SingleCycleTest(UOWTest): def test_bidirectional_mutations_one(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -1096,7 +1131,7 @@ class SingleCycleTest(UOWTest): def test_bidirectional_multilevel_save(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -1190,7 +1225,9 @@ class SingleCycleTest(UOWTest): def test_singlecycle_flush_size(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper(Node, nodes, properties={"children": relationship(Node)}) + self.mapper_registry.map_imperatively( + Node, nodes, properties={"children": relationship(Node)} + ) with fixture_session() as sess: n1 = Node(data="ed") sess.add(n1) @@ -1224,7 +1261,7 @@ class SingleCycleTest(UOWTest): def test_delete_unloaded_m2o(self): Node, nodes = self.classes.Node, self.tables.nodes - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={"parent": relationship(Node, remote_side=nodes.c.id)}, @@ -1329,7 +1366,7 @@ class SingleCyclePlusAttributeTest( class FooBar(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -1337,7 +1374,7 @@ class SingleCyclePlusAttributeTest( "foobars": relationship(FooBar), }, ) - mapper(FooBar, foobars) + self.mapper_registry.map_imperatively(FooBar, foobars) sess = fixture_session() n1 = Node(data="n1") @@ -1394,7 +1431,7 @@ class SingleCycleM2MTest( class Node(fixtures.ComparableEntity): pass - mapper( + self.mapper_registry.map_imperatively( Node, nodes, properties={ @@ -1541,7 +1578,7 @@ class RowswitchAccountingTest(fixtures.MappedTest): class Child(fixtures.BasicEntity): pass - mapper( + self.mapper_registry.map_imperatively( Parent, parent, properties={ @@ -1553,7 +1590,7 @@ class RowswitchAccountingTest(fixtures.MappedTest): ) }, ) - mapper(Child, child) + self.mapper_registry.map_imperatively(Child, child) return Parent, Child def test_switch_on_update(self): @@ -1638,13 +1675,15 @@ class RowswitchM2OTest(fixtures.MappedTest): class C(fixtures.BasicEntity): pass - mapper( + self.mapper_registry.map_imperatively( A, a, properties={"bs": relationship(B, cascade="all, delete-orphan")}, ) - mapper(B, b, properties={"c": relationship(C)}) - mapper(C, c) + self.mapper_registry.map_imperatively( + B, b, properties={"c": relationship(C)} + ) + self.mapper_registry.map_imperatively(C, c) return A, B, C def test_set_none_replaces_m2o(self): @@ -1742,7 +1781,7 @@ class BasicStaleChecksTest(fixtures.MappedTest): class Child(fixtures.BasicEntity): pass - mapper( + self.mapper_registry.map_imperatively( Parent, parent, properties={ @@ -1755,7 +1794,7 @@ class BasicStaleChecksTest(fixtures.MappedTest): }, confirm_deleted_rows=confirm_deleted_rows, ) - mapper(Child, child) + self.mapper_registry.map_imperatively(Child, child) return Parent, Child @testing.requires.sane_rowcount @@ -2033,7 +2072,7 @@ class BatchInsertsTest(fixtures.MappedTest, testing.AssertsExecutionResults): class T(fixtures.ComparableEntity): pass - mapper(T, t) + self.mapper_registry.map_imperatively(T, t) sess = fixture_session() sess.add_all( [ @@ -2120,7 +2159,7 @@ class LoadersUsingCommittedTest(UOWTest): self.classes.User, ) - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -2132,7 +2171,7 @@ class LoadersUsingCommittedTest(UOWTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) return fixture_session(expire_on_commit=False) def test_before_update_m2o(self): @@ -2271,7 +2310,9 @@ class NoAttrEventInFlushTest(fixtures.MappedTest): def setup_mappers(cls): Thing = cls.classes.Thing - mapper(Thing, cls.tables.test, eager_defaults=True) + cls.mapper_registry.map_imperatively( + Thing, cls.tables.test, eager_defaults=True + ) def test_no_attr_events_flush(self): Thing = self.classes.Thing @@ -2322,11 +2363,15 @@ class EagerDefaultsTest(fixtures.MappedTest): def setup_mappers(cls): Thing = cls.classes.Thing - mapper(Thing, cls.tables.test, eager_defaults=True) + cls.mapper_registry.map_imperatively( + Thing, cls.tables.test, eager_defaults=True + ) Thing2 = cls.classes.Thing2 - mapper(Thing2, cls.tables.test2, eager_defaults=True) + cls.mapper_registry.map_imperatively( + Thing2, cls.tables.test2, eager_defaults=True + ) def test_insert_defaults_present(self): Thing = self.classes.Thing @@ -2834,7 +2879,7 @@ class TypeWoBoolTest(fixtures.MappedTest, testing.AssertsExecutionResults): def setup_mappers(cls): Thing = cls.classes.Thing - mapper(Thing, cls.tables.test) + cls.mapper_registry.map_imperatively(Thing, cls.tables.test) def test_update_against_none(self): Thing = self.classes.Thing @@ -2972,12 +3017,16 @@ class NullEvaluatingTest(fixtures.MappedTest, testing.AssertsExecutionResults): Thing = cls.classes.Thing AltNameThing = cls.classes.AltNameThing - mapper(Thing, cls.tables.test) + cls.mapper_registry.map_imperatively(Thing, cls.tables.test) - mapper(AltNameThing, cls.tables.test_w_renames, column_prefix="_foo_") + cls.mapper_registry.map_imperatively( + AltNameThing, cls.tables.test_w_renames, column_prefix="_foo_" + ) if testing.requires.json_type.enabled: - mapper(cls.classes.JSONThing, cls.tables.test_has_json) + cls.mapper_registry.map_imperatively( + cls.classes.JSONThing, cls.tables.test_has_json + ) def _assert_col(self, name, value): Thing, AltNameThing = self.classes.Thing, self.classes.AltNameThing @@ -3129,7 +3178,7 @@ class EnsureCacheTest(fixtures.FutureEngineMixin, UOWTest): def test_ensure_cache(self): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) cache = {} eq_(len(inspect(User)._compiled_cache), 0) diff --git a/test/orm/test_update_delete.py b/test/orm/test_update_delete.py index 54a9d163dd..d6806d9bdf 100644 --- a/test/orm/test_update_delete.py +++ b/test/orm/test_update_delete.py @@ -17,7 +17,6 @@ from sqlalchemy import text from sqlalchemy import update from sqlalchemy.orm import backref from sqlalchemy.orm import joinedload -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.orm import sessionmaker @@ -87,7 +86,7 @@ class UpdateDeleteTest(fixtures.MappedTest): Address = cls.classes.Address addresses = cls.tables.addresses - mapper( + cls.mapper_registry.map_imperatively( User, users, properties={ @@ -95,7 +94,7 @@ class UpdateDeleteTest(fixtures.MappedTest): "addresses": relationship(Address), }, ) - mapper(Address, addresses) + cls.mapper_registry.map_imperatively(Address, addresses) def test_illegal_eval(self): User = self.classes.User @@ -240,7 +239,9 @@ class UpdateDeleteTest(fixtures.MappedTest): class Foo(object): pass - mapper(Foo, self.tables.users, properties={"uname": synonym("name")}) + self.mapper_registry.map_imperatively( + Foo, self.tables.users, properties={"uname": synonym("name")} + ) s = fixture_session() jill = s.query(Foo).get(3) @@ -253,7 +254,9 @@ class UpdateDeleteTest(fixtures.MappedTest): class Foo(object): pass - mapper(Foo, self.tables.users, properties={"uname": synonym("name")}) + self.mapper_registry.map_imperatively( + Foo, self.tables.users, properties={"uname": synonym("name")} + ) s = fixture_session() jill = s.query(Foo).get(3) @@ -266,7 +269,7 @@ class UpdateDeleteTest(fixtures.MappedTest): class Foo(object): pass - mapper( + self.mapper_registry.map_imperatively( Foo, self.tables.users, properties={"uname": synonym("name"), "ufoo": synonym("uname")}, @@ -1490,8 +1493,8 @@ class UpdateDeleteIgnoresLoadersTest(fixtures.MappedTest): cls.tables.users, ) - mapper(User, users) - mapper( + cls.mapper_registry.map_imperatively(User, users) + cls.mapper_registry.map_imperatively( Document, documents, properties={ @@ -1608,8 +1611,8 @@ class UpdateDeleteFromTest(fixtures.MappedTest): cls.tables.users, ) - mapper(User, users) - mapper( + cls.mapper_registry.map_imperatively(User, users) + cls.mapper_registry.map_imperatively( Document, documents, properties={"user": relationship(User, backref="documents")}, @@ -1790,7 +1793,9 @@ class ExpressionUpdateTest(fixtures.MappedTest): @classmethod def setup_mappers(cls): data = cls.tables.data - mapper(cls.classes.Data, data, properties={"cnt": data.c.counter}) + cls.mapper_registry.map_imperatively( + cls.classes.Data, data, properties={"cnt": data.c.counter} + ) @testing.provide_metadata def test_update_attr_names(self): @@ -2125,7 +2130,7 @@ class LoadFromReturningTest(fixtures.MappedTest): User = cls.classes.User users = cls.tables.users - mapper( + cls.mapper_registry.map_imperatively( User, users, properties={ diff --git a/test/orm/test_utils.py b/test/orm/test_utils.py index 1a7fa636c4..ba16d7e9a5 100644 --- a/test/orm/test_utils.py +++ b/test/orm/test_utils.py @@ -9,7 +9,7 @@ from sqlalchemy import util from sqlalchemy.ext.hybrid import hybrid_method from sqlalchemy.ext.hybrid import hybrid_property from sqlalchemy.orm import aliased -from sqlalchemy.orm import mapper +from sqlalchemy.orm import clear_mappers from sqlalchemy.orm import Session from sqlalchemy.orm import synonym from sqlalchemy.orm import util as orm_util @@ -28,7 +28,7 @@ from test.orm import _fixtures from .inheritance import _poly_fixtures -class AliasedClassTest(fixtures.TestBase, AssertsCompiledSQL): +class AliasedClassTest(fixtures.MappedTest, AssertsCompiledSQL): __dialect__ = "default" def _fixture(self, cls, properties={}): @@ -39,7 +39,10 @@ class AliasedClassTest(fixtures.TestBase, AssertsCompiledSQL): Column("x", Integer), Column("y", Integer), ) - mapper(cls, table, properties=properties) + clear_mappers() + self.mapper_registry.map_imperatively( + cls, table, properties=properties + ) return table def test_simple(self): @@ -469,7 +472,7 @@ class IdentityKeyTest(_fixtures.FixtureTest): def test_identity_key_1(self, ormutil): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) key = ormutil.identity_key(User, [1]) eq_(key, (User, (1,), None)) @@ -480,7 +483,7 @@ class IdentityKeyTest(_fixtures.FixtureTest): def test_identity_key_scalar(self, ormutil): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) key = ormutil.identity_key(User, 1) eq_(key, (User, (1,), None)) @@ -491,7 +494,7 @@ class IdentityKeyTest(_fixtures.FixtureTest): def test_identity_key_2(self, ormutil): users, User = self.tables.users, self.classes.User - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) s = fixture_session() u = User(name="u1") s.add(u) @@ -503,7 +506,7 @@ class IdentityKeyTest(_fixtures.FixtureTest): def test_identity_key_3(self, ormutil): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) row = {users.c.id: 1, users.c.name: "Frank"} key = ormutil.identity_key(User, row=row) @@ -512,7 +515,7 @@ class IdentityKeyTest(_fixtures.FixtureTest): def test_identity_key_token(self): User, users = self.classes.User, self.tables.users - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) key = orm_util.identity_key(User, [1], identity_token="token") eq_(key, (User, (1,), "token")) diff --git a/test/orm/test_validators.py b/test/orm/test_validators.py index 0254aa24d7..1c491e75f6 100644 --- a/test/orm/test_validators.py +++ b/test/orm/test_validators.py @@ -1,6 +1,5 @@ from sqlalchemy import exc from sqlalchemy.orm import collections -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import validates from sqlalchemy.testing import assert_raises @@ -26,7 +25,7 @@ class ValidatorTest(_fixtures.FixtureTest): ne_(name, "fred") return name + " modified" - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) sess = fixture_session() u1 = User(name="ed") eq_(u1.name, "ed modified") @@ -58,8 +57,10 @@ class ValidatorTest(_fixtures.FixtureTest): assert "@" in ad.email_address return ad - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() u1 = User(name="edward") a0 = Address(email_address="noemail") @@ -98,10 +99,10 @@ class ValidatorTest(_fixtures.FixtureTest): def simple_function(self, key, value): return key, value - u_m = mapper( + u_m = self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address)} ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) eq_( dict((k, v[0].__name__) for k, v in list(u_m.validators.items())), @@ -127,8 +128,10 @@ class ValidatorTest(_fixtures.FixtureTest): canary(key, item, remove) return item - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) u1 = User() u1.name = "ed" @@ -180,8 +183,10 @@ class ValidatorTest(_fixtures.FixtureTest): item = Address(email_address=item) return item - mapper(User, users, properties={"addresses": relationship(Address)}) - mapper(Address, addresses) + self.mapper_registry.map_imperatively( + User, users, properties={"addresses": relationship(Address)} + ) + self.mapper_registry.map_imperatively(Address, addresses) u1 = User() u1.addresses.append("e1") @@ -213,7 +218,7 @@ class ValidatorTest(_fixtures.FixtureTest): item = Address(email_address=item) return item - mapper( + self.mapper_registry.map_imperatively( User, users, properties={ @@ -225,7 +230,7 @@ class ValidatorTest(_fixtures.FixtureTest): ) }, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) u1 = User() u1.addresses["e1"] = "e1" @@ -260,7 +265,7 @@ class ValidatorTest(_fixtures.FixtureTest): class User(fixtures.ComparableEntity): sv = validates("name")(SomeValidator()) - mapper(User, users) + self.mapper_registry.map_imperatively(User, users) u1 = User(name="ed") eq_(u1.name, "ed modified") @@ -280,7 +285,7 @@ class ValidatorTest(_fixtures.FixtureTest): exc.InvalidRequestError, "A validation function for mapped attribute " "'name' on mapper Mapper|Foo|users already exists", - mapper, + self.mapper_registry.map_imperatively, Foo, users, ) @@ -298,7 +303,7 @@ class ValidatorTest(_fixtures.FixtureTest): exc.InvalidRequestError, "A validation function for mapped attribute " "'name' on mapper Mapper|Bar|users already exists", - mapper, + self.mapper_registry.map_imperatively, Bar, users, ) @@ -362,12 +367,12 @@ class ValidatorTest(_fixtures.FixtureTest): canary(key, item) return item - mapper( + self.mapper_registry.map_imperatively( User, users, properties={"addresses": relationship(Address, backref="user")}, ) - mapper(Address, addresses) + self.mapper_registry.map_imperatively(Address, addresses) u1 = User() u2 = User() diff --git a/test/orm/test_versioning.py b/test/orm/test_versioning.py index 43a6ea53bb..57fe0b7a2c 100644 --- a/test/orm/test_versioning.py +++ b/test/orm/test_versioning.py @@ -16,7 +16,6 @@ from sqlalchemy import TypeDecorator from sqlalchemy import util from sqlalchemy.orm import configure_mappers from sqlalchemy.orm import exc as orm_exc -from sqlalchemy.orm import mapper from sqlalchemy.orm import relationship from sqlalchemy.orm import Session from sqlalchemy.testing import assert_raises @@ -90,7 +89,7 @@ class NullVersionIdTest(fixtures.MappedTest): def _fixture(self): Foo, version_table = self.classes.Foo, self.tables.version_table - mapper( + self.mapper_registry.map_imperatively( Foo, version_table, version_id_col=version_table.c.version_id, @@ -174,7 +173,9 @@ class VersioningTest(fixtures.MappedTest): def _fixture(self): Foo, version_table = self.classes.Foo, self.tables.version_table - mapper(Foo, version_table, version_id_col=version_table.c.version_id) + self.mapper_registry.map_imperatively( + Foo, version_table, version_id_col=version_table.c.version_id + ) s1 = fixture_session() return s1 @@ -405,7 +406,7 @@ class VersioningTest(fixtures.MappedTest): Foo = self.classes.Foo version_table = self.tables.version_table - mapper(Foo, version_table) + self.mapper_registry.map_imperatively(Foo, version_table) s1 = fixture_session() f1s1 = Foo(value="f1 value", version_id=1) s1.add(f1s1) @@ -503,7 +504,7 @@ class VersioningTest(fixtures.MappedTest): Foo, version_table = self.classes.Foo, self.tables.version_table s1 = fixture_session(autocommit=False) - mapper(Foo, version_table) + self.mapper_registry.map_imperatively(Foo, version_table) f1s1 = Foo(value="foo", version_id=0) s1.add(f1s1) s1.commit() @@ -634,7 +635,7 @@ class VersionOnPostUpdateTest(fixtures.MappedTest): Node = self.classes.Node node = self.tables.node - mapper( + self.mapper_registry.map_imperatively( Node, node, properties={ @@ -847,13 +848,13 @@ class NoBumpOnRelationshipTest(fixtures.MappedTest): A, B = self.classes("A", "B") a, b = self.tables("a", "b") - mapper( + self.mapper_registry.map_imperatively( A, a, properties={"bs": relationship(B, backref="a")}, version_id_col=a.c.version_id, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) self._run_test() @@ -861,14 +862,14 @@ class NoBumpOnRelationshipTest(fixtures.MappedTest): A, B = self.classes("A", "B") a, b = self.tables("a", "b") - mapper( + self.mapper_registry.map_imperatively( A, a, properties={"bs": relationship(B, backref="a")}, version_id_col=a.c.version_id, version_id_generator=lambda num: (num or 0) + 1, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) self._run_test() @@ -876,14 +877,14 @@ class NoBumpOnRelationshipTest(fixtures.MappedTest): A, B = self.classes("A", "B") a, b = self.tables("a", "b") - mapper( + self.mapper_registry.map_imperatively( A, a, properties={"bs": relationship(B, backref="a")}, version_id_col=a.c.version_id, version_id_generator=False, ) - mapper(B, b) + self.mapper_registry.map_imperatively(B, b) self._run_test(False) @@ -918,7 +919,9 @@ class ColumnTypeTest(fixtures.MappedTest): def _fixture(self): Foo, version_table = self.classes.Foo, self.tables.version_table - mapper(Foo, version_table, version_id_col=version_table.c.version_id) + self.mapper_registry.map_imperatively( + Foo, version_table, version_id_col=version_table.c.version_id + ) s1 = fixture_session() return s1 @@ -970,7 +973,7 @@ class RowSwitchTest(fixtures.MappedTest): def setup_mappers(cls): p, c, C, P = cls.tables.p, cls.tables.c, cls.classes.C, cls.classes.P - mapper( + cls.mapper_registry.map_imperatively( P, p, version_id_col=p.c.version_id, @@ -980,7 +983,9 @@ class RowSwitchTest(fixtures.MappedTest): ) }, ) - mapper(C, c, version_id_col=c.c.version_id) + cls.mapper_registry.map_imperatively( + C, c, version_id_col=c.c.version_id + ) def test_row_switch(self): P = self.classes.P @@ -1053,7 +1058,7 @@ class AlternateGeneratorTest(fixtures.MappedTest): def setup_mappers(cls): p, c, C, P = cls.tables.p, cls.tables.c, cls.classes.C, cls.classes.P - mapper( + cls.mapper_registry.map_imperatively( P, p, version_id_col=p.c.version_id, @@ -1064,7 +1069,7 @@ class AlternateGeneratorTest(fixtures.MappedTest): ) }, ) - mapper( + cls.mapper_registry.map_imperatively( C, c, version_id_col=c.c.version_id, @@ -1181,8 +1186,10 @@ class PlainInheritanceTest(fixtures.MappedTest): self.classes.Sub, ) - mapper(Base, base, version_id_col=base.c.version_id) - mapper(Sub, sub, inherits=Base) + self.mapper_registry.map_imperatively( + Base, base, version_id_col=base.c.version_id + ) + self.mapper_registry.map_imperatively(Sub, sub, inherits=Base) s = fixture_session() s1 = Sub(data="b", sub_data="s") @@ -1241,8 +1248,10 @@ class InheritanceTwoVersionIdsTest(fixtures.MappedTest): self.classes.Sub, ) - mapper(Base, base, version_id_col=base.c.version_id) - mapper(Sub, sub, inherits=Base) + self.mapper_registry.map_imperatively( + Base, base, version_id_col=base.c.version_id + ) + self.mapper_registry.map_imperatively(Sub, sub, inherits=Base) session = fixture_session() b1 = Base(data="b1") @@ -1260,8 +1269,10 @@ class InheritanceTwoVersionIdsTest(fixtures.MappedTest): self.classes.Sub, ) - mapper(Base, base, version_id_col=base.c.version_id) - mapper(Sub, sub, inherits=Base) + self.mapper_registry.map_imperatively( + Base, base, version_id_col=base.c.version_id + ) + self.mapper_registry.map_imperatively(Sub, sub, inherits=Base) session = fixture_session() s1 = Sub(data="s1", sub_data="s1") @@ -1282,8 +1293,10 @@ class InheritanceTwoVersionIdsTest(fixtures.MappedTest): self.classes.Sub, ) - mapper(Base, base) - mapper(Sub, sub, inherits=Base, version_id_col=sub.c.version_id) + self.mapper_registry.map_imperatively(Base, base) + self.mapper_registry.map_imperatively( + Sub, sub, inherits=Base, version_id_col=sub.c.version_id + ) session = fixture_session() s1 = Sub(data="s1", sub_data="s1") @@ -1304,7 +1317,9 @@ class InheritanceTwoVersionIdsTest(fixtures.MappedTest): self.classes.Sub, ) - mapper(Base, base, version_id_col=base.c.version_id) + self.mapper_registry.map_imperatively( + Base, base, version_id_col=base.c.version_id + ) assert_raises_message( exc.SAWarning, @@ -1313,7 +1328,7 @@ class InheritanceTwoVersionIdsTest(fixtures.MappedTest): "automatically populate the inherited versioning column. " "version_id_col should only be specified on " "the base-most mapper that includes versioning.", - mapper, + self.mapper_registry.map_imperatively, Sub, sub, inherits=Base, @@ -1375,7 +1390,7 @@ class ServerVersioningTest(fixtures.MappedTest): def _fixture(self, expire_on_commit=True, eager_defaults=False): Foo, version_table = self.classes.Foo, self.tables.version_table - mapper( + self.mapper_registry.map_imperatively( Foo, version_table, version_id_col=version_table.c.version_id, @@ -1689,7 +1704,7 @@ class ManualVersionTest(fixtures.MappedTest): @classmethod def setup_mappers(cls): - mapper( + cls.mapper_registry.map_imperatively( cls.classes.A, cls.tables.a, version_id_col=cls.tables.a.c.vid, @@ -1803,14 +1818,16 @@ class ManualInheritanceVersionTest(fixtures.MappedTest): @classmethod def setup_mappers(cls): - mapper( + cls.mapper_registry.map_imperatively( cls.classes.A, cls.tables.a, version_id_col=cls.tables.a.c.vid, version_id_generator=False, ) - mapper(cls.classes.B, cls.tables.b, inherits=cls.classes.A) + cls.mapper_registry.map_imperatively( + cls.classes.B, cls.tables.b, inherits=cls.classes.A + ) def test_no_increment(self): sess = fixture_session() @@ -1872,7 +1889,9 @@ class VersioningMappedSelectTest(fixtures.MappedTest): .alias("current_table") ) - mapper(Foo, current, version_id_col=version_table.c.version_id) + self.mapper_registry.map_imperatively( + Foo, current, version_id_col=version_table.c.version_id + ) s1 = fixture_session() return s1 @@ -1885,7 +1904,7 @@ class VersioningMappedSelectTest(fixtures.MappedTest): .alias("current_table") ) - mapper( + self.mapper_registry.map_imperatively( Foo, current, version_id_col=version_table.c.version_id, -- 2.47.3