]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
remove more bound metadata
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 4 Jan 2021 20:18:25 +0000 (15:18 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 6 Jan 2021 04:46:02 +0000 (23:46 -0500)
in Iae6ab95938a7e92b6d42086aec534af27b5577d3 I missed
that the "bind" was being stuck onto the MetaData in
TablesTest, which led thousands of ORM tests to still use
bound metadata.  Keep looking for bound metadata.

standardize all ORM tests on a single means of getting a
Session when the Session API isn't the thing we are directly
testing, using a new function fixture_session() that replaces
create_session() and uses modern defaults.

Change-Id: Iaf71206e9ee568151496d8bc213a069504bf65ef

98 files changed:
lib/sqlalchemy/sql/schema.py
lib/sqlalchemy/testing/fixtures.py
lib/sqlalchemy/testing/suite/test_rowcount.py
lib/sqlalchemy/testing/warnings.py
test/aaa_profiling/test_memusage.py
test/aaa_profiling/test_orm.py
test/aaa_profiling/test_resultset.py
test/dialect/mssql/test_query.py
test/dialect/oracle/test_types.py
test/engine/test_deprecations.py
test/engine/test_pool.py
test/ext/declarative/test_inheritance.py
test/ext/test_associationproxy.py
test/ext/test_baked.py
test/ext/test_hybrid.py
test/ext/test_mutable.py
test/ext/test_serializer.py
test/orm/declarative/test_basic.py
test/orm/declarative/test_concurrency.py
test/orm/declarative/test_inheritance.py
test/orm/declarative/test_mixin.py
test/orm/declarative/test_reflection.py
test/orm/inheritance/test_abc_inheritance.py
test/orm/inheritance/test_abc_polymorphic.py
test/orm/inheritance/test_assorted_poly.py
test/orm/inheritance/test_basic.py
test/orm/inheritance/test_concrete.py
test/orm/inheritance/test_magazine.py
test/orm/inheritance/test_manytomany.py
test/orm/inheritance/test_poly_linked_list.py
test/orm/inheritance/test_poly_loading.py
test/orm/inheritance/test_poly_persistence.py
test/orm/inheritance/test_polymorphic_rel.py
test/orm/inheritance/test_productspec.py
test/orm/inheritance/test_relationship.py
test/orm/inheritance/test_selects.py
test/orm/inheritance/test_single.py
test/orm/inheritance/test_with_poly.py
test/orm/test_ac_relationships.py
test/orm/test_association.py
test/orm/test_assorted_eager.py
test/orm/test_backref_mutations.py
test/orm/test_bind.py
test/orm/test_bulk.py
test/orm/test_bundle.py
test/orm/test_cache_key.py
test/orm/test_cascade.py
test/orm/test_collection.py
test/orm/test_compile.py
test/orm/test_composites.py
test/orm/test_core_compilation.py
test/orm/test_cycles.py
test/orm/test_default_strategies.py
test/orm/test_defaults.py
test/orm/test_deferred.py
test/orm/test_deprecations.py
test/orm/test_dynamic.py
test/orm/test_eager_relations.py
test/orm/test_evaluator.py
test/orm/test_events.py
test/orm/test_expire.py
test/orm/test_froms.py
test/orm/test_generative.py
test/orm/test_hasparent.py
test/orm/test_immediate_load.py
test/orm/test_inspect.py
test/orm/test_instrumentation.py
test/orm/test_joins.py
test/orm/test_lambdas.py
test/orm/test_lazy_relations.py
test/orm/test_loading.py
test/orm/test_lockmode.py
test/orm/test_manytomany.py
test/orm/test_mapper.py
test/orm/test_merge.py
test/orm/test_naturalpks.py
test/orm/test_of_type.py
test/orm/test_onetoone.py
test/orm/test_options.py
test/orm/test_pickled.py
test/orm/test_query.py
test/orm/test_relationships.py
test/orm/test_scoping.py
test/orm/test_selectable.py
test/orm/test_selectin_relations.py
test/orm/test_session.py
test/orm/test_subquery_relations.py
test/orm/test_sync.py
test/orm/test_transaction.py
test/orm/test_unitofwork.py
test/orm/test_unitofworkv2.py
test/orm/test_update_delete.py
test/orm/test_utils.py
test/orm/test_validators.py
test/orm/test_versioning.py
test/sql/test_functions.py
test/sql/test_query.py
test/sql/test_sequences.py

index 0ffb6bcc3b2568e398015e1f37469c9834d5770c..36d69456ef2f63b0dccd43de7a2b0ce2cb5c3017 100644 (file)
@@ -2685,9 +2685,12 @@ class Sequence(IdentityOptions, roles.StatementRole, DefaultGenerator):
         for this :class:`.Sequence` within any SQL expression.
 
         """
-        return util.preloaded.sql_functions.func.next_value(
-            self, bind=self.bind
-        )
+        if self.bind:
+            return util.preloaded.sql_functions.func.next_value(
+                self, bind=self.bind
+            )
+        else:
+            return util.preloaded.sql_functions.func.next_value(self)
 
     def _set_parent(self, column, **kw):
         super(Sequence, self)._set_parent(column)
index 209ea415e29478d5a79df09c47d10656f56ece90..ac4d3d8fa037cf055079f2818d25aedebdd01150 100644 (file)
@@ -176,7 +176,6 @@ class TablesTest(TestBase):
 
         cls.bind = cls.setup_bind()
         cls._tables_metadata = sa.MetaData()
-        cls._tables_metadata.bind = cls.bind
 
     @classmethod
     def _setup_once_inserts(cls):
@@ -354,6 +353,12 @@ def create_session(**kw):
     return sa.orm.Session(config.db, **kw)
 
 
+def fixture_session(**kw):
+    kw.setdefault("autoflush", True)
+    kw.setdefault("expire_on_commit", True)
+    return sa.orm.Session(config.db, **kw)
+
+
 class ORMTest(_ORMTest, TestBase):
     pass
 
index f3f902abd26133b97e34cd9e98f9fdf0f09e1016..bb344237a27735f8b9c887ef4c585547a21e2987 100644 (file)
@@ -1,6 +1,7 @@
 from sqlalchemy import bindparam
 from sqlalchemy import Column
 from sqlalchemy import Integer
+from sqlalchemy import select
 from sqlalchemy import Sequence
 from sqlalchemy import String
 from sqlalchemy import Table
@@ -51,12 +52,14 @@ class RowCountTest(fixtures.TablesTest):
             [{"name": n, "department": d} for n, d in data],
         )
 
-    def test_basic(self):
+    def test_basic(self, connection):
         employees_table = self.tables.employees
-        s = employees_table.select()
-        r = s.execute().fetchall()
+        s = select(
+            employees_table.c.name, employees_table.c.department
+        ).order_by(employees_table.c.employee_id)
+        rows = connection.execute(s).fetchall()
 
-        assert len(r) == len(self.data)
+        eq_(rows, self.data)
 
     def test_update_rowcount1(self, connection):
         employees_table = self.tables.employees
index c948ba66f53d093c1750306f983aec1c38568619..1b078a26344ffb7a221179e08e4e1d0718d1a623 100644 (file)
@@ -62,11 +62,6 @@ def setup_filters():
         r"The Connection.connect\(\) method is considered legacy",
         #        r".*DefaultGenerator.execute\(\)",
         #
-        # bound metadaa
-        #
-        r"The ``bind`` argument for schema methods that invoke SQL ",
-        r"The Function.bind argument",
-        r"The select.bind argument",
         #
         # result sets
         #
index 7858e697d9345a90a7162dda64094263c821c57e..75a4f51cf8d439561e273120e2ec20a7957ccd19 100644 (file)
@@ -38,6 +38,7 @@ from sqlalchemy.sql.visitors import replacement_traverse
 from sqlalchemy.testing import engines
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from sqlalchemy.testing.util import gc_collect
@@ -535,7 +536,7 @@ class MemUsageWBackendTest(EnsureZeroed):
 
     @testing.emits_warning("Compiled statement cache for.*")
     def test_many_updates(self):
-        metadata = MetaData(self.engine)
+        metadata = MetaData()
 
         wide_table = Table(
             "t",
@@ -551,8 +552,8 @@ class MemUsageWBackendTest(EnsureZeroed):
 
         mapper(Wide, wide_table, _compiled_cache_size=10)
 
-        metadata.create_all()
-        with Session() as session:
+        metadata.create_all(self.engine)
+        with Session(self.engine) as session:
             w1 = Wide()
             session.add(w1)
             session.commit()
@@ -561,7 +562,7 @@ class MemUsageWBackendTest(EnsureZeroed):
 
         @profile_memory()
         def go():
-            with Session() as session:
+            with Session(self.engine) as session:
                 w1 = session.query(Wide).first()
                 x = counter[0]
                 dec = 10
@@ -578,7 +579,7 @@ class MemUsageWBackendTest(EnsureZeroed):
         try:
             go()
         finally:
-            metadata.drop_all()
+            metadata.drop_all(self.engine)
 
     @testing.requires.savepoints
     @testing.provide_metadata
@@ -1031,7 +1032,7 @@ class MemUsageWBackendTest(EnsureZeroed):
 
             t2_mapper = mapper(T2, t2)
             t1_mapper.add_property("bar", relationship(t2_mapper))
-            s1 = Session()
+            s1 = fixture_session()
             # this causes the path_registry to be invoked
             s1.query(t1_mapper)._compile_context()
 
@@ -1151,7 +1152,7 @@ class CycleTest(_fixtures.FixtureTest):
         User, Address = self.classes("User", "Address")
         configure_mappers()
 
-        s = Session()
+        s = fixture_session()
 
         @assert_cycles()
         def go():
@@ -1163,7 +1164,7 @@ class CycleTest(_fixtures.FixtureTest):
         User, Address = self.classes("User", "Address")
         configure_mappers()
 
-        s = Session()
+        s = fixture_session()
 
         @assert_cycles()
         def go():
@@ -1223,7 +1224,7 @@ class CycleTest(_fixtures.FixtureTest):
         User, Address = self.classes("User", "Address")
         configure_mappers()
 
-        s = Session()
+        s = fixture_session()
 
         u1 = aliased(User)
 
@@ -1248,7 +1249,7 @@ class CycleTest(_fixtures.FixtureTest):
         User, Address = self.classes("User", "Address")
         configure_mappers()
 
-        s = Session()
+        s = fixture_session()
 
         def generate():
             objects = s.query(User).filter(User.id == 7).all()
@@ -1264,7 +1265,7 @@ class CycleTest(_fixtures.FixtureTest):
     def test_orm_objects_from_query_w_selectinload(self):
         User, Address = self.classes("User", "Address")
 
-        s = Session()
+        s = fixture_session()
 
         def generate():
             objects = s.query(User).options(selectinload(User.addresses)).all()
@@ -1328,7 +1329,7 @@ class CycleTest(_fixtures.FixtureTest):
     def test_orm_objects_from_query_w_joinedload(self):
         User, Address = self.classes("User", "Address")
 
-        s = Session()
+        s = fixture_session()
 
         def generate():
             objects = s.query(User).options(joinedload(User.addresses)).all()
@@ -1344,7 +1345,7 @@ class CycleTest(_fixtures.FixtureTest):
     def test_query_filtered(self):
         User, Address = self.classes("User", "Address")
 
-        s = Session()
+        s = fixture_session()
 
         @assert_cycles()
         def go():
@@ -1355,7 +1356,7 @@ class CycleTest(_fixtures.FixtureTest):
     def test_query_joins(self):
         User, Address = self.classes("User", "Address")
 
-        s = Session()
+        s = fixture_session()
 
         # cycles here are due to ClauseElement._cloned_set, others
         # as of cache key
@@ -1368,7 +1369,7 @@ class CycleTest(_fixtures.FixtureTest):
     def test_query_joinedload(self):
         User, Address = self.classes("User", "Address")
 
-        s = Session()
+        s = fixture_session()
 
         def generate():
             s.query(User).options(joinedload(User.addresses)).all()
@@ -1388,7 +1389,7 @@ class CycleTest(_fixtures.FixtureTest):
 
         @assert_cycles()
         def go():
-            str(users.join(addresses))
+            str(users.join(addresses).compile(testing.db))
 
         go()
 
@@ -1400,7 +1401,7 @@ class CycleTest(_fixtures.FixtureTest):
         @assert_cycles(7)
         def go():
             s = select(users).select_from(users.join(addresses))
-            state = s._compile_state_factory(s, s.compile())
+            state = s._compile_state_factory(s, s.compile(testing.db))
             state.froms
 
         go()
@@ -1410,7 +1411,7 @@ class CycleTest(_fixtures.FixtureTest):
 
         @assert_cycles()
         def go():
-            str(orm_join(User, Address, User.addresses))
+            str(orm_join(User, Address, User.addresses).compile(testing.db))
 
         go()
 
@@ -1418,7 +1419,7 @@ class CycleTest(_fixtures.FixtureTest):
         User, Address = self.classes("User", "Address")
         configure_mappers()
 
-        s = Session()
+        s = fixture_session()
 
         @assert_cycles()
         def go():
@@ -1430,7 +1431,7 @@ class CycleTest(_fixtures.FixtureTest):
         User, Address = self.classes("User", "Address")
         configure_mappers()
 
-        s = Session()
+        s = fixture_session()
 
         @assert_cycles()
         def go():
@@ -1442,7 +1443,7 @@ class CycleTest(_fixtures.FixtureTest):
         User, Address = self.classes("User", "Address")
         configure_mappers()
 
-        s = Session()
+        s = fixture_session()
 
         stmt = s.query(User).join(User.addresses).statement
 
@@ -1460,7 +1461,7 @@ class CycleTest(_fixtures.FixtureTest):
         User, Address = self.classes("User", "Address")
         configure_mappers()
 
-        s = Session()
+        s = fixture_session()
 
         stmt = s.query(User).join(User.addresses).statement
 
@@ -1475,7 +1476,7 @@ class CycleTest(_fixtures.FixtureTest):
         User, Address = self.classes("User", "Address")
         configure_mappers()
 
-        s = Session()
+        s = fixture_session()
 
         stmt = s.query(User).join(User.addresses).statement
 
@@ -1491,7 +1492,7 @@ class CycleTest(_fixtures.FixtureTest):
         User, Address = self.classes("User", "Address")
         configure_mappers()
 
-        s = Session()
+        s = fixture_session()
 
         stmt = s.query(User).join(User.addresses).statement
 
@@ -1507,7 +1508,7 @@ class CycleTest(_fixtures.FixtureTest):
         User, Address = self.classes("User", "Address")
         configure_mappers()
 
-        s = Session()
+        s = fixture_session()
 
         stmt = s.query(User).join(User.addresses).statement
 
index 5476729612bcfff15159a7cf37918bc2015c2f2d..f163078d80925170dfcc049754279465f87be523 100644 (file)
@@ -20,6 +20,7 @@ from sqlalchemy.orm import sessionmaker
 from sqlalchemy.testing import config
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import profiling
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -100,8 +101,8 @@ class MergeTest(NoCache, fixtures.MappedTest):
     def test_merge_no_load(self):
         Parent = self.classes.Parent
 
-        sess = sessionmaker()()
-        sess2 = sessionmaker()()
+        sess = fixture_session()
+        sess2 = fixture_session()
         p1 = sess.query(Parent).get(1)
         p1.children
 
@@ -129,8 +130,8 @@ class MergeTest(NoCache, fixtures.MappedTest):
     def test_merge_load(self):
         Parent = self.classes.Parent
 
-        sess = sessionmaker()()
-        sess2 = sessionmaker()()
+        sess = fixture_session()
+        sess2 = fixture_session()
         p1 = sess.query(Parent).get(1)
         p1.children
 
@@ -228,7 +229,7 @@ class LoadManyToOneFromIdentityTest(NoCache, fixtures.MappedTest):
     def test_many_to_one_load_no_identity(self):
         Parent = self.classes.Parent
 
-        sess = Session()
+        sess = fixture_session()
         parents = sess.query(Parent).all()
 
         @profiling.function_call_count(variance=0.2)
@@ -241,7 +242,7 @@ class LoadManyToOneFromIdentityTest(NoCache, fixtures.MappedTest):
     def test_many_to_one_load_identity(self):
         Parent, Child = self.classes.Parent, self.classes.Child
 
-        sess = Session()
+        sess = fixture_session()
         parents = sess.query(Parent).all()
         children = sess.query(Child).all()
         children  # strong reference
@@ -335,7 +336,7 @@ class MergeBackrefsTest(NoCache, fixtures.MappedTest):
             self.classes.C,
             self.classes.D,
         )
-        s = Session()
+        s = fixture_session()
         for a in [
             A(
                 id=i,
@@ -398,7 +399,7 @@ class DeferOptionsTest(NoCache, fixtures.MappedTest):
     def test_baseline(self):
         # as of [ticket:2778], this is at 39025
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         s.query(A).all()
 
     @profiling.function_call_count(variance=0.10)
@@ -406,7 +407,7 @@ class DeferOptionsTest(NoCache, fixtures.MappedTest):
         # with [ticket:2778], this goes from 50805 to 32817,
         # as it should be fewer function calls than the baseline
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         s.query(A).options(
             *[defer(letter) for letter in ["x", "y", "z", "p", "q", "r"]]
         ).all()
@@ -546,7 +547,7 @@ class SessionTest(NoCache, fixtures.MappedTest):
             Parent(children=[Child() for j in range(10)]) for i in range(10)
         ]
 
-        sess = Session()
+        sess = fixture_session()
         sess.add_all(obj)
         sess.flush()
 
@@ -588,7 +589,7 @@ class QueryTest(NoCache, fixtures.MappedTest):
 
     def _fixture(self):
         Parent = self.classes.Parent
-        sess = Session()
+        sess = fixture_session()
         sess.add_all(
             [
                 Parent(data1="d1", data2="d2", data3="d3", data4="d4")
@@ -601,7 +602,7 @@ class QueryTest(NoCache, fixtures.MappedTest):
     def test_query_cols(self):
         Parent = self.classes.Parent
         self._fixture()
-        sess = Session()
+        sess = fixture_session()
 
         # warm up cache
         for attr in [Parent.data1, Parent.data2, Parent.data3, Parent.data4]:
@@ -695,7 +696,7 @@ class SelectInEagerLoadTest(NoCache, fixtures.MappedTest):
     def test_round_trip_results(self):
         A, B, C = self.classes("A", "B", "C")
 
-        sess = Session()
+        sess = fixture_session()
 
         q = sess.query(A).options(selectinload(A.bs).selectinload(B.cs))
 
@@ -835,7 +836,7 @@ class JoinedEagerLoadTest(NoCache, fixtures.MappedTest):
     def test_build_query(self):
         A, B, C, D, E, F, G = self.classes("A", "B", "C", "D", "E", "F", "G")
 
-        sess = Session()
+        sess = fixture_session()
 
         @profiling.function_call_count()
         def go():
@@ -1122,7 +1123,7 @@ class BranchedOptionTest(NoCache, fixtures.MappedTest):
             base.joinedload(B.fs),
         ]
 
-        q = Session().query(A)
+        q = fixture_session().query(A)
 
         context = q._compile_state()
 
@@ -1149,7 +1150,7 @@ class BranchedOptionTest(NoCache, fixtures.MappedTest):
             base.joinedload(B.fs),
         ]
 
-        q = Session().query(A)
+        q = fixture_session().query(A)
 
         context = q._compile_state()
 
@@ -1201,7 +1202,7 @@ class AnnotatedOverheadTest(NoCache, fixtures.MappedTest):
 
     def test_no_bundle(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
 
         q = s.query(A).select_from(A)
 
@@ -1215,7 +1216,7 @@ class AnnotatedOverheadTest(NoCache, fixtures.MappedTest):
     def test_no_entity_wo_annotations(self):
         A = self.classes.A
         a = self.tables.a
-        s = Session()
+        s = fixture_session()
 
         q = s.query(a.c.data).select_from(A)
 
@@ -1228,7 +1229,7 @@ class AnnotatedOverheadTest(NoCache, fixtures.MappedTest):
 
     def test_no_entity_w_annotations(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         q = s.query(A.data).select_from(A)
 
         @profiling.function_call_count(warmup=1)
@@ -1240,7 +1241,7 @@ class AnnotatedOverheadTest(NoCache, fixtures.MappedTest):
 
     def test_entity_w_annotations(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         q = s.query(A, A.data).select_from(A)
 
         @profiling.function_call_count(warmup=1)
@@ -1253,7 +1254,7 @@ class AnnotatedOverheadTest(NoCache, fixtures.MappedTest):
     def test_entity_wo_annotations(self):
         A = self.classes.A
         a = self.tables.a
-        s = Session()
+        s = fixture_session()
         q = s.query(A, a.c.data).select_from(A)
 
         @profiling.function_call_count(warmup=1)
@@ -1266,7 +1267,7 @@ class AnnotatedOverheadTest(NoCache, fixtures.MappedTest):
     def test_no_bundle_wo_annotations(self):
         A = self.classes.A
         a = self.tables.a
-        s = Session()
+        s = fixture_session()
         q = s.query(a.c.data, A).select_from(A)
 
         @profiling.function_call_count(warmup=1)
@@ -1278,7 +1279,7 @@ class AnnotatedOverheadTest(NoCache, fixtures.MappedTest):
 
     def test_no_bundle_w_annotations(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         q = s.query(A.data, A).select_from(A)
 
         @profiling.function_call_count(warmup=1)
@@ -1291,7 +1292,7 @@ class AnnotatedOverheadTest(NoCache, fixtures.MappedTest):
     def test_bundle_wo_annotation(self):
         A = self.classes.A
         a = self.tables.a
-        s = Session()
+        s = fixture_session()
         q = s.query(Bundle("ASdf", a.c.data), A).select_from(A)
 
         @profiling.function_call_count(warmup=1)
@@ -1303,7 +1304,7 @@ class AnnotatedOverheadTest(NoCache, fixtures.MappedTest):
 
     def test_bundle_w_annotation(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         q = s.query(Bundle("ASdf", A.data), A).select_from(A)
 
         @profiling.function_call_count(warmup=1)
index c48ff53d4a65577912b15c44aef57ceb871e3fd1..ae0ea49921535731acfa5368914a8e40a842b3b8 100644 (file)
@@ -166,10 +166,10 @@ class ResultSetTest(fixtures.TablesTest, AssertsExecutionResults):
                 # seem to be handling this for a profile that skips
                 result.close()
 
-    def test_contains_doesnt_compile(self):
+    def test_contains_doesnt_compile(self, connection):
         t, t2 = self.tables("table1", "table2")
 
-        row = t.select().execute().first()
+        row = connection.execute(t.select()).first()
         c1 = Column("some column", Integer) + Column(
             "some other column", Integer
         )
index ea0bfa4d2708e65e11865ae31383c199e721340c..cdb37cc61571b9e28ce18013e6af2bc0a76d7ca7 100644 (file)
@@ -567,12 +567,11 @@ class MatchTest(fixtures.TablesTest, AssertsCompiledSQL):
             )
         ).fetchall()
         eq_([5], [r.id for r in results1])
-        results2 = (
-            matchtable.select()
-            .where(matchtable.c.title.match("python AND nutshell"))
-            .execute()
-            .fetchall()
-        )
+        results2 = connection.execute(
+            matchtable.select().where(
+                matchtable.c.title.match("python AND nutshell")
+            )
+        ).fetchall()
         eq_([5], [r.id for r in results2])
 
     def test_match_across_joins(self, connection):
index 60f47bf30e8809fa6aa2083a9199353a4deac317..f008ea01928b74a3fc0f5bfebc32a0061ecaaba2 100644 (file)
@@ -986,23 +986,21 @@ class LOBFetchTest(fixtures.TablesTest):
                 self.data,
             )
 
-    def test_large_stream(self):
+    def test_large_stream(self, connection):
         binary_table = self.tables.binary_table
-        result = (
-            binary_table.select()
-            .order_by(binary_table.c.id)
-            .execute()
-            .fetchall()
-        )
+        result = connection.execute(
+            binary_table.select().order_by(binary_table.c.id)
+        ).fetchall()
         eq_(result, [(i, self.stream) for i in range(1, 11)])
 
     def test_large_stream_single_arraysize(self):
         binary_table = self.tables.binary_table
         eng = testing_engine(options={"arraysize": 1})
-        result = eng.execute(
-            binary_table.select().order_by(binary_table.c.id)
-        ).fetchall()
-        eq_(result, [(i, self.stream) for i in range(1, 11)])
+        with eng.connect() as conn:
+            result = conn.execute(
+                binary_table.select().order_by(binary_table.c.id)
+            ).fetchall()
+            eq_(result, [(i, self.stream) for i in range(1, 11)])
 
 
 class EuroNumericTest(fixtures.TestBase):
index 28623161475eb4c0843300e243b1930d1f47cfa2..a18cf756b1a682b5097f7897702e09d4f8a83461 100644 (file)
@@ -69,25 +69,31 @@ class ConnectionlessDeprecationTest(fixtures.TestBase):
         metadata = MetaData()
         Table("test_table", metadata, Column("foo", Integer))
         for meth in [metadata.create_all, metadata.drop_all]:
-            assert_raises_message(
-                exc.UnboundExecutionError,
-                "MetaData object is not bound to an Engine or Connection.",
-                meth,
-            )
+            with testing.expect_deprecated_20(
+                "The ``bind`` argument for schema methods that invoke SQL"
+            ):
+                assert_raises_message(
+                    exc.UnboundExecutionError,
+                    "MetaData object is not bound to an Engine or Connection.",
+                    meth,
+                )
 
     def test_bind_create_drop_err_table(self):
         metadata = MetaData()
         table = Table("test_table", metadata, Column("foo", Integer))
 
         for meth in [table.create, table.drop]:
-            assert_raises_message(
-                exc.UnboundExecutionError,
-                (
-                    "Table object 'test_table' is not bound to an Engine or "
-                    "Connection."
-                ),
-                meth,
-            )
+            with testing.expect_deprecated_20(
+                "The ``bind`` argument for schema methods that invoke SQL"
+            ):
+                assert_raises_message(
+                    exc.UnboundExecutionError,
+                    (
+                        "Table object 'test_table' is not bound to an "
+                        "Engine or Connection."
+                    ),
+                    meth,
+                )
 
     def test_bind_create_drop_bound(self):
 
@@ -106,16 +112,28 @@ class ConnectionlessDeprecationTest(fixtures.TestBase):
                 table = Table("test_table", metadata, Column("foo", Integer))
                 metadata.bind = bind
                 assert metadata.bind is table.bind is bind
-                metadata.create_all()
+                with testing.expect_deprecated_20(
+                    "The ``bind`` argument for schema methods that invoke SQL"
+                ):
+                    metadata.create_all()
 
                 with testing.expect_deprecated(
                     r"The Table.exists\(\) method is deprecated and will "
                     "be removed in a future release."
                 ):
                     assert table.exists()
-                metadata.drop_all()
-                table.create()
-                table.drop()
+                with testing.expect_deprecated_20(
+                    "The ``bind`` argument for schema methods that invoke SQL"
+                ):
+                    metadata.drop_all()
+                with testing.expect_deprecated_20(
+                    "The ``bind`` argument for schema methods that invoke SQL"
+                ):
+                    table.create()
+                with testing.expect_deprecated_20(
+                    "The ``bind`` argument for schema methods that invoke SQL"
+                ):
+                    table.drop()
                 with testing.expect_deprecated(
                     r"The Table.exists\(\) method is deprecated and will "
                     "be removed in a future release."
@@ -135,15 +153,27 @@ class ConnectionlessDeprecationTest(fixtures.TestBase):
                 metadata.bind = bind
 
                 assert metadata.bind is table.bind is bind
-                metadata.create_all()
+                with testing.expect_deprecated_20(
+                    "The ``bind`` argument for schema methods that invoke SQL"
+                ):
+                    metadata.create_all()
                 with testing.expect_deprecated(
                     r"The Table.exists\(\) method is deprecated and will "
                     "be removed in a future release."
                 ):
                     assert table.exists()
-                metadata.drop_all()
-                table.create()
-                table.drop()
+                with testing.expect_deprecated_20(
+                    "The ``bind`` argument for schema methods that invoke SQL"
+                ):
+                    metadata.drop_all()
+                with testing.expect_deprecated_20(
+                    "The ``bind`` argument for schema methods that invoke SQL"
+                ):
+                    table.create()
+                with testing.expect_deprecated_20(
+                    "The ``bind`` argument for schema methods that invoke SQL"
+                ):
+                    table.drop()
                 with testing.expect_deprecated(
                     r"The Table.exists\(\) method is deprecated and will "
                     "be removed in a future release."
@@ -166,11 +196,27 @@ class ConnectionlessDeprecationTest(fixtures.TestBase):
                         "test_table", metadata, Column("foo", Integer)
                     )
                     assert metadata.bind is table.bind is bind
-                    metadata.create_all()
+                    with testing.expect_deprecated_20(
+                        "The ``bind`` argument for schema methods "
+                        "that invoke SQL"
+                    ):
+                        metadata.create_all()
                     is_true(inspect(bind).has_table(table.name))
-                    metadata.drop_all()
-                    table.create()
-                    table.drop()
+                    with testing.expect_deprecated_20(
+                        "The ``bind`` argument for schema methods "
+                        "that invoke SQL"
+                    ):
+                        metadata.drop_all()
+                    with testing.expect_deprecated_20(
+                        "The ``bind`` argument for schema methods "
+                        "that invoke SQL"
+                    ):
+                        table.create()
+                    with testing.expect_deprecated_20(
+                        "The ``bind`` argument for schema methods "
+                        "that invoke SQL"
+                    ):
+                        table.drop()
                     is_false(inspect(bind).has_table(table.name))
             finally:
                 if isinstance(bind, engine.Connection):
index 1a49cf4b92fa227780bf9fb87f989ea80921226c..550fedb8e6efcf702edb3ce731b0bbb67fa6e1b3 100644 (file)
@@ -101,7 +101,7 @@ class PoolTest(PoolTestBase):
     def test_cursor_iterable(self):
         conn = testing.db.raw_connection()
         cursor = conn.cursor()
-        cursor.execute(str(select([1], bind=testing.db)))
+        cursor.execute(str(select(1).compile(testing.db)))
         expected = [(1,)]
         for row in cursor:
             eq_(row, expected.pop(0))
index 77d4a80fe0d92015fc2392898d926985b0391fcb..2b80b753ebe6115884b96fe6c70d16367e09e3f0 100644 (file)
@@ -10,7 +10,6 @@ from sqlalchemy.ext.declarative import has_inherited_table
 from sqlalchemy.orm import clear_mappers
 from sqlalchemy.orm import close_all_sessions
 from sqlalchemy.orm import configure_mappers
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import exc as orm_exc
 from sqlalchemy.orm import polymorphic_union
 from sqlalchemy.orm import relationship
@@ -19,6 +18,7 @@ from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import mock
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from test.orm.test_events import _RemoveListeners
@@ -34,7 +34,7 @@ class DeclarativeTestBase(fixtures.TestBase, testing.AssertsExecutionResults):
     def teardown(self):
         close_all_sessions()
         clear_mappers()
-        Base.metadata.drop_all()
+        Base.metadata.drop_all(testing.db)
 
 
 class ConcreteInhTest(
@@ -49,8 +49,8 @@ class ConcreteInhTest(
         polymorphic=True,
         explicit_type=False,
     ):
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         e1 = Engineer(name="dilbert", primary_language="java")
         e2 = Engineer(name="wally", primary_language="c++")
         m1 = Manager(name="dogbert", golf_swing="fore!")
@@ -342,7 +342,7 @@ class ConcreteInhTest(
                 "concrete": True,
             }
 
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
         sess = Session()
         sess.add(Engineer(name="d"))
         sess.commit()
@@ -552,7 +552,7 @@ class ConcreteExtensionConfigTest(
             c_data = Column(String(50))
             __mapper_args__ = {"polymorphic_identity": "c", "concrete": True}
 
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
         sess = Session()
         sess.add_all(
             [
index 026b3cd03e400517c2503e9fcf4c75fc3a24cb60..b1f5cc956f00c307af276fb5f4911b2662c72a73 100644 (file)
@@ -21,7 +21,6 @@ from sqlalchemy.orm import clear_mappers
 from sqlalchemy.orm import collections
 from sqlalchemy.orm import composite
 from sqlalchemy.orm import configure_mappers
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
 from sqlalchemy.orm import Session
@@ -34,6 +33,7 @@ from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
 from sqlalchemy.testing.assertions import expect_warnings
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.mock import call
 from sqlalchemy.testing.mock import Mock
 from sqlalchemy.testing.schema import Column
@@ -257,7 +257,7 @@ class _CollectionOperations(fixtures.TestBase):
         metadata.create_all(testing.db)
 
         self.metadata = metadata
-        self.session = create_session(testing.db)
+        self.session = fixture_session()
         self.Parent, self.Child = Parent, Child
 
     def teardown(self):
@@ -943,7 +943,7 @@ class ProxyFactoryTest(ListTest):
         metadata.create_all(testing.db)
 
         self.metadata = metadata
-        self.session = create_session(testing.db)
+        self.session = fixture_session()
         self.Parent, self.Child = Parent, Child
 
     def test_sequence_ops(self):
@@ -1004,7 +1004,7 @@ class ScalarTest(fixtures.TestBase):
         mapper(Child, children_table)
 
         metadata.create_all(testing.db)
-        session = create_session(testing.db)
+        session = fixture_session()
 
         def roundtrip(obj):
             if obj not in session:
@@ -1193,7 +1193,7 @@ class LazyLoadTest(fixtures.TestBase):
         metadata.create_all(testing.db)
 
         self.metadata = metadata
-        self.session = create_session(testing.db)
+        self.session = fixture_session()
         self.Parent, self.Child = Parent, Child
         self.table = parents_table
 
@@ -1369,7 +1369,7 @@ class ReconstitutionTest(fixtures.MappedTest):
             properties=dict(children=relationship(Child)),
         )
         mapper(Child, self.tables.children)
-        session = create_session()
+        session = fixture_session()
 
         def add_child(parent_name, child_name):
             parent = session.query(Parent).filter_by(name=parent_name).one()
@@ -3367,7 +3367,7 @@ class ProxyHybridTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
     def test_comparator_ambiguous(self):
         A, B = self.classes("A", "B")
 
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(A).filter(A.b_data.any()),
             "SELECT a.id AS a_id FROM a WHERE EXISTS "
@@ -3377,7 +3377,7 @@ class ProxyHybridTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
     def test_explicit_expr(self):
         (C,) = self.classes("C")
 
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(C).filter_by(attr=5),
             "SELECT c.id AS c_id, c.b_id AS c_b_id FROM c WHERE EXISTS "
index eff3ccdaef2c26d75abec2a8503d8194a22a34e2..71fabc629f5ddea6bf4bbb8bba8c2edb2a8b2ba5 100644 (file)
@@ -18,6 +18,7 @@ from sqlalchemy.testing import eq_
 from sqlalchemy.testing import is_
 from sqlalchemy.testing import is_not
 from sqlalchemy.testing import mock
+from sqlalchemy.testing.fixtures import fixture_session
 from test.orm import _fixtures
 
 
@@ -42,7 +43,7 @@ class StateChangeTest(BakedTest):
 
     def test_initial_key(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
 
         def l1():
             return session.query(User)
@@ -53,7 +54,7 @@ class StateChangeTest(BakedTest):
 
     def test_inplace_add(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
 
         def l1():
             return session.query(User)
@@ -73,7 +74,7 @@ class StateChangeTest(BakedTest):
 
     def test_inplace_add_operator(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
 
         def l1():
             return session.query(User)
@@ -90,7 +91,7 @@ class StateChangeTest(BakedTest):
 
     def test_chained_add(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
 
         def l1():
             return session.query(User)
@@ -108,7 +109,7 @@ class StateChangeTest(BakedTest):
 
     def test_chained_add_operator(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
 
         def l1():
             return session.query(User)
@@ -138,7 +139,7 @@ class LikeQueryTest(BakedTest):
         bq = self.bakery(lambda s: s.query(User))
         bq += lambda q: q.filter(User.name == "asdf")
 
-        eq_(bq(Session()).first(), None)
+        eq_(bq(fixture_session()).first(), None)
 
     def test_first_multiple_result(self):
         User = self.classes.User
@@ -146,7 +147,7 @@ class LikeQueryTest(BakedTest):
         bq = self.bakery(lambda s: s.query(User.id))
         bq += lambda q: q.filter(User.name.like("%ed%")).order_by(User.id)
 
-        eq_(bq(Session()).first(), (8,))
+        eq_(bq(fixture_session()).first(), (8,))
 
     def test_one_or_none_no_result(self):
         User = self.classes.User
@@ -154,7 +155,7 @@ class LikeQueryTest(BakedTest):
         bq = self.bakery(lambda s: s.query(User))
         bq += lambda q: q.filter(User.name == "asdf")
 
-        eq_(bq(Session()).one_or_none(), None)
+        eq_(bq(fixture_session()).one_or_none(), None)
 
     def test_one_or_none_result(self):
         User = self.classes.User
@@ -162,7 +163,7 @@ class LikeQueryTest(BakedTest):
         bq = self.bakery(lambda s: s.query(User))
         bq += lambda q: q.filter(User.name == "ed")
 
-        u1 = bq(Session()).one_or_none()
+        u1 = bq(fixture_session()).one_or_none()
         eq_(u1.name, "ed")
 
     def test_one_or_none_multiple_result(self):
@@ -174,7 +175,7 @@ class LikeQueryTest(BakedTest):
         assert_raises_message(
             orm_exc.MultipleResultsFound,
             "Multiple rows were found when one or none was required",
-            bq(Session()).one_or_none,
+            bq(fixture_session()).one_or_none,
         )
 
     def test_one_no_result(self):
@@ -186,7 +187,7 @@ class LikeQueryTest(BakedTest):
         assert_raises_message(
             orm_exc.NoResultFound,
             "No row was found when one was required",
-            bq(Session()).one,
+            bq(fixture_session()).one,
         )
 
     def test_one_result(self):
@@ -195,7 +196,7 @@ class LikeQueryTest(BakedTest):
         bq = self.bakery(lambda s: s.query(User))
         bq += lambda q: q.filter(User.name == "ed")
 
-        u1 = bq(Session()).one()
+        u1 = bq(fixture_session()).one()
         eq_(u1.name, "ed")
 
     def test_one_multiple_result(self):
@@ -207,7 +208,7 @@ class LikeQueryTest(BakedTest):
         assert_raises_message(
             orm_exc.MultipleResultsFound,
             "Multiple rows were found when exactly one was required",
-            bq(Session()).one,
+            bq(fixture_session()).one,
         )
 
     def test_get(self):
@@ -215,7 +216,7 @@ class LikeQueryTest(BakedTest):
 
         bq = self.bakery(lambda s: s.query(User))
 
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             u1 = bq(sess).get(7)
@@ -242,7 +243,7 @@ class LikeQueryTest(BakedTest):
 
         bq = self.bakery(lambda s: s.query(User.id))
 
-        sess = Session()
+        sess = fixture_session()
 
         bq += lambda q: q.filter(User.id == 7)
 
@@ -253,7 +254,7 @@ class LikeQueryTest(BakedTest):
 
         bq = self.bakery(lambda s: s.query(User))
 
-        sess = Session()
+        sess = fixture_session()
 
         eq_(bq(sess).count(), 4)
 
@@ -272,7 +273,7 @@ class LikeQueryTest(BakedTest):
 
         bq = self.bakery(lambda s: s.query(User))
 
-        sess = Session()
+        sess = fixture_session()
 
         eq_(bq(sess).count(), 4)
 
@@ -306,7 +307,7 @@ class LikeQueryTest(BakedTest):
 
         bq = self.bakery(lambda s: s.query(AddressUser))
 
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             u1 = bq(sess).get((10, None))
@@ -329,7 +330,7 @@ class LikeQueryTest(BakedTest):
         bq = self.bakery(lambda s: s.query(User))
 
         for i in range(5):
-            sess = Session()
+            sess = fixture_session()
             u1 = bq(sess).get(7)
             eq_(u1.name, "jack")
             sess.close()
@@ -343,7 +344,7 @@ class LikeQueryTest(BakedTest):
         del inspect(User).__dict__["_get_clause"]
 
         for i in range(5):
-            sess = Session()
+            sess = fixture_session()
             u1 = bq(sess).get(7)
             eq_(u1.name, "jack")
             sess.close()
@@ -463,7 +464,7 @@ class ResultTest(BakedTest):
         bq2 = self.bakery(fn, 8)
 
         for i in range(3):
-            session = Session(autocommit=True)
+            session = fixture_session()
             eq_(bq1(session).all(), [(7,)])
 
             eq_(bq2(session).all(), [(8,)])
@@ -476,7 +477,7 @@ class ResultTest(BakedTest):
         )
 
         for i in range(3):
-            session = Session(autocommit=True)
+            session = fixture_session()
             eq_(
                 bq(session).all(),
                 [(7, "jack"), (8, "ed"), (9, "fred"), (10, "chuck")],
@@ -490,7 +491,7 @@ class ResultTest(BakedTest):
         )
 
         bq += lambda q: q.limit(bindparam("limit")).offset(bindparam("offset"))
-        session = Session(autocommit=True)
+        session = fixture_session()
 
         for i in range(4):
             for limit, offset, exp in [
@@ -522,7 +523,7 @@ class ResultTest(BakedTest):
 
             bq += fn2
 
-            sess = Session(autocommit=True, enable_baked_queries=False)
+            sess = fixture_session(autocommit=True, enable_baked_queries=False)
             eq_(bq.add_criteria(fn3)(sess).params(id=7).all(), [(7, "jack")])
 
         eq_(
@@ -562,7 +563,7 @@ class ResultTest(BakedTest):
 
             bq += fn2
 
-            sess = Session(autocommit=True)
+            sess = fixture_session()
             eq_(
                 bq.spoil(full=True).add_criteria(fn3)(sess).params(id=7).all(),
                 [(7, "jack")],
@@ -609,7 +610,7 @@ class ResultTest(BakedTest):
 
             bq += fn2
 
-            sess = Session(autocommit=True)
+            sess = fixture_session()
             eq_(
                 bq.spoil().add_criteria(fn3)(sess).params(id=7).all(),
                 [(7, "jack")],
@@ -639,7 +640,7 @@ class ResultTest(BakedTest):
         bq += lambda q: q._from_self().with_entities(func.count(User.id))
 
         for i in range(3):
-            session = Session(autocommit=True)
+            session = fixture_session()
             eq_(bq(session).all(), [(4,)])
 
     def test_conditional_step(self):
@@ -674,7 +675,7 @@ class ResultTest(BakedTest):
                     bq += lambda q: q._from_self().with_entities(
                         func.count(User.id)
                     )
-                sess = Session(autocommit=True)
+                sess = fixture_session()
                 result = bq(sess).all()
                 if cond4:
                     if cond1:
@@ -729,7 +730,7 @@ class ResultTest(BakedTest):
                     if cond1
                     else (lambda q: q.filter(User.name == "jack"))
                 )  # noqa
-                sess = Session(autocommit=True)
+                sess = fixture_session()
                 result = bq(sess).all()
 
                 if cond1:
@@ -754,7 +755,7 @@ class ResultTest(BakedTest):
         main_bq += lambda q: q.filter(sub_bq.to_query(q).exists())
         main_bq += lambda q: q.order_by(Address.id)
 
-        sess = Session()
+        sess = fixture_session()
         result = main_bq(sess).all()
         eq_(result, [(2,), (3,), (4,)])
 
@@ -775,7 +776,7 @@ class ResultTest(BakedTest):
         )
         main_bq += lambda q: q.order_by(Address.id)
 
-        sess = Session()
+        sess = fixture_session()
         result = main_bq(sess).all()
         eq_(result, [(2, "ed"), (3, "ed"), (4, "ed")])
 
@@ -840,7 +841,7 @@ class ResultTest(BakedTest):
                 print("HI----")
                 bq = base_bq._clone()
 
-                sess = Session()
+                sess = fixture_session()
 
                 if cond1:
                     bq += lambda q: q.filter(User.name == "jack")
@@ -908,7 +909,7 @@ class ResultTest(BakedTest):
         bq += lambda q: q.options(subqueryload(User.addresses))
         bq += lambda q: q.order_by(User.id)
         bq += lambda q: q.filter(User.name == bindparam("name"))
-        sess = Session()
+        sess = fixture_session()
 
         def set_params(q):
             return q.params(name="jack")
@@ -950,7 +951,7 @@ class ResultTest(BakedTest):
         bq += lambda q: q.options(subqueryload(User.addresses))
         bq += lambda q: q.order_by(User.id)
         bq += lambda q: q.filter(User.name == bindparam("name"))
-        sess = Session()
+        sess = fixture_session()
 
         def set_params(q):
             return q.params(name="jack")
@@ -1007,7 +1008,7 @@ class CustomIntegrationTest(testing.AssertsCompiledSQL, BakedTest):
                 cache[cache_key] = retval = createfunc().freeze()
                 return retval()
 
-        s1 = Session(query_cls=CachingQuery)
+        s1 = fixture_session(query_cls=CachingQuery)
 
         @event.listens_for(s1, "do_orm_execute", retval=True)
         def do_orm_execute(orm_context):
index fbac35f7eeabd6cfdd72acfb0a2068ccdb3a52e6..048a8b52d16a715831bbdb2bcc671f82756805ee 100644 (file)
@@ -17,6 +17,7 @@ from sqlalchemy.testing import AssertsCompiledSQL
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 
 
@@ -70,14 +71,14 @@ class PropertyComparatorTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_query(self):
         A = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(A.value), "SELECT a.value AS a_value FROM a"
         )
 
     def test_aliased_query(self):
         A = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(aliased(A).value),
             "SELECT a_1.value AS a_1_value FROM a AS a_1",
@@ -85,7 +86,7 @@ class PropertyComparatorTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_aliased_filter(self):
         A = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(aliased(A)).filter_by(value="foo"),
             "SELECT a_1.value AS a_1_value, a_1.id AS a_1_id "
@@ -183,7 +184,7 @@ class PropertyExpressionTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_any(self):
         A, B = self._relationship_fixture()
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(B).filter(B.as_.any(value=5)),
             "SELECT b.id AS b_id FROM b WHERE EXISTS "
@@ -200,7 +201,7 @@ class PropertyExpressionTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_query(self):
         A = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(A).filter_by(value="foo"),
             "SELECT a.value AS a_value, a.id AS a_id "
@@ -209,7 +210,7 @@ class PropertyExpressionTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_aliased_query(self):
         A = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(aliased(A)).filter_by(value="foo"),
             "SELECT a_1.value AS a_1_value, a_1.id AS a_1_id "
@@ -489,7 +490,7 @@ class MethodExpressionTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_query(self):
         A = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(A).filter(A.value(5) == "foo"),
             "SELECT a.value AS a_value, a.id AS a_id "
@@ -498,7 +499,7 @@ class MethodExpressionTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_aliased_query(self):
         A = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         a1 = aliased(A)
         self.assert_compile(
             sess.query(a1).filter(a1.value(5) == "foo"),
@@ -508,7 +509,7 @@ class MethodExpressionTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_query_col(self):
         A = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(A.value(5)),
             "SELECT foo(a.value, :foo_1) + :foo_2 AS anon_1 FROM a",
@@ -516,7 +517,7 @@ class MethodExpressionTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_aliased_query_col(self):
         A = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(aliased(A).value(5)),
             "SELECT foo(a_1.value, :foo_1) + :foo_2 AS anon_1 FROM a AS a_1",
@@ -610,7 +611,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
     def test_evaluate_hybrid_attr_indirect(self):
         Person = self.classes.Person
 
-        s = Session()
+        s = fixture_session()
         jill = s.query(Person).get(3)
 
         s.query(Person).update(
@@ -621,7 +622,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
     def test_evaluate_hybrid_attr_plain(self):
         Person = self.classes.Person
 
-        s = Session()
+        s = fixture_session()
         jill = s.query(Person).get(3)
 
         s.query(Person).update(
@@ -632,7 +633,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
     def test_fetch_hybrid_attr_indirect(self):
         Person = self.classes.Person
 
-        s = Session()
+        s = fixture_session()
         jill = s.query(Person).get(3)
 
         s.query(Person).update(
@@ -643,7 +644,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
     def test_fetch_hybrid_attr_plain(self):
         Person = self.classes.Person
 
-        s = Session()
+        s = fixture_session()
         jill = s.query(Person).get(3)
 
         s.query(Person).update(
@@ -654,7 +655,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
     def test_evaluate_hybrid_attr_w_update_expr(self):
         Person = self.classes.Person
 
-        s = Session()
+        s = fixture_session()
         jill = s.query(Person).get(3)
 
         s.query(Person).update(
@@ -665,7 +666,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
     def test_fetch_hybrid_attr_w_update_expr(self):
         Person = self.classes.Person
 
-        s = Session()
+        s = fixture_session()
         jill = s.query(Person).get(3)
 
         s.query(Person).update(
@@ -676,7 +677,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
     def test_evaluate_hybrid_attr_indirect_w_update_expr(self):
         Person = self.classes.Person
 
-        s = Session()
+        s = fixture_session()
         jill = s.query(Person).get(3)
 
         s.query(Person).update(
@@ -813,7 +814,7 @@ class SpecialObjectTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_query_one(self):
         BankAccount, Amount = self.BankAccount, self.Amount
-        session = Session()
+        session = fixture_session()
 
         query = session.query(BankAccount).filter(
             BankAccount.balance == Amount(10000, "cad")
@@ -829,7 +830,7 @@ class SpecialObjectTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_query_two(self):
         BankAccount, Amount = self.BankAccount, self.Amount
-        session = Session()
+        session = fixture_session()
 
         # alternatively we can do the calc on the DB side.
         query = (
@@ -858,7 +859,7 @@ class SpecialObjectTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_query_three(self):
         BankAccount = self.BankAccount
-        session = Session()
+        session = fixture_session()
 
         query = session.query(BankAccount).filter(
             BankAccount.balance.as_currency("cad")
@@ -879,7 +880,7 @@ class SpecialObjectTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_query_four(self):
         BankAccount = self.BankAccount
-        session = Session()
+        session = fixture_session()
 
         # 4c. query all amounts, converting to "CAD" on the DB side
         query = session.query(BankAccount.balance.as_currency("cad").amount)
@@ -892,7 +893,7 @@ class SpecialObjectTest(fixtures.TestBase, AssertsCompiledSQL):
 
     def test_query_five(self):
         BankAccount = self.BankAccount
-        session = Session()
+        session = fixture_session()
 
         # 4d. average balance in EUR
         query = session.query(func.avg(BankAccount.balance.as_currency("eur")))
index acb0ad490d55595a18f6d9c9c2b8a0563a6e7cc4..eba2ac0cbb5343ee745440c3dbaa2257c923126a 100644 (file)
@@ -15,7 +15,6 @@ from sqlalchemy.orm import attributes
 from sqlalchemy.orm import column_property
 from sqlalchemy.orm import composite
 from sqlalchemy.orm import mapper
-from sqlalchemy.orm import Session
 from sqlalchemy.orm.instrumentation import ClassManager
 from sqlalchemy.orm.mapper import Mapper
 from sqlalchemy.testing import assert_raises
@@ -23,6 +22,7 @@ from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import mock
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from sqlalchemy.testing.util import picklers
@@ -106,7 +106,7 @@ class _MutableDictTestBase(_MutableDictTestFixture):
         mapper(Foo, foo)
 
     def test_coerce_none(self):
-        sess = Session()
+        sess = fixture_session()
         f1 = Foo(data=None)
         sess.add(f1)
         sess.commit()
@@ -121,7 +121,7 @@ class _MutableDictTestBase(_MutableDictTestFixture):
         )
 
     def test_in_place_mutation(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data={"a": "b"})
         sess.add(f1)
@@ -149,7 +149,7 @@ class _MutableDictTestBase(_MutableDictTestFixture):
         )
 
     def test_clear(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data={"a": "b"})
         sess.add(f1)
@@ -161,7 +161,7 @@ class _MutableDictTestBase(_MutableDictTestFixture):
         eq_(f1.data, {})
 
     def test_update(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data={"a": "b"})
         sess.add(f1)
@@ -173,7 +173,7 @@ class _MutableDictTestBase(_MutableDictTestFixture):
         eq_(f1.data, {"a": "z"})
 
     def test_pop(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data={"a": "b", "c": "d"})
         sess.add(f1)
@@ -187,7 +187,7 @@ class _MutableDictTestBase(_MutableDictTestFixture):
         eq_(f1.data, {"c": "d"})
 
     def test_pop_default(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data={"a": "b", "c": "d"})
         sess.add(f1)
@@ -200,7 +200,7 @@ class _MutableDictTestBase(_MutableDictTestFixture):
         eq_(f1.data, {"c": "d"})
 
     def test_popitem(self):
-        sess = Session()
+        sess = fixture_session()
 
         orig = {"a": "b", "c": "d"}
 
@@ -220,7 +220,7 @@ class _MutableDictTestBase(_MutableDictTestFixture):
         eq_(f1.data, orig)
 
     def test_setdefault(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data={"a": "b"})
         sess.add(f1)
@@ -237,7 +237,7 @@ class _MutableDictTestBase(_MutableDictTestFixture):
         eq_(f1.data, {"a": "b", "c": "d"})
 
     def test_replace(self):
-        sess = Session()
+        sess = fixture_session()
         f1 = Foo(data={"a": "b"})
         sess.add(f1)
         sess.flush()
@@ -247,7 +247,7 @@ class _MutableDictTestBase(_MutableDictTestFixture):
         eq_(f1.data, {"b": "c"})
 
     def test_replace_itself_still_ok(self):
-        sess = Session()
+        sess = fixture_session()
         f1 = Foo(data={"a": "b"})
         sess.add(f1)
         sess.flush()
@@ -258,7 +258,7 @@ class _MutableDictTestBase(_MutableDictTestFixture):
         eq_(f1.data, {"a": "b", "b": "c"})
 
     def test_pickle_parent(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data={"a": "b"})
         sess.add(f1)
@@ -267,14 +267,14 @@ class _MutableDictTestBase(_MutableDictTestFixture):
         sess.close()
 
         for loads, dumps in picklers():
-            sess = Session()
+            sess = fixture_session()
             f2 = loads(dumps(f1))
             sess.add(f2)
             f2.data["a"] = "c"
             assert f2 in sess.dirty
 
     def test_unrelated_flush(self):
-        sess = Session()
+        sess = fixture_session()
         f1 = Foo(data={"a": "b"}, unrelated_data="unrelated")
         sess.add(f1)
         sess.flush()
@@ -285,7 +285,7 @@ class _MutableDictTestBase(_MutableDictTestFixture):
         eq_(f1.data["a"], "c")
 
     def _test_non_mutable(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(non_mutable_data={"a": "b"})
         sess.add(f1)
@@ -328,7 +328,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         mapper(Foo, foo)
 
     def test_coerce_none(self):
-        sess = Session()
+        sess = fixture_session()
         f1 = Foo(data=None)
         sess.add(f1)
         sess.commit()
@@ -343,7 +343,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         )
 
     def test_in_place_mutation(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 2])
         sess.add(f1)
@@ -355,7 +355,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         eq_(f1.data, [3, 2])
 
     def test_in_place_slice_mutation(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 2, 3, 4])
         sess.add(f1)
@@ -367,7 +367,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         eq_(f1.data, [1, 5, 6, 4])
 
     def test_del_slice(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 2, 3, 4])
         sess.add(f1)
@@ -382,7 +382,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         if not hasattr(list, "clear"):
             # py2 list doesn't have 'clear'
             return
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 2])
         sess.add(f1)
@@ -394,7 +394,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         eq_(f1.data, [])
 
     def test_pop(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 2, 3])
         sess.add(f1)
@@ -409,7 +409,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         eq_(f1.data, [2])
 
     def test_append(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 2])
         sess.add(f1)
@@ -421,7 +421,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         eq_(f1.data, [1, 2, 5])
 
     def test_extend(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 2])
         sess.add(f1)
@@ -433,7 +433,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         eq_(f1.data, [1, 2, 5])
 
     def test_operator_extend(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 2])
         sess.add(f1)
@@ -445,7 +445,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         eq_(f1.data, [1, 2, 5])
 
     def test_insert(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 2])
         sess.add(f1)
@@ -457,7 +457,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         eq_(f1.data, [1, 5, 2])
 
     def test_remove(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 2, 3])
         sess.add(f1)
@@ -469,7 +469,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         eq_(f1.data, [1, 3])
 
     def test_sort(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 3, 2])
         sess.add(f1)
@@ -481,7 +481,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         eq_(f1.data, [1, 2, 3])
 
     def test_sort_w_key(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 3, 2])
         sess.add(f1)
@@ -493,7 +493,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         eq_(f1.data, [3, 2, 1])
 
     def test_sort_w_reverse_kwarg(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 3, 2])
         sess.add(f1)
@@ -505,7 +505,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         eq_(f1.data, [3, 2, 1])
 
     def test_reverse(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 3, 2])
         sess.add(f1)
@@ -517,7 +517,7 @@ class _MutableListTestBase(_MutableListTestFixture):
         eq_(f1.data, [2, 3, 1])
 
     def test_pickle_parent(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=[1, 2])
         sess.add(f1)
@@ -526,14 +526,14 @@ class _MutableListTestBase(_MutableListTestFixture):
         sess.close()
 
         for loads, dumps in picklers():
-            sess = Session()
+            sess = fixture_session()
             f2 = loads(dumps(f1))
             sess.add(f2)
             f2.data[0] = 3
             assert f2 in sess.dirty
 
     def test_unrelated_flush(self):
-        sess = Session()
+        sess = fixture_session()
         f1 = Foo(data=[1, 2], unrelated_data="unrelated")
         sess.add(f1)
         sess.flush()
@@ -635,7 +635,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         mapper(Foo, foo)
 
     def test_coerce_none(self):
-        sess = Session()
+        sess = fixture_session()
         f1 = Foo(data=None)
         sess.add(f1)
         sess.commit()
@@ -650,7 +650,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         )
 
     def test_clear(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1, 2]))
         sess.add(f1)
@@ -662,7 +662,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         eq_(f1.data, set())
 
     def test_pop(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1]))
         sess.add(f1)
@@ -676,7 +676,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         eq_(f1.data, set())
 
     def test_add(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1, 2]))
         sess.add(f1)
@@ -688,7 +688,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         eq_(f1.data, set([1, 2, 5]))
 
     def test_update(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1, 2]))
         sess.add(f1)
@@ -700,7 +700,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         eq_(f1.data, set([1, 2, 5]))
 
     def test_binary_update(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1, 2]))
         sess.add(f1)
@@ -712,7 +712,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         eq_(f1.data, set([1, 2, 5]))
 
     def test_intersection_update(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1, 2]))
         sess.add(f1)
@@ -724,7 +724,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         eq_(f1.data, set([2]))
 
     def test_binary_intersection_update(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1, 2]))
         sess.add(f1)
@@ -736,7 +736,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         eq_(f1.data, set([2]))
 
     def test_difference_update(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1, 2]))
         sess.add(f1)
@@ -748,7 +748,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         eq_(f1.data, set([1]))
 
     def test_operator_difference_update(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1, 2]))
         sess.add(f1)
@@ -760,7 +760,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         eq_(f1.data, set([1]))
 
     def test_symmetric_difference_update(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1, 2]))
         sess.add(f1)
@@ -772,7 +772,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         eq_(f1.data, set([1, 5]))
 
     def test_binary_symmetric_difference_update(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1, 2]))
         sess.add(f1)
@@ -784,7 +784,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         eq_(f1.data, set([1, 5]))
 
     def test_remove(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1, 2, 3]))
         sess.add(f1)
@@ -796,7 +796,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         eq_(f1.data, set([1, 3]))
 
     def test_discard(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1, 2, 3]))
         sess.add(f1)
@@ -813,7 +813,7 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         eq_(f1.data, set([1, 3]))
 
     def test_pickle_parent(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=set([1, 2]))
         sess.add(f1)
@@ -822,14 +822,14 @@ class _MutableSetTestBase(_MutableSetTestFixture):
         sess.close()
 
         for loads, dumps in picklers():
-            sess = Session()
+            sess = fixture_session()
             f2 = loads(dumps(f1))
             sess.add(f2)
             f2.data.add(3)
             assert f2 in sess.dirty
 
     def test_unrelated_flush(self):
-        sess = Session()
+        sess = fixture_session()
         f1 = Foo(data=set([1, 2]), unrelated_data="unrelated")
         sess.add(f1)
         sess.flush()
@@ -873,7 +873,7 @@ class MutableColumnDefaultTest(_MutableDictTestFixture, fixtures.MappedTest):
     def test_evt_on_flush_refresh(self):
         # test for #3427
 
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo()
         sess.add(f1)
@@ -1080,7 +1080,7 @@ class MutableAssocWithAttrInheritTest(
         MutableDict.associate_with_attribute(Foo.data)
 
     def test_in_place_mutation(self):
-        sess = Session()
+        sess = fixture_session()
 
         f1 = SubFoo(data={"a": "b"})
         sess.add(f1)
@@ -1092,7 +1092,7 @@ class MutableAssocWithAttrInheritTest(
         eq_(f1.data, {"a": "c"})
 
     def test_replace(self):
-        sess = Session()
+        sess = fixture_session()
         f1 = SubFoo(data={"a": "b"})
         sess.add(f1)
         sess.flush()
@@ -1213,7 +1213,7 @@ class CustomMutableAssociationScalarJSONTest(
         pass
 
     def test_coerce(self):
-        sess = Session()
+        sess = fixture_session()
         f1 = Foo(data={"a": "b"})
         sess.add(f1)
         sess.flush()
@@ -1283,7 +1283,7 @@ class MutableCompositeColumnDefaultTest(
     def test_evt_on_flush_refresh(self):
         # this still worked prior to #3427 being fixed in any case
 
-        sess = Session()
+        sess = fixture_session()
 
         f1 = Foo(data=self.Point(None, None))
         sess.add(f1)
@@ -1325,7 +1325,7 @@ class MutableCompositesTest(_CompositeTestBase, fixtures.MappedTest):
         )
 
     def test_in_place_mutation(self):
-        sess = Session()
+        sess = fixture_session()
         d = Point(3, 4)
         f1 = Foo(data=d)
         sess.add(f1)
@@ -1337,7 +1337,7 @@ class MutableCompositesTest(_CompositeTestBase, fixtures.MappedTest):
         eq_(f1.data, Point(3, 5))
 
     def test_pickle_of_parent(self):
-        sess = Session()
+        sess = fixture_session()
         d = Point(3, 4)
         f1 = Foo(data=d)
         sess.add(f1)
@@ -1348,14 +1348,14 @@ class MutableCompositesTest(_CompositeTestBase, fixtures.MappedTest):
         sess.close()
 
         for loads, dumps in picklers():
-            sess = Session()
+            sess = fixture_session()
             f2 = loads(dumps(f1))
             sess.add(f2)
             f2.data.y = 12
             assert f2 in sess.dirty
 
     def test_set_none(self):
-        sess = Session()
+        sess = fixture_session()
         f1 = Foo(data=None)
         sess.add(f1)
         sess.commit()
@@ -1377,7 +1377,7 @@ class MutableCompositesTest(_CompositeTestBase, fixtures.MappedTest):
         )
 
     def test_unrelated_flush(self):
-        sess = Session()
+        sess = fixture_session()
         f1 = Foo(data=Point(3, 4), unrelated_data="unrelated")
         sess.add(f1)
         sess.flush()
@@ -1407,7 +1407,7 @@ class MutableCompositeCallableTest(_CompositeTestBase, fixtures.MappedTest):
         )
 
     def test_basic(self):
-        sess = Session()
+        sess = fixture_session()
         f1 = Foo(data=Point(3, 4))
         sess.add(f1)
         sess.flush()
@@ -1442,7 +1442,7 @@ class MutableCompositeCustomCoerceTest(
         eq_(f.data, Point(3, 4))
 
     def test_round_trip_ok(self):
-        sess = Session()
+        sess = fixture_session()
         f = Foo()
         f.data = (3, 4)
 
@@ -1483,7 +1483,7 @@ class MutableInheritedCompositesTest(_CompositeTestBase, fixtures.MappedTest):
         mapper(SubFoo, subfoo, inherits=Foo)
 
     def test_in_place_mutation_subclass(self):
-        sess = Session()
+        sess = fixture_session()
         d = Point(3, 4)
         f1 = SubFoo(data=d)
         sess.add(f1)
@@ -1495,7 +1495,7 @@ class MutableInheritedCompositesTest(_CompositeTestBase, fixtures.MappedTest):
         eq_(f1.data, Point(3, 5))
 
     def test_pickle_of_parent_subclass(self):
-        sess = Session()
+        sess = fixture_session()
         d = Point(3, 4)
         f1 = SubFoo(data=d)
         sess.add(f1)
@@ -1506,7 +1506,7 @@ class MutableInheritedCompositesTest(_CompositeTestBase, fixtures.MappedTest):
         sess.close()
 
         for loads, dumps in picklers():
-            sess = Session()
+            sess = fixture_session()
             f2 = loads(dumps(f1))
             sess.add(f2)
             f2.data.y = 12
index 6d7b8da33cca468da6a41e3d2f08b3c79be84a7e..12e4255fa784f8d43bd14d4cd6a0df9273323fbb 100644 (file)
@@ -67,7 +67,7 @@ class SerializeTest(AssertsCompiledSQL, fixtures.MappedTest):
     @classmethod
     def setup_mappers(cls):
         global Session
-        Session = scoped_session(sessionmaker())
+        Session = scoped_session(sessionmaker(testing.db))
         mapper(
             User,
             users,
@@ -141,9 +141,8 @@ class SerializeTest(AssertsCompiledSQL, fixtures.MappedTest):
             serializer.dumps(expr, -1), users.metadata, None
         )
         eq_(str(expr), str(re_expr))
-        assert re_expr.bind is testing.db
         eq_(
-            re_expr.execute().fetchall(),
+            Session.connection().execute(re_expr).fetchall(),
             [(7, "jack"), (8, "ed"), (8, "ed"), (8, "ed"), (9, "fred")],
         )
 
index a1bbce53d97a5985d018448799bbd9cea423e78f..4c005d336c964bd18eb12d7fda3f2a8eb007f773 100644 (file)
@@ -43,7 +43,7 @@ from sqlalchemy.testing import expect_warnings
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
 from sqlalchemy.testing import mock
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from sqlalchemy.util import with_metaclass
@@ -68,7 +68,7 @@ class DeclarativeTestBase(
     def teardown(self):
         close_all_sessions()
         clear_mappers()
-        Base.metadata.drop_all()
+        Base.metadata.drop_all(testing.db)
 
 
 class DeclarativeTest(DeclarativeTestBase):
@@ -93,7 +93,7 @@ class DeclarativeTest(DeclarativeTestBase):
                 "user_id", Integer, ForeignKey("users.id"), key="_user_id"
             )
 
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
 
         eq_(Address.__table__.c["id"].name, "id")
         eq_(Address.__table__.c["_email"].name, "email")
@@ -102,7 +102,7 @@ class DeclarativeTest(DeclarativeTestBase):
         u1 = User(
             name="u1", addresses=[Address(email="one"), Address(email="two")]
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
@@ -193,14 +193,15 @@ class DeclarativeTest(DeclarativeTestBase):
             orm_exc.UnmappedClassError,
             "Class .*User has a deferred "
             "mapping on it.  It is not yet usable as a mapped class.",
-            Session().query,
+            fixture_session().query,
             User,
         )
 
         User.prepare()
 
         self.assert_compile(
-            Session().query(User), 'SELECT "user".id AS user_id FROM "user"'
+            fixture_session().query(User),
+            'SELECT "user".id AS user_id FROM "user"',
         )
 
     def test_unicode_string_resolve(self):
@@ -598,8 +599,8 @@ class DeclarativeTest(DeclarativeTestBase):
             email = Column(String(50))
             user_id = Column(Integer)  # note no foreign key
 
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         u1 = User(
             name="ed",
             addresses=[
@@ -644,8 +645,8 @@ class DeclarativeTest(DeclarativeTestBase):
             )
             name = Column(String(50))
 
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         u1 = User(name="ed")
         sess.add(u1)
         sess.flush()
@@ -693,7 +694,7 @@ class DeclarativeTest(DeclarativeTestBase):
             name = Column(String(50))
             users = relationship("User", order_by="User.fullname")
 
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(Game).options(joinedload(Game.users)),
             "SELECT game.id AS game_id, game.name AS game_name, "
@@ -738,7 +739,7 @@ class DeclarativeTest(DeclarativeTestBase):
 
             id = Column(Integer, primary_key=True)
 
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(A).join(A.d),
             "SELECT a.id AS a_id, a.b_id AS a_b_id FROM a JOIN "
@@ -1061,8 +1062,8 @@ class DeclarativeTest(DeclarativeTestBase):
         # generally go downhill from there.
 
         class_mapper(User)
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         u1 = User(
             name="ed",
             addresses=[
@@ -1158,12 +1159,12 @@ class DeclarativeTest(DeclarativeTestBase):
             master_id = Column(None, ForeignKey(Master.id))
             master = relationship(Master)
 
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
         configure_mappers()
         assert class_mapper(Detail).get_property("master").strategy.use_get
         m1 = Master()
         d1 = Detail(master=m1)
-        sess = create_session()
+        sess = fixture_session()
         sess.add(d1)
         sess.flush()
         sess.expunge_all()
@@ -1193,7 +1194,7 @@ class DeclarativeTest(DeclarativeTestBase):
         assert User.__table__.c.name in set(i.columns)
 
         # tables create fine
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
 
     def test_add_prop(self):
         class User(Base, fixtures.ComparableEntity):
@@ -1217,14 +1218,14 @@ class DeclarativeTest(DeclarativeTestBase):
         Address.user_id = Column(
             "user_id", Integer, ForeignKey("users.id"), key="_user_id"
         )
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
         eq_(Address.__table__.c["id"].name, "id")
         eq_(Address.__table__.c["_email"].name, "email")
         eq_(Address.__table__.c["_user_id"].name, "user_id")
         u1 = User(
             name="u1", addresses=[Address(email="one"), Address(email="two")]
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
@@ -1331,11 +1332,11 @@ class DeclarativeTest(DeclarativeTestBase):
             name = Column("name", String(50))
             addresses = relationship("Address", order_by=Address.email)
 
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
         u1 = User(
             name="u1", addresses=[Address(email="two"), Address(email="one")]
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
@@ -1370,11 +1371,11 @@ class DeclarativeTest(DeclarativeTestBase):
                 "Address", order_by=(Address.email, Address.id)
             )
 
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
         u1 = User(
             name="u1", addresses=[Address(email="two"), Address(email="one")]
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
@@ -1403,7 +1404,7 @@ class DeclarativeTest(DeclarativeTestBase):
         reg = registry(metadata=Base.metadata)
         reg.mapped(User)
         reg.mapped(Address)
-        reg.metadata.create_all()
+        reg.metadata.create_all(testing.db)
         u1 = User(
             name="u1", addresses=[Address(email="one"), Address(email="two")]
         )
@@ -1593,11 +1594,11 @@ class DeclarativeTest(DeclarativeTestBase):
             .where(Address.user_id == User.id)
             .scalar_subquery()
         )
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
         u1 = User(
             name="u1", addresses=[Address(email="one"), Address(email="two")]
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
@@ -1641,11 +1642,11 @@ class DeclarativeTest(DeclarativeTestBase):
                     .scalar_subquery()
                 )
 
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
         u1 = User(
             name="u1", addresses=[Address(email="one"), Address(email="two")]
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
@@ -1707,11 +1708,11 @@ class DeclarativeTest(DeclarativeTestBase):
 
         User.a = Column("a", String(10))
         User.b = Column(String(10))
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
         u1 = User(name="u1", a="a", b="b")
         eq_(u1.a, "a")
         eq_(User.a.get_history(u1), (["a"], (), ()))
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
@@ -1742,11 +1743,11 @@ class DeclarativeTest(DeclarativeTestBase):
             )
             addresses = relationship(Address)
 
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
         u1 = User(
             name="u1", addresses=[Address(email="one"), Address(email="two")]
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
@@ -1792,8 +1793,8 @@ class DeclarativeTest(DeclarativeTestBase):
             )
             name = sa.orm.deferred(Column(String(50)))
 
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         sess.add(User(name="u1"))
         sess.flush()
         sess.expunge_all()
@@ -1825,8 +1826,8 @@ class DeclarativeTest(DeclarativeTestBase):
                 Column("state", String(2)),
             )
 
-        Base.metadata.create_all()
-        sess = Session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         sess.add(User(address=AddressComposite("123 anywhere street", "MD")))
         sess.commit()
         eq_(
@@ -1852,8 +1853,8 @@ class DeclarativeTest(DeclarativeTestBase):
             state = Column(String(2))
             address = composite(AddressComposite, street, state)
 
-        Base.metadata.create_all()
-        sess = Session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         sess.add(User(address=AddressComposite("123 anywhere street", "MD")))
         sess.commit()
         eq_(
@@ -1908,8 +1909,8 @@ class DeclarativeTest(DeclarativeTestBase):
                 "_name", descriptor=property(_get_name, _set_name)
             )
 
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         u1 = User(name="someuser")
         eq_(u1.name, "SOMENAME someuser")
         sess.add(u1)
@@ -1937,8 +1938,8 @@ class DeclarativeTest(DeclarativeTestBase):
             _name = Column("name", String(50))
             name = sa.orm.synonym("_name", comparator_factory=CustomCompare)
 
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         u1 = User(name="someuser FOO")
         sess.add(u1)
         sess.flush()
@@ -1962,8 +1963,8 @@ class DeclarativeTest(DeclarativeTestBase):
             name = property(_get_name, _set_name)
 
         User.name = sa.orm.synonym("_name", descriptor=User.name)
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         u1 = User(name="someuser")
         eq_(u1.name, "SOMENAME someuser")
         sess.add(u1)
@@ -2000,11 +2001,11 @@ class DeclarativeTest(DeclarativeTestBase):
             list(Address.user_id.property.columns[0].foreign_keys)[0].column,
             User.__table__.c.id,
         )
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
         u1 = User(
             name="u1", addresses=[Address(email="one"), Address(email="two")]
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
@@ -2044,11 +2045,11 @@ class DeclarativeTest(DeclarativeTestBase):
             .where(Address.user_id == User.id)
             .scalar_subquery()
         )
-        Base.metadata.create_all()
+        Base.metadata.create_all(testing.db)
         u1 = User(
             name="u1", addresses=[Address(email="one"), Address(email="two")]
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
@@ -2096,7 +2097,7 @@ class DeclarativeTest(DeclarativeTestBase):
 
             __table__ = Table("t1", Base.metadata, autoload_with=testing.db)
 
-        sess = create_session()
+        sess = fixture_session()
         m = MyObj(id="someid", data="somedata")
         sess.add(m)
         sess.flush()
@@ -2116,8 +2117,8 @@ class DeclarativeTest(DeclarativeTestBase):
             def namesyn(self):
                 return self.name
 
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         u1 = User(name="someuser")
         eq_(u1.name, "someuser")
         eq_(u1.namesyn, "someuser")
@@ -2356,7 +2357,7 @@ def _produce_test(inline, stringbased):
             # PropertyLoader.Comparator will annotate the left side with
             # _orm_adapt, though.
 
-            sess = create_session()
+            sess = fixture_session()
             eq_(
                 sess.query(User)
                 .join(User.addresses, aliased=True)
index d731c6afae50e0ddb119441515a5619251451d7e..5f12d82723d771272c15eb79bd702263aafc52ba 100644 (file)
@@ -12,8 +12,8 @@ from sqlalchemy.orm import declarative_base
 from sqlalchemy.orm import declared_attr
 from sqlalchemy.orm import exc as orm_exc
 from sqlalchemy.orm import relationship
-from sqlalchemy.orm import Session
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 
 
 class ConcurrentUseDeclMappingTest(fixtures.TestBase):
@@ -34,7 +34,7 @@ class ConcurrentUseDeclMappingTest(fixtures.TestBase):
 
     @classmethod
     def query_a(cls, Base, result):
-        s = Session()
+        s = fixture_session()
         time.sleep(random.random() / 100)
         A = cls.A
         try:
index d8847ed40299dbe4c64f9f7d4b38bd07af8e06b6..cc29cab7deebcbb15f5e462f8d50df9057e24a5e 100644 (file)
@@ -9,11 +9,9 @@ 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 create_session
 from sqlalchemy.orm import deferred
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
-from sqlalchemy.orm import Session
 from sqlalchemy.testing import assert_raises
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import eq_
@@ -21,6 +19,7 @@ from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
 from sqlalchemy.testing import is_false
 from sqlalchemy.testing import is_true
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -35,7 +34,7 @@ class DeclarativeTestBase(fixtures.TestBase, testing.AssertsExecutionResults):
     def teardown(self):
         close_all_sessions()
         clear_mappers()
-        Base.metadata.drop_all()
+        Base.metadata.drop_all(testing.db)
 
 
 class DeclarativeInheritanceTest(DeclarativeTestBase):
@@ -137,8 +136,8 @@ class DeclarativeInheritanceTest(DeclarativeTestBase):
             )
             golf_swing = Column("golf_swing", String(50))
 
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         c1 = Company(
             name="MegaCorp, Inc.",
             employees=[
@@ -218,8 +217,8 @@ class DeclarativeInheritanceTest(DeclarativeTestBase):
             )
 
         Engineer.primary_language = Column("primary_language", String(50))
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         e1 = Engineer(primary_language="java", name="dilbert")
         sess.add(e1)
         sess.flush()
@@ -249,8 +248,8 @@ class DeclarativeInheritanceTest(DeclarativeTestBase):
             )
 
         Person.name = Column("name", String(50))
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         e1 = Engineer(primary_language="java", name="dilbert")
         sess.add(e1)
         sess.flush()
@@ -289,8 +288,8 @@ class DeclarativeInheritanceTest(DeclarativeTestBase):
             )
 
         Person.name = Column("name", String(50))
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         e1 = Admin(primary_language="java", name="dilbert", workstation="foo")
         sess.add(e1)
         sess.flush()
@@ -531,8 +530,8 @@ class DeclarativeInheritanceTest(DeclarativeTestBase):
 
             __mapper_args__ = {"polymorphic_identity": "manager"}
 
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         c1 = Company(
             name="MegaCorp, Inc.",
             employees=[
@@ -621,8 +620,8 @@ class DeclarativeInheritanceTest(DeclarativeTestBase):
         assert not hasattr(Person, "golf_swing")
         assert not hasattr(Engineer, "golf_swing")
         assert not hasattr(Manager, "primary_language")
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         e1 = Engineer(name="dilbert", primary_language="java")
         e2 = Engineer(name="wally", primary_language="c++")
         m1 = Manager(name="dogbert", golf_swing="fore!")
@@ -837,8 +836,8 @@ class DeclarativeInheritanceTest(DeclarativeTestBase):
             Manager.target_id.property.columns[0], Person.__table__.c.target_id
         )
         # do a brief round trip on this
-        Base.metadata.create_all()
-        session = Session()
+        Base.metadata.create_all(testing.db)
+        session = fixture_session()
         o1, o2 = Other(), Other()
         session.add_all(
             [Engineer(target=o1), Manager(target=o2), Manager(target=o1)]
@@ -957,8 +956,8 @@ class DeclarativeInheritanceTest(DeclarativeTestBase):
         assert not hasattr(Person, "golf_swing")
         assert not hasattr(Engineer, "golf_swing")
         assert not hasattr(Manager, "primary_language")
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         e1 = Engineer(name="dilbert", primary_language="java")
         e2 = Engineer(name="wally", primary_language="c++")
         m1 = Manager(name="dogbert", golf_swing="fore!")
@@ -1043,8 +1042,8 @@ class DeclarativeInheritanceTest(DeclarativeTestBase):
             )
 
         Person.name = deferred(Column(String(10)))
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         p = Person(name="ratbert")
         sess.add(p)
         sess.flush()
@@ -1085,8 +1084,8 @@ class DeclarativeInheritanceTest(DeclarativeTestBase):
             name = Column(String(50))
 
         assert not hasattr(Person, "primary_language_id")
-        Base.metadata.create_all()
-        sess = create_session()
+        Base.metadata.create_all(testing.db)
+        sess = fixture_session()
         java, cpp, cobol = (
             Language(name="java"),
             Language(name="cpp"),
index ca2fb83ca9e2e1f4b42156210625f7c321929904..631527daf92c7034d1fca2c38eef863756d2be41 100644 (file)
@@ -19,7 +19,6 @@ from sqlalchemy.orm import events as orm_events
 from sqlalchemy.orm import has_inherited_table
 from sqlalchemy.orm import registry
 from sqlalchemy.orm import relationship
-from sqlalchemy.orm import Session
 from sqlalchemy.orm import synonym
 from sqlalchemy.testing import assert_raises
 from sqlalchemy.testing import assert_raises_message
@@ -28,7 +27,7 @@ from sqlalchemy.testing import expect_warnings
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
 from sqlalchemy.testing import mock
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from sqlalchemy.testing.util import gc_collect
@@ -69,7 +68,7 @@ class DeclarativeMixinTest(DeclarativeTestBase):
             name = Column(String(100), nullable=False, index=True)
 
         Base.metadata.create_all(testing.db)
-        session = create_session()
+        session = fixture_session()
         session.add(MyModel(name="testing"))
         session.flush()
         session.expunge_all()
@@ -95,7 +94,7 @@ class DeclarativeMixinTest(DeclarativeTestBase):
             name = Column(String(100), nullable=False, index=True)
 
         Base.metadata.create_all(testing.db)
-        session = create_session()
+        session = fixture_session()
         session.add(MyModel(name="testing"))
         session.flush()
         session.expunge_all()
@@ -136,7 +135,7 @@ class DeclarativeMixinTest(DeclarativeTestBase):
             name = Column(String(100), nullable=False, index=True)
 
         Base.metadata.create_all(testing.db)
-        session = create_session()
+        session = fixture_session()
         session.add(MyModel(name="testing", baz="fu"))
         session.flush()
         session.expunge_all()
@@ -167,7 +166,7 @@ class DeclarativeMixinTest(DeclarativeTestBase):
             name = Column(String(100), nullable=False, index=True)
 
         Base.metadata.create_all(testing.db)
-        session = create_session()
+        session = fixture_session()
         session.add(MyModel(name="testing", baz="fu"))
         session.flush()
         session.expunge_all()
@@ -460,7 +459,7 @@ class DeclarativeMixinTest(DeclarativeTestBase):
         )
         # do a brief round trip on this
         Base.metadata.create_all(testing.db)
-        session = create_session()
+        session = fixture_session()
         o1, o2 = Other(), Other()
         session.add_all(
             [Engineer(target=o1), Manager(target=o2), Manager(target=o1)]
@@ -1389,7 +1388,7 @@ class DeclarativeMixinPropertyTest(
             MyModel.prop_hoho.property is not MyOtherModel.prop_hoho.property
         )
         Base.metadata.create_all(testing.db)
-        sess = create_session()
+        sess = fixture_session()
         m1, m2 = MyModel(prop_hoho="foo"), MyOtherModel(prop_hoho="bar")
         sess.add_all([m1, m2])
         sess.flush()
@@ -1498,7 +1497,7 @@ class DeclarativeMixinPropertyTest(
         d1 = inspect(Derived)
         is_(b1.attrs["data_syn"], d1.attrs["data_syn"])
 
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(Base.data_syn).filter(Base.data_syn == "foo"),
             "SELECT test.data AS test_data FROM test "
@@ -1568,7 +1567,7 @@ class DeclarativeMixinPropertyTest(
             )
 
         Base.metadata.create_all(testing.db)
-        sess = create_session()
+        sess = fixture_session()
         sess.add_all([MyModel(data="d1"), MyModel(data="d2")])
         sess.flush()
         sess.expunge_all()
@@ -1620,7 +1619,7 @@ class DeclarativeMixinPropertyTest(
             )
 
         Base.metadata.create_all(testing.db)
-        sess = create_session()
+        sess = fixture_session()
         t1, t2 = Target(), Target()
         f1, f2, b1 = Foo(target=t1), Foo(target=t2), Bar(target=t1)
         sess.add_all([f1, f2, b1])
@@ -1679,7 +1678,7 @@ class DeclaredAttrTest(DeclarativeTestBase, testing.AssertsCompiledSQL):
         is_(a_col, A.__table__.c.x)
         is_(b_col, B.__table__.c.x)
 
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(A),
             "SELECT a.x AS a_x, a.x + :x_1 AS anon_1, a.id AS a_id FROM a",
@@ -1983,7 +1982,7 @@ class DeclaredAttrTest(DeclarativeTestBase, testing.AssertsCompiledSQL):
 
         eq_(counter.mock_calls, [mock.call(User.id)])
 
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User).having(User.address_count > 5),
             "SELECT (SELECT count(address.id) AS "
index 32514a473eba78c7a80fc70cbbcb8ffc3776322a..241528c44ed241c55c48b7af72bfbc3cc3fd7c5d 100644 (file)
@@ -9,7 +9,7 @@ from sqlalchemy.orm import relationship
 from sqlalchemy.testing import assert_raises
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -77,7 +77,7 @@ class DeclarativeReflectionTest(DeclarativeReflectionBase):
         u1 = User(
             name="u1", addresses=[Address(email="one"), Address(email="two")]
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
@@ -110,7 +110,7 @@ class DeclarativeReflectionTest(DeclarativeReflectionBase):
         u1 = User(
             nom="u1", addresses=[Address(email="one"), Address(email="two")]
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
@@ -146,7 +146,7 @@ class DeclarativeReflectionTest(DeclarativeReflectionBase):
         u1 = User(
             nom="u1", addresses=[Address(email="one"), Address(email="two")]
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
@@ -184,7 +184,7 @@ class DeclarativeReflectionTest(DeclarativeReflectionBase):
                 IMHandle(network="lol", handle="zomg"),
             ],
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         sess.expunge_all()
index bce554f30d7b8f6899d9857ace53ad7107576b31..a368e7b2f3b0c6a8ab501593022b2f23dc4acc3f 100644 (file)
@@ -9,7 +9,7 @@ from sqlalchemy.orm import relationship
 from sqlalchemy.orm.interfaces import MANYTOONE
 from sqlalchemy.orm.interfaces import ONETOMANY
 from sqlalchemy.testing import fixtures
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -221,7 +221,7 @@ class ABCTest(fixtures.MappedTest):
         parent_class = {"a": A, "b": B, "c": C}[parent]
         child_class = {"a": A, "b": B, "c": C}[child]
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False, expire_on_commit=False)
 
         parent_obj = parent_class("parent1")
         child_obj = child_class("child1")
index 0d28ef342d57bdd14893c15132bc008a67b7a097..fd3d50dddc676e569bfad4fc4b5310fab80f0c7a 100644 (file)
@@ -5,7 +5,7 @@ from sqlalchemy import testing
 from sqlalchemy.orm import mapper
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -77,7 +77,7 @@ class ABCTest(fixtures.MappedTest):
         c2 = C(cdata="c2", bdata="c2", adata="c2")
         c3 = C(cdata="c2", bdata="c2", adata="c2")
 
-        sess = create_session()
+        sess = fixture_session()
         for x in (a1, b1, b2, b3, c1, c2, c3):
             sess.add(x)
         sess.flush()
index ce8d76a53373776e88d81e58126ccb69f22da3f4..3cf9c983722fd68f6ce29d60755fe1288b473890 100644 (file)
@@ -21,14 +21,13 @@ 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
 from sqlalchemy.orm import sessionmaker
 from sqlalchemy.orm import with_polymorphic
 from sqlalchemy.orm.interfaces import MANYTOONE
 from sqlalchemy.testing import AssertsExecutionResults
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -108,7 +107,7 @@ class RelationshipTest1(fixtures.MappedTest):
             [(managers.c.person_id, people.c.manager_id)],
         )
 
-        session = create_session()
+        session = fixture_session()
         p = Person(name="some person")
         m = Manager(name="some manager")
         p.manager = m
@@ -140,7 +139,7 @@ class RelationshipTest1(fixtures.MappedTest):
             },
         )
 
-        session = create_session()
+        session = fixture_session()
         p = Person(name="some person")
         m = Manager(name="some manager")
         m.employee = p
@@ -297,7 +296,7 @@ class RelationshipTest2(fixtures.MappedTest):
                 },
             )
 
-        sess = create_session()
+        sess = fixture_session()
         p = Person(name="person1")
         m = Manager(name="manager1")
         m.colleague = p
@@ -462,7 +461,7 @@ class RelationshipTest3(fixtures.MappedTest):
         self._setup_mappings(jointype, usedata)
         Person, Manager, Data = self.classes("Person", "Manager", "Data")
 
-        sess = create_session()
+        sess = fixture_session()
         p = Person(name="person1")
         p2 = Person(name="person2")
         p3 = Person(name="person3")
@@ -611,7 +610,7 @@ class RelationshipTest4(fixtures.MappedTest):
         )
         mapper(Car, cars, properties={"employee": relationship(person_mapper)})
 
-        session = create_session()
+        session = fixture_session()
 
         # creating 5 managers named from M1 to E5
         for i in range(1, 5):
@@ -780,7 +779,7 @@ class RelationshipTest5(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         car1 = Car()
         car2 = Car()
         car2.manager = Manager()
@@ -855,7 +854,7 @@ class RelationshipTest6(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         m = Manager(name="manager1")
         m2 = Manager(name="manager2")
         m.colleague = m2
@@ -1027,7 +1026,7 @@ class RelationshipTest7(fixtures.MappedTest):
             polymorphic_identity="manager",
         )
 
-        session = create_session()
+        session = fixture_session()
 
         for i in range(1, 4):
             if i % 2:
@@ -1095,7 +1094,7 @@ class RelationshipTest8(fixtures.MappedTest):
 
         u1 = User(data="u1")
         t1 = Taggable(owner=u1)
-        sess = create_session()
+        sess = fixture_session()
         sess.add(t1)
         sess.flush()
 
@@ -1303,7 +1302,7 @@ class GenerativeTest(fixtures.MappedTest, AssertsExecutionResults):
         Status, Person, Engineer, Manager, Car = self.classes(
             "Status", "Person", "Engineer", "Manager", "Car"
         )
-        session = create_session()
+        session = fixture_session()
 
         r = (
             session.query(Person)
@@ -1328,7 +1327,7 @@ class GenerativeTest(fixtures.MappedTest, AssertsExecutionResults):
         Status, Person, Engineer, Manager, Car = self.classes(
             "Status", "Person", "Engineer", "Manager", "Car"
         )
-        session = create_session()
+        session = fixture_session()
         r = (
             session.query(Engineer)
             .join("status")
@@ -1351,7 +1350,7 @@ class GenerativeTest(fixtures.MappedTest, AssertsExecutionResults):
         Status, Person, Engineer, Manager, Car = self.classes(
             "Status", "Person", "Engineer", "Manager", "Car"
         )
-        session = create_session()
+        session = fixture_session()
         r = session.query(Person).filter(
             exists().where(Car.owner == Person.person_id)
         )
@@ -1471,7 +1470,7 @@ class MultiLevelTest(fixtures.MappedTest):
         b = Engineer().set(egn="two", machine="any")
         c = Manager().set(name="head", machine="fast", duties="many")
 
-        session = create_session()
+        session = fixture_session()
         session.add(a)
         session.add(b)
         session.add(c)
@@ -1621,7 +1620,7 @@ class CustomPKTest(fixtures.MappedTest):
         mapper(T2, t2, inherits=T1, polymorphic_identity="t2")
         ot1 = T1()
         ot2 = T2()
-        sess = create_session()
+        sess = fixture_session()
         sess.add(ot1)
         sess.add(ot2)
         sess.flush()
@@ -1668,7 +1667,7 @@ class CustomPKTest(fixtures.MappedTest):
 
         ot1 = T1()
         ot2 = T2()
-        sess = create_session()
+        sess = fixture_session()
         sess.add(ot1)
         sess.add(ot2)
         sess.flush()
@@ -1754,7 +1753,7 @@ class InheritingEagerTest(fixtures.MappedTest):
         )
         mapper(Tag, tags)
 
-        session = create_session()
+        session = fixture_session()
 
         bob = Employee()
         session.add(bob)
@@ -1852,7 +1851,7 @@ class MissingPolymorphicOnTest(fixtures.MappedTest):
 
         c = C(cdata="c1", adata="a1", b=B(data="c"))
         d = D(cdata="c2", adata="a2", ddata="d2", b=B(data="d"))
-        sess = create_session()
+        sess = fixture_session()
         sess.add(c)
         sess.add(d)
         sess.flush()
@@ -1899,7 +1898,7 @@ class JoinedInhAdjacencyTest(fixtures.MappedTest):
 
     def _roundtrip(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         u1 = User()
         u2 = User()
         u2.supervisor = u1
@@ -1910,7 +1909,7 @@ class JoinedInhAdjacencyTest(fixtures.MappedTest):
 
     def _dude_roundtrip(self):
         Dude, User = self.classes.Dude, self.classes.User
-        sess = Session()
+        sess = fixture_session()
         u1 = User()
         d1 = Dude()
         d1.supervisor = u1
@@ -2070,7 +2069,7 @@ class Ticket2419Test(fixtures.DeclarativeMappedTest):
     )
     def test_join_w_eager_w_any(self):
         B, C, D = (self.classes.B, self.classes.C, self.classes.D)
-        s = Session(testing.db)
+        s = fixture_session()
 
         b = B(ds=[D()])
         s.add_all([C(b=b)])
@@ -2114,7 +2113,7 @@ class ColSubclassTest(
     def test_polymorphic_adaptation(self):
         A, B = self.classes.A, self.classes.B
 
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(A).join(B).filter(B.x == "test"),
             "SELECT a.id AS a_id FROM a JOIN "
@@ -2181,7 +2180,7 @@ class CorrelateExceptWPolyAdaptTest(
 
         poly = with_polymorphic(Superclass, "*")
 
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(poly)
             .options(contains_eager(poly.common_relationship))
@@ -2210,7 +2209,7 @@ class CorrelateExceptWPolyAdaptTest(
 
         poly = with_polymorphic(Superclass, "*")
 
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(poly)
             .options(contains_eager(poly.common_relationship))
index af960625e7dbd0b96ee9382acccb2bc0b36a3ccb..bdcdedc44e4383713fbe1e42a55df5d70906fcca 100644 (file)
@@ -27,7 +27,6 @@ from sqlalchemy.orm import object_mapper
 from sqlalchemy.orm import polymorphic_union
 from sqlalchemy.orm import relationship
 from sqlalchemy.orm import Session
-from sqlalchemy.orm import sessionmaker
 from sqlalchemy.orm import synonym
 from sqlalchemy.orm.util import instance_str
 from sqlalchemy.testing import assert_raises
@@ -42,7 +41,7 @@ from sqlalchemy.testing.assertsql import CompiledSQL
 from sqlalchemy.testing.assertsql import Conditional
 from sqlalchemy.testing.assertsql import Or
 from sqlalchemy.testing.assertsql import RegexSQL
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -104,7 +103,7 @@ class O2MTest(fixtures.MappedTest):
             properties={"parent_foo": relationship(Foo)},
         )
 
-        sess = create_session()
+        sess = fixture_session()
         b1 = Blub("blub #1")
         b2 = Blub("blub #2")
         f = Foo("foo #1")
@@ -166,7 +165,7 @@ class ColExpressionsTest(fixtures.DeclarativeMappedTest):
 
     def test_group_by(self):
         B = self.classes.B
-        s = Session()
+        s = fixture_session()
 
         rows = (
             s.query(B.id.expressions[0], B.id.expressions[1], func.sum(B.data))
@@ -222,7 +221,7 @@ class PolyExpressionEagerLoad(fixtures.DeclarativeMappedTest):
         A = self.classes.A
         B = self.classes.B
 
-        session = Session(testing.db)
+        session = fixture_session()
         result = (
             session.query(A)
             .filter_by(child_id=None)
@@ -590,7 +589,7 @@ class PolymorphicOnNotLocalTest(fixtures.MappedTest):
                 else:
                     assert False, "Got unexpected identity %r" % ident
 
-        s = Session(testing.db)
+        s = fixture_session()
         s.add_all([Parent(q="p1"), Child(q="c1", y="c1"), Parent(q="p2")])
         s.commit()
         s.close()
@@ -647,7 +646,7 @@ class SortOnlyOnImportantFKsTest(fixtures.MappedTest):
         cls.classes.B = B
 
     def test_flush(self):
-        s = Session(testing.db)
+        s = fixture_session()
         s.add(self.classes.B())
         s.flush()
 
@@ -674,7 +673,7 @@ class FalseDiscriminatorTest(fixtures.MappedTest):
 
         mapper(Foo, t1, polymorphic_on=t1.c.type, polymorphic_identity=True)
         mapper(Bar, inherits=Foo, polymorphic_identity=False)
-        sess = create_session()
+        sess = fixture_session()
         b1 = Bar()
         sess.add(b1)
         sess.flush()
@@ -691,7 +690,7 @@ class FalseDiscriminatorTest(fixtures.MappedTest):
 
         mapper(Ding, t1, polymorphic_on=t1.c.type, polymorphic_identity=False)
         mapper(Bat, inherits=Ding, polymorphic_identity=True)
-        sess = create_session()
+        sess = fixture_session()
         d1 = Ding()
         sess.add(d1)
         sess.flush()
@@ -741,7 +740,7 @@ class PolymorphicSynonymTest(fixtures.MappedTest):
             properties={"info": synonym("_info", map_column=True)},
         )
         mapper(T2, t2, inherits=T1, polymorphic_identity="t2")
-        sess = create_session()
+        sess = fixture_session()
         at1 = T1(info="at1")
         at2 = T2(info="at2", data="t2 data")
         sess.add(at1)
@@ -832,7 +831,7 @@ class PolymorphicAttributeManagementTest(fixtures.MappedTest):
     def test_base_class(self):
         A, C, B = (self.classes.A, self.classes.C, self.classes.B)
 
-        sess = Session()
+        sess = fixture_session()
         c1 = C()
         sess.add(c1)
         sess.commit()
@@ -849,7 +848,7 @@ class PolymorphicAttributeManagementTest(fixtures.MappedTest):
         """
         D, B = self.classes.D, self.classes.B
 
-        sess = Session()
+        sess = fixture_session()
         b1 = B()
         b1.class_name = "d"
         sess.add(b1)
@@ -863,7 +862,7 @@ class PolymorphicAttributeManagementTest(fixtures.MappedTest):
         """
         C = self.classes.C
 
-        sess = Session()
+        sess = fixture_session()
         c1 = C()
         c1.class_name = "b"
         sess.add(c1)
@@ -882,7 +881,7 @@ class PolymorphicAttributeManagementTest(fixtures.MappedTest):
         """
         B = self.classes.B
 
-        sess = Session()
+        sess = fixture_session()
         b1 = B()
         b1.class_name = "c"
         sess.add(b1)
@@ -898,7 +897,7 @@ class PolymorphicAttributeManagementTest(fixtures.MappedTest):
         """test warn on an unknown polymorphic identity."""
         B = self.classes.B
 
-        sess = Session()
+        sess = fixture_session()
         b1 = B()
         b1.class_name = "xyz"
         sess.add(b1)
@@ -913,7 +912,7 @@ class PolymorphicAttributeManagementTest(fixtures.MappedTest):
     def test_not_set_on_upate(self):
         C = self.classes.C
 
-        sess = Session()
+        sess = fixture_session()
         c1 = C()
         sess.add(c1)
         sess.commit()
@@ -925,7 +924,7 @@ class PolymorphicAttributeManagementTest(fixtures.MappedTest):
     def test_validate_on_upate(self):
         C = self.classes.C
 
-        sess = Session()
+        sess = fixture_session()
         c1 = C()
         sess.add(c1)
         sess.commit()
@@ -1009,7 +1008,7 @@ class CascadeTest(fixtures.MappedTest):
         )
         mapper(T4, t4)
 
-        sess = create_session()
+        sess = fixture_session()
         t1_1 = T1(data="t1")
 
         t3_1 = T3(data="t3", moredata="t3")
@@ -1095,7 +1094,7 @@ class M2OUseGetTest(fixtures.MappedTest):
 
         assert class_mapper(Related).get_property("sub").strategy.use_get
 
-        sess = create_session()
+        sess = fixture_session()
         s1 = Sub()
         r1 = Related(sub=s1)
         sess.add(r1)
@@ -1181,7 +1180,7 @@ class GetTest(fixtures.MappedTest):
             mapper(Bar, bar, inherits=Foo)
             mapper(Blub, blub, inherits=Bar)
 
-        sess = create_session()
+        sess = fixture_session()
         f = Foo()
         b = Bar()
         bl = Blub()
@@ -1295,7 +1294,7 @@ class EagerLazyTest(fixtures.MappedTest):
     def test_basic(self):
         Bar = self.classes.Bar
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Bar)
         self.assert_(len(q.first().lazy) == 1)
         self.assert_(len(q.first().eager) == 1)
@@ -1350,7 +1349,7 @@ class EagerTargetingTest(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         b1 = B(id=1, name="b1", b_data="i")
         sess.add(b1)
@@ -1454,7 +1453,7 @@ class FlushTest(fixtures.MappedTest):
             },
         )
         mapper(Admin, admins, inherits=user_mapper)
-        sess = create_session()
+        sess = fixture_session()
         adminrole = Role()
         sess.add(adminrole)
         sess.flush()
@@ -1507,7 +1506,7 @@ class FlushTest(fixtures.MappedTest):
         # create roles
         adminrole = Role("admin")
 
-        sess = create_session()
+        sess = fixture_session()
         sess.add(adminrole)
         sess.flush()
 
@@ -1581,7 +1580,7 @@ class PassiveDeletesTest(fixtures.MappedTest):
         A, B, C = self.classes("A", "B", "C")
         self._fixture()
 
-        s = Session()
+        s = fixture_session()
         a1, b1, c1 = A(id=1), B(id=2), C(cid=1, id=3)
         s.add_all([a1, b1, c1])
         s.commit()
@@ -1605,7 +1604,7 @@ class PassiveDeletesTest(fixtures.MappedTest):
         A, B, C = self.classes("A", "B", "C")
         self._fixture(c_p=True)
 
-        s = Session()
+        s = fixture_session()
         a1, b1, c1 = A(id=1), B(id=2), C(cid=1, id=3)
         s.add_all([a1, b1, c1])
         s.commit()
@@ -1647,7 +1646,7 @@ class PassiveDeletesTest(fixtures.MappedTest):
         A, B, C = self.classes("A", "B", "C")
         self._fixture(b_p=True)
 
-        s = Session()
+        s = fixture_session()
         a1, b1, c1 = A(id=1), B(id=2), C(cid=1, id=3)
         s.add_all([a1, b1, c1])
         s.commit()
@@ -1685,7 +1684,7 @@ class PassiveDeletesTest(fixtures.MappedTest):
         A, B, C = self.classes("A", "B", "C")
         self._fixture(a_p=True)
 
-        s = Session()
+        s = fixture_session()
         a1, b1, c1 = A(id=1), B(id=2), C(cid=1, id=3)
         s.add_all([a1, b1, c1])
         s.commit()
@@ -1767,7 +1766,7 @@ class OptimizedGetOnDeferredTest(fixtures.MappedTest):
 
     def test_column_property(self):
         A, B = self.classes("A", "B")
-        sess = Session()
+        sess = fixture_session()
         b1 = B(data="x")
         sess.add(b1)
         sess.flush()
@@ -1776,7 +1775,7 @@ class OptimizedGetOnDeferredTest(fixtures.MappedTest):
 
     def test_expired_column(self):
         A, B = self.classes("A", "B")
-        sess = Session()
+        sess = fixture_session()
         b1 = B(data="x")
         sess.add(b1)
         sess.flush()
@@ -1830,7 +1829,7 @@ class JoinedNoFKSortingTest(fixtures.MappedTest):
 
     def test_ordering(self):
         B, C = self.classes.B, self.classes.C
-        sess = Session()
+        sess = fixture_session()
         sess.add_all([B(), C(), B(), C()])
         self.assert_sql_execution(
             testing.db,
@@ -1918,7 +1917,7 @@ class VersioningTest(fixtures.MappedTest):
         )
         mapper(Sub, subtable, inherits=Base, polymorphic_identity=2)
 
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
 
         b1 = Base(value="b1")
         s1 = Sub(value="sub1", subdata="some subdata")
@@ -1927,7 +1926,7 @@ class VersioningTest(fixtures.MappedTest):
 
         sess.commit()
 
-        sess2 = Session(autoflush=False)
+        sess2 = fixture_session(autoflush=False)
         s2 = sess2.get(Base, s1.id)
         s2.subdata = "sess2 subdata"
 
@@ -1976,7 +1975,7 @@ class VersioningTest(fixtures.MappedTest):
         )
         mapper(Sub, subtable, inherits=Base, polymorphic_identity=2)
 
-        sess = Session(autoflush=False, expire_on_commit=False)
+        sess = fixture_session(autoflush=False, expire_on_commit=False)
 
         b1 = Base(value="b1")
         s1 = Sub(value="sub1", subdata="some subdata")
@@ -1987,7 +1986,7 @@ class VersioningTest(fixtures.MappedTest):
 
         sess.commit()
 
-        sess2 = Session(autoflush=False, expire_on_commit=False)
+        sess2 = fixture_session(autoflush=False, expire_on_commit=False)
         s3 = sess2.get(Base, s1.id)
         sess2.delete(s3)
         sess2.commit()
@@ -2099,7 +2098,7 @@ class DistinctPKTest(fixtures.MappedTest):
         self._do_test(False)
 
     def _do_test(self, composite):
-        session = create_session()
+        session = fixture_session()
 
         if composite:
             alice1 = session.get(Employee, [1, 2])
@@ -2178,7 +2177,7 @@ class SyncCompileTest(fixtures.MappedTest):
         mapper(B, _b_table, inherits=A, inherit_condition=j1)
         mapper(C, _c_table, inherits=B, inherit_condition=j2)
 
-        session = create_session()
+        session = fixture_session()
 
         a = A(data1="a1")
         session.add(a)
@@ -2284,7 +2283,7 @@ class OverrideColKeyTest(fixtures.MappedTest):
 
         s1 = Sub()
         s1.id = 10
-        sess = create_session()
+        sess = fixture_session()
         sess.add(s1)
         sess.flush()
         assert sess.get(Sub, 10) is s1
@@ -2312,7 +2311,7 @@ class OverrideColKeyTest(fixtures.MappedTest):
         s2 = Sub()
         s2.base_id = 15
 
-        sess = create_session()
+        sess = fixture_session()
         sess.add_all([s1, s2])
         sess.flush()
 
@@ -2384,7 +2383,7 @@ class OverrideColKeyTest(fixtures.MappedTest):
         mapper(Sub, subtable, inherits=Base)
 
         s1 = Sub()
-        sess = create_session()
+        sess = fixture_session()
         sess.add(s1)
         sess.flush()
         assert sess.query(Sub).one().data == "im the data"
@@ -2409,7 +2408,7 @@ class OverrideColKeyTest(fixtures.MappedTest):
         mapper(Sub, subtable, inherits=Base)
 
         s1 = Sub()
-        sess = create_session()
+        sess = fixture_session()
         sess.add(s1)
         sess.flush()
         assert sess.query(Sub).one().data == "im the data"
@@ -2426,7 +2425,7 @@ class OverrideColKeyTest(fixtures.MappedTest):
         mapper(Base, base)
         mapper(Sub, subtable, inherits=Base)
 
-        sess = create_session()
+        sess = fixture_session()
         b1 = Base()
         assert b1.subdata == "this is base"
         s1 = Sub()
@@ -2452,7 +2451,7 @@ class OverrideColKeyTest(fixtures.MappedTest):
         mapper(Base, base)
         mapper(Sub, subtable, inherits=Base)
 
-        sess = create_session()
+        sess = fixture_session()
         b1 = Base()
         assert b1.data == "this is base"
         s1 = Sub()
@@ -2528,7 +2527,7 @@ class OptimizedLoadTest(fixtures.MappedTest):
         )
         mapper(SubJoinBase, inherits=JoinBase)
 
-        sess = Session()
+        sess = fixture_session()
         sess.add(Base(data="data"))
         sess.commit()
 
@@ -2595,7 +2594,7 @@ class OptimizedLoadTest(fixtures.MappedTest):
                 base.outerjoin(sub).select().apply_labels().alias("foo"),
             ),
         )
-        sess = Session()
+        sess = fixture_session()
         s1 = Sub(
             data="s1data", sub="s1sub", subcounter=1, counter=1, subcounter2=1
         )
@@ -2638,7 +2637,7 @@ class OptimizedLoadTest(fixtures.MappedTest):
             polymorphic_identity="sub",
             properties={"id": [sub.c.id, base.c.id]},
         )
-        sess = sessionmaker()()
+        sess = fixture_session()
         s1 = Sub(data="s1data", sub="s1sub")
         sess.add(s1)
         sess.commit()
@@ -2673,7 +2672,7 @@ class OptimizedLoadTest(fixtures.MappedTest):
                 "concat": column_property(sub.c.sub + "|" + sub.c.sub)
             },
         )
-        sess = sessionmaker()()
+        sess = fixture_session()
         s1 = Sub(data="s1data", sub="s1sub")
         sess.add(s1)
         sess.commit()
@@ -2702,7 +2701,7 @@ class OptimizedLoadTest(fixtures.MappedTest):
                 "concat": column_property(base.c.data + "|" + sub.c.sub)
             },
         )
-        sess = sessionmaker()()
+        sess = fixture_session()
         s1 = Sub(data="s1data", sub="s1sub")
         s2 = Sub(data="s2data", sub="s2sub")
         s3 = Sub(data="s3data", sub="s3sub")
@@ -2752,7 +2751,7 @@ class OptimizedLoadTest(fixtures.MappedTest):
             polymorphic_identity="wc",
             properties={"comp": composite(Comp, with_comp.c.a, with_comp.c.b)},
         )
-        sess = sessionmaker()()
+        sess = fixture_session()
         s1 = WithComp(data="s1data", comp=Comp("ham", "cheese"))
         s2 = WithComp(data="s2data", comp=Comp("bacon", "eggs"))
         sess.add_all([s1, s2])
@@ -2777,7 +2776,7 @@ class OptimizedLoadTest(fixtures.MappedTest):
             Base, base, polymorphic_on=base.c.type, polymorphic_identity="base"
         )
         mapper(Sub, sub, inherits=Base, polymorphic_identity="sub")
-        sess = Session()
+        sess = fixture_session()
         s1 = Sub(data="s1")
         sess.add(s1)
         self.assert_sql_execution(
@@ -2871,7 +2870,7 @@ class OptimizedLoadTest(fixtures.MappedTest):
         )
         mapper(Sub, sub, inherits=Base, polymorphic_identity="sub")
         mapper(SubSub, subsub, inherits=Sub, polymorphic_identity="subsub")
-        sess = Session()
+        sess = fixture_session()
         s1 = SubSub(data="s1", counter=1, subcounter=2)
         sess.add(s1)
         self.assert_sql_execution(
@@ -3152,7 +3151,7 @@ class PKDiscriminatorTest(fixtures.MappedTest):
 
         mapper(A, inherits=Child, polymorphic_identity=2)
 
-        s = create_session()
+        s = fixture_session()
         p = Parent("p1")
         a = A("a1")
         p.children.append(a)
@@ -3220,7 +3219,7 @@ class NoPolyIdentInMiddleTest(fixtures.MappedTest):
     def test_load_from_middle(self):
         C, B = self.classes.C, self.classes.B
 
-        s = Session()
+        s = fixture_session()
         s.add(C())
         o = s.query(B).first()
         eq_(o.type, "c")
@@ -3229,7 +3228,7 @@ class NoPolyIdentInMiddleTest(fixtures.MappedTest):
     def test_load_from_base(self):
         A, C = self.classes.A, self.classes.C
 
-        s = Session()
+        s = fixture_session()
         s.add(C())
         o = s.query(A).first()
         eq_(o.type, "c")
@@ -3250,7 +3249,7 @@ class NoPolyIdentInMiddleTest(fixtures.MappedTest):
             self.tables.base,
         )
 
-        s = Session()
+        s = fixture_session()
         s.add_all([C(), D(), E()])
         eq_(s.query(B).order_by(base.c.type).all(), [C(), D()])
 
@@ -3314,7 +3313,7 @@ class DeleteOrphanTest(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         s1 = SubClass(data="s1")
         sess.add(s1)
         assert_raises(sa_exc.DBAPIError, sess.flush)
@@ -3418,7 +3417,7 @@ class DiscriminatorOrPkNoneTest(fixtures.DeclarativeMappedTest):
     @classmethod
     def insert_data(cls, connection):
         Parent, A, B = cls.classes("Parent", "A", "B")
-        s = Session()
+        s = fixture_session()
 
         p1 = Parent(id=1)
         p2 = Parent(id=2)
@@ -3443,7 +3442,7 @@ class DiscriminatorOrPkNoneTest(fixtures.DeclarativeMappedTest):
     def test_pk_is_null(self):
         Parent, A = self.classes("Parent", "A")
 
-        sess = Session()
+        sess = fixture_session()
         q = (
             sess.query(Parent, A)
             .select_from(Parent)
@@ -3457,7 +3456,7 @@ class DiscriminatorOrPkNoneTest(fixtures.DeclarativeMappedTest):
     def test_pk_not_null_discriminator_null_from_base(self):
         (A,) = self.classes("A")
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(A).filter(A.id == 3)
         assert_raises_message(
             sa_exc.InvalidRequestError,
@@ -3470,7 +3469,7 @@ class DiscriminatorOrPkNoneTest(fixtures.DeclarativeMappedTest):
     def test_pk_not_null_discriminator_null_from_sub(self):
         (B,) = self.classes("B")
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(B).filter(B.id == 4)
         assert_raises_message(
             sa_exc.InvalidRequestError,
@@ -3528,7 +3527,7 @@ class UnexpectedPolymorphicIdentityTest(fixtures.DeclarativeMappedTest):
         ASingleSubA, ASingleSubB, AJoinedSubA, AJoinedSubB = cls.classes(
             "ASingleSubA", "ASingleSubB", "AJoinedSubA", "AJoinedSubB"
         )
-        s = Session()
+        s = fixture_session()
 
         s.add_all([ASingleSubA(), ASingleSubB(), AJoinedSubA(), AJoinedSubB()])
         s.commit()
@@ -3536,7 +3535,7 @@ class UnexpectedPolymorphicIdentityTest(fixtures.DeclarativeMappedTest):
     def test_single_invalid_ident(self):
         ASingle, ASingleSubA = self.classes("ASingle", "ASingleSubA")
 
-        s = Session()
+        s = fixture_session()
 
         q = s.query(ASingleSubA).select_entity_from(select(ASingle).subquery())
 
@@ -3552,7 +3551,7 @@ class UnexpectedPolymorphicIdentityTest(fixtures.DeclarativeMappedTest):
     def test_joined_invalid_ident(self):
         AJoined, AJoinedSubA = self.classes("AJoined", "AJoinedSubA")
 
-        s = Session()
+        s = fixture_session()
 
         q = s.query(AJoinedSubA).select_entity_from(select(AJoined).subquery())
 
@@ -3600,7 +3599,7 @@ class NameConflictTest(fixtures.MappedTest):
         mapper(
             Foo, self.tables.foo, inherits=Content, polymorphic_identity="foo"
         )
-        sess = create_session()
+        sess = fixture_session()
         f = Foo()
         f.content_type = "bar"
         sess.add(f)
index e2777e9e9583d6d8295d3497c1b1a5ddc4fcc667..f2f8d629b1f6e76125080e9c49476d620794c332 100644 (file)
@@ -11,13 +11,12 @@ 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 sessionmaker
 from sqlalchemy.testing import assert_raises
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import mock
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -165,7 +164,7 @@ class ConcreteTest(fixtures.MappedTest):
             concrete=True,
             polymorphic_identity="engineer",
         )
-        session = create_session()
+        session = fixture_session()
         session.add(Manager("Tom", "knows how to manage things"))
         session.add(Engineer("Kurt", "knows how to hack"))
         session.flush()
@@ -225,7 +224,7 @@ class ConcreteTest(fixtures.MappedTest):
             concrete=True,
             polymorphic_identity="hacker",
         )
-        session = create_session()
+        session = fixture_session()
         tom = Manager("Tom", "knows how to manage things")
 
         assert_raises_message(
@@ -348,7 +347,7 @@ class ConcreteTest(fixtures.MappedTest):
             polymorphic_identity="engineer",
         )
 
-        session = create_session()
+        session = fixture_session()
         tom = ManagerWHybrid("Tom", "mgrdata")
 
         # mapping did not impact the engineer_info
@@ -422,7 +421,7 @@ class ConcreteTest(fixtures.MappedTest):
             concrete=True,
             polymorphic_identity="hacker",
         )
-        session = create_session()
+        session = fixture_session()
         tom = Manager("Tom", "knows how to manage things")
         jerry = Engineer("Jerry", "knows how to program")
         hacker = Hacker("Kurt", "Badass", "knows how to hack")
@@ -509,7 +508,7 @@ class ConcreteTest(fixtures.MappedTest):
             concrete=True,
             polymorphic_identity="hacker",
         )
-        session = create_session()
+        session = fixture_session()
         jdoe = Employee("Jdoe")
         tom = Manager("Tom", "knows how to manage things")
         jerry = Engineer("Jerry", "knows how to program")
@@ -635,7 +634,7 @@ class ConcreteTest(fixtures.MappedTest):
             concrete=True,
             polymorphic_identity="engineer",
         )
-        session = create_session()
+        session = fixture_session()
         c = Company()
         c.employees.append(Manager("Tom", "knows how to manage things"))
         c.employees.append(Engineer("Kurt", "knows how to hack"))
@@ -788,7 +787,7 @@ class PropertyInheritanceTest(fixtures.MappedTest):
                 "many_b": relationship(B, back_populates="some_dest"),
             },
         )
-        sess = sessionmaker()()
+        sess = fixture_session()
         dest1 = Dest(name="c1")
         dest2 = Dest(name="c2")
         a1 = A(some_dest=dest1, aname="a1")
@@ -916,7 +915,7 @@ class PropertyInheritanceTest(fixtures.MappedTest):
             },
         )
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         dest1 = Dest(name="c1")
         dest2 = Dest(name="c2")
         a1 = A(some_dest=dest1, aname="a1", id=1)
@@ -1021,7 +1020,7 @@ class PropertyInheritanceTest(fixtures.MappedTest):
         assert B.some_dest.property.parent is class_mapper(B)
         assert A.some_dest.property.parent is class_mapper(A)
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         dest1 = Dest(name="d1")
         dest2 = Dest(name="d2")
         a1 = A(some_dest=dest2, aname="a1")
@@ -1030,7 +1029,7 @@ class PropertyInheritanceTest(fixtures.MappedTest):
         sess.add_all([dest1, dest2, c1, a1, b1])
         sess.commit()
 
-        sess2 = sessionmaker()()
+        sess2 = fixture_session()
         merged_c1 = sess2.merge(c1)
         eq_(merged_c1.some_dest.name, "d2")
         eq_(merged_c1.some_dest_id, c1.some_dest_id)
@@ -1135,7 +1134,7 @@ class ManyToManyTest(fixtures.MappedTest):
             },
         )
         mapper(Related, related)
-        sess = sessionmaker()()
+        sess = fixture_session()
         b1, s1, r1, r2, r3 = Base(), Sub(), Related(), Related(), Related()
         b1.related.append(r1)
         b1.related.append(r2)
@@ -1227,7 +1226,7 @@ class ColKeysTest(fixtures.MappedTest):
             concrete=True,
             polymorphic_identity="refugee",
         )
-        sess = create_session()
+        sess = fixture_session()
         eq_(sess.get(Refugee, 1).name, "refugee1")
         eq_(sess.get(Refugee, 2).name, "refugee2")
         eq_(sess.get(Office, 1).name, "office1")
index 334ed22f370e03a6cf19468f3ef19c06089a8cff..7f347e40f92487396ad675247febadb380db1baf 100644 (file)
@@ -10,9 +10,9 @@ from sqlalchemy.orm import backref
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import polymorphic_union
 from sqlalchemy.orm import relationship
-from sqlalchemy.orm import Session
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -360,7 +360,7 @@ class MagazineTest(fixtures.MappedTest):
 
         Publication = self.classes.Publication
 
-        session = Session()
+        session = fixture_session()
 
         pub = self._generate_data()
         session.add(pub)
index 207ac09c7321be3e54456ec0f6f8243ea8e7f8fd..f790b11ac296d6e2a2e03f8b81012d6fa11d568d 100644 (file)
@@ -9,7 +9,7 @@ from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 
 
 class InheritTest(fixtures.MappedTest):
@@ -114,7 +114,7 @@ class InheritTest(fixtures.MappedTest):
                 login_id="lg1",
             )
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(g)
         sess.flush()
         # TODO: put an assertion
@@ -164,7 +164,7 @@ class InheritTest2(fixtures.MappedTest):
         print(foo.join(bar).primary_key)
         print(class_mapper(Bar).primary_key)
         b = Bar("somedata")
-        sess = create_session()
+        sess = fixture_session()
         sess.add(b)
         sess.flush()
         sess.expunge_all()
@@ -192,7 +192,7 @@ class InheritTest2(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         b = Bar("barfoo")
         sess.add(b)
         sess.flush()
@@ -304,7 +304,7 @@ class InheritTest3(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         b = Bar("bar #1")
         sess.add(b)
         b.foos.append(Foo("foo #1"))
@@ -352,7 +352,7 @@ class InheritTest3(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         f1 = Foo("foo #1")
         b1 = Bar("bar #1")
         b2 = Bar("bar #2")
index 83c3e75a00890f2f86cc512327bd688f8c14f391..d5305c47306c6a71aef9881fb37e7a3f02e4a658 100644 (file)
@@ -8,7 +8,7 @@ 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 create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -211,7 +211,7 @@ class PolymorphicCircularTest(fixtures.MappedTest):
         )
 
     def _testlist(self, classes):
-        sess = create_session()
+        sess = fixture_session()
 
         # create objects in a linked list
         count = 1
index d7040e822446cd03098bc9e091e6db201f2104fe..2f31ab0c42cf72715c81eefd0573a57f93c37f67 100644 (file)
@@ -16,6 +16,7 @@ from sqlalchemy.testing.assertsql import AllOf
 from sqlalchemy.testing.assertsql import CompiledSQL
 from sqlalchemy.testing.assertsql import EachOf
 from sqlalchemy.testing.assertsql import Or
+from sqlalchemy.testing.fixtures import fixture_session
 from ._poly_fixtures import _Polymorphic
 from ._poly_fixtures import Company
 from ._poly_fixtures import Engineer
@@ -145,7 +146,7 @@ class LoadBaseAndSubWEagerRelOpt(
 
     def test_load(self):
         A, B, ASub, C = self.classes("A", "B", "ASub", "C")
-        s = Session()
+        s = fixture_session()
 
         q = (
             s.query(A)
@@ -169,7 +170,7 @@ class LoadBaseAndSubWEagerRelMapped(
 
     def test_load(self):
         A, B, ASub, C = self.classes("A", "B", "ASub", "C")
-        s = Session()
+        s = fixture_session()
 
         q = (
             s.query(A)
@@ -182,7 +183,7 @@ class LoadBaseAndSubWEagerRelMapped(
 
 class FixtureLoadTest(_Polymorphic, testing.AssertsExecutionResults):
     def test_person_selectin_subclasses(self):
-        s = Session()
+        s = fixture_session()
         q = s.query(Person).options(
             selectin_polymorphic(Person, [Engineer, Manager])
         )
@@ -228,7 +229,7 @@ class FixtureLoadTest(_Polymorphic, testing.AssertsExecutionResults):
         eq_(result, self.all_employees)
 
     def test_load_company_plus_employees(self):
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(Company)
             .options(
@@ -316,7 +317,7 @@ class TestGeometries(GeometryFixtureBase):
         )
 
         a, b, c, d, e = self.classes("a", "b", "c", "d", "e")
-        sess = Session()
+        sess = fixture_session()
         sess.add_all([d(d_data="d1"), e(e_data="e1")])
         sess.commit()
 
@@ -370,7 +371,7 @@ class TestGeometries(GeometryFixtureBase):
         )
 
         a, b, c, d, e = self.classes("a", "b", "c", "d", "e")
-        sess = Session()
+        sess = fixture_session()
         sess.add_all([d(d_data="d1"), e(e_data="e1")])
         sess.commit()
 
@@ -420,7 +421,7 @@ class TestGeometries(GeometryFixtureBase):
         )
 
         a, b, c, d, e = self.classes("a", "b", "c", "d", "e")
-        sess = Session()
+        sess = fixture_session()
         sess.add_all([d(d_data="d1"), e(e_data="e1")])
         sess.commit()
 
@@ -507,7 +508,7 @@ class TestGeometries(GeometryFixtureBase):
         )
 
         a, a1, a2 = self.classes("a", "a1", "a2")
-        sess = Session()
+        sess = fixture_session()
 
         a1_obj = a1()
         a2_obj = a2()
@@ -586,7 +587,7 @@ class LoaderOptionsTest(
         Parent, ChildSubclass1, Other = self.classes(
             "Parent", "ChildSubclass1", "Other"
         )
-        session = Session(enable_baked_queries=enable_baked)
+        session = fixture_session(enable_baked_queries=enable_baked)
 
         def no_opt():
             q = session.query(Parent).options(
index 99cab870bd9ae69114ac34adde6072e362e9a2e1..c33f3e0de033a96928d67466f2e134ccb99eae4b 100644 (file)
@@ -14,7 +14,7 @@ from sqlalchemy.testing import assert_raises
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 
 
@@ -161,7 +161,7 @@ class InsertOrderTest(PolymorphTest):
             },
         )
 
-        session = create_session()
+        session = fixture_session()
         c = Company(name="company1")
         c.employees.append(
             Manager(
@@ -391,7 +391,7 @@ class RoundTripTest(PolymorphTest):
         else:
             person_attribute_name = "name"
 
-        session = create_session()
+        session = fixture_session()
 
         dilbert = (
             session.query(Engineer)
@@ -429,7 +429,7 @@ class RoundTripTest(PolymorphTest):
                 self.assert_sql_count(testing.db, go, 3)
 
     def test_baseclass_lookup(self, get_dilbert):
-        session = Session()
+        session = fixture_session()
         dilbert = get_dilbert(session)
 
         if self.redefine_colprop:
@@ -449,7 +449,7 @@ class RoundTripTest(PolymorphTest):
         )
 
     def test_subclass_lookup(self, get_dilbert):
-        session = Session()
+        session = fixture_session()
         dilbert = get_dilbert(session)
 
         if self.redefine_colprop:
@@ -465,7 +465,7 @@ class RoundTripTest(PolymorphTest):
         )
 
     def test_baseclass_base_alias_filter(self, get_dilbert):
-        session = Session()
+        session = fixture_session()
         dilbert = get_dilbert(session)
 
         # test selecting from the query, joining against
@@ -485,7 +485,7 @@ class RoundTripTest(PolymorphTest):
         )
 
     def test_subclass_base_alias_filter(self, get_dilbert):
-        session = Session()
+        session = fixture_session()
         dilbert = get_dilbert(session)
 
         palias = people.alias("palias")
@@ -501,7 +501,7 @@ class RoundTripTest(PolymorphTest):
         )
 
     def test_baseclass_sub_table_filter(self, get_dilbert):
-        session = Session()
+        session = fixture_session()
         dilbert = get_dilbert(session)
 
         # this unusual test is selecting from the plain people/engineers
@@ -518,7 +518,7 @@ class RoundTripTest(PolymorphTest):
         )
 
     def test_subclass_getitem(self, get_dilbert):
-        session = Session()
+        session = fixture_session()
         dilbert = get_dilbert(session)
 
         is_(
@@ -530,7 +530,7 @@ class RoundTripTest(PolymorphTest):
 
     def test_primary_table_only_for_requery(self):
 
-        session = Session()
+        session = fixture_session()
 
         if self.redefine_colprop:
             person_attribute_name = "person_name"
@@ -560,7 +560,7 @@ class RoundTripTest(PolymorphTest):
         else:
             person_attribute_name = "name"
 
-        session = Session()
+        session = fixture_session()
 
         daboss = Boss(
             status="BBB",
index 84ef22d52fe8ced21a81ab808b6e9d7da229f1b2..581fa45fd95dd3b098ab746cce5518fa25e5ee77 100644 (file)
@@ -14,7 +14,7 @@ from sqlalchemy.orm import with_polymorphic
 from sqlalchemy.testing import assert_raises
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing.assertsql import CompiledSQL
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from ._poly_fixtures import _Polymorphic
 from ._poly_fixtures import _PolymorphicAliasedJoins
 from ._poly_fixtures import _PolymorphicJoins
@@ -68,7 +68,7 @@ class _PolymorphicTestBase(object):
         with_polymorphic is used.
         """
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -83,7 +83,7 @@ class _PolymorphicTestBase(object):
         # For both joinedload() and subqueryload(), if the original q is
         # not loading the subclass table, the joinedload doesn't happen.
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -99,7 +99,7 @@ class _PolymorphicTestBase(object):
     def test_primary_eager_aliasing_subqueryload(self):
         # test that subqueryload does not occur because the parent
         # row cannot support it
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -116,7 +116,7 @@ class _PolymorphicTestBase(object):
     def test_primary_eager_aliasing_selectinload(self):
         # test that selectinload does not occur because the parent
         # row cannot support it
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -134,7 +134,7 @@ class _PolymorphicTestBase(object):
 
         # assert the JOINs don't over JOIN
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -168,28 +168,28 @@ class _PolymorphicTestBase(object):
         For all mappers, ensure the primary key has been calculated as
         just the "person_id" column.
         """
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.get(Person, e1.person_id),
             Engineer(name="dilbert", primary_language="java"),
         )
 
     def test_get_two(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.get(Engineer, e1.person_id),
             Engineer(name="dilbert", primary_language="java"),
         )
 
     def test_get_three(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.get(Manager, b1.person_id),
             Boss(name="pointy haired boss", golf_swing="fore"),
         )
 
     def test_multi_join(self):
-        sess = create_session()
+        sess = fixture_session()
         e = aliased(Person)
         c = aliased(Company)
         q = (
@@ -230,7 +230,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_multi_join_future(self):
-        sess = create_session(future=True)
+        sess = fixture_session(future=True)
         e = aliased(Person)
         c = aliased(Company)
 
@@ -279,22 +279,22 @@ class _PolymorphicTestBase(object):
         )
 
     def test_filter_on_subclass_one(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(sess.query(Engineer).all()[0], Engineer(name="dilbert"))
 
     def test_filter_on_subclass_one_future(self):
-        sess = create_session(future=True)
+        sess = fixture_session(future=True)
         eq_(
             sess.execute(select(Engineer)).scalar(),
             Engineer(name="dilbert"),
         )
 
     def test_filter_on_subclass_two(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(sess.query(Engineer).first(), Engineer(name="dilbert"))
 
     def test_filter_on_subclass_three(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Engineer)
             .filter(Engineer.person_id == e1.person_id)
@@ -303,7 +303,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_filter_on_subclass_four(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Manager)
             .filter(Manager.person_id == m1.person_id)
@@ -312,7 +312,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_filter_on_subclass_five(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Manager)
             .filter(Manager.person_id == b1.person_id)
@@ -321,14 +321,14 @@ class _PolymorphicTestBase(object):
         )
 
     def test_filter_on_subclass_six(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Boss).filter(Boss.person_id == b1.person_id).one(),
             Boss(name="pointy haired boss"),
         )
 
     def test_join_from_polymorphic_nonaliased_one(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person)
             .join("paperwork")
@@ -338,7 +338,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_polymorphic_nonaliased_one_future(self):
-        sess = create_session(future=True)
+        sess = fixture_session(future=True)
         eq_(
             sess.execute(
                 select(Person)
@@ -352,7 +352,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_polymorphic_nonaliased_two(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person)
             .order_by(Person.person_id)
@@ -363,7 +363,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_polymorphic_nonaliased_three(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Engineer)
             .order_by(Person.person_id)
@@ -374,7 +374,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_polymorphic_nonaliased_four(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person)
             .order_by(Person.person_id)
@@ -386,7 +386,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_polymorphic_flag_aliased_one(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person)
             .order_by(Person.person_id)
@@ -397,7 +397,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_polymorphic_flag_aliased_one_future(self):
-        sess = create_session(future=True)
+        sess = fixture_session(future=True)
 
         pa = aliased(Paperwork)
         eq_(
@@ -414,7 +414,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_polymorphic_explicit_aliased_one(self):
-        sess = create_session()
+        sess = fixture_session()
         pa = aliased(Paperwork)
         eq_(
             sess.query(Person)
@@ -426,7 +426,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_polymorphic_flag_aliased_two(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person)
             .order_by(Person.person_id)
@@ -437,7 +437,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_polymorphic_explicit_aliased_two(self):
-        sess = create_session()
+        sess = fixture_session()
         pa = aliased(Paperwork)
         eq_(
             sess.query(Person)
@@ -449,7 +449,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_polymorphic_flag_aliased_three(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Engineer)
             .order_by(Person.person_id)
@@ -460,7 +460,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_polymorphic_explicit_aliased_three(self):
-        sess = create_session()
+        sess = fixture_session()
         pa = aliased(Paperwork)
         eq_(
             sess.query(Engineer)
@@ -472,7 +472,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_polymorphic_aliased_four(self):
-        sess = create_session()
+        sess = fixture_session()
         pa = aliased(Paperwork)
         eq_(
             sess.query(Person)
@@ -485,7 +485,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_with_polymorphic_nonaliased_one(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person)
             .with_polymorphic(Manager)
@@ -497,7 +497,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_with_polymorphic_nonaliased_one_future(self):
-        sess = create_session(future=True)
+        sess = fixture_session(future=True)
 
         pm = with_polymorphic(Person, [Manager])
         eq_(
@@ -514,7 +514,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_with_polymorphic_nonaliased_two(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person)
             .with_polymorphic([Manager, Engineer])
@@ -526,7 +526,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_with_polymorphic_nonaliased_three(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person)
             .with_polymorphic([Manager, Engineer])
@@ -539,7 +539,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_with_polymorphic_flag_aliased_one(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person)
             .with_polymorphic(Manager)
@@ -550,7 +550,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_with_polymorphic_explicit_aliased_one(self):
-        sess = create_session()
+        sess = fixture_session()
         pa = aliased(Paperwork)
         eq_(
             sess.query(Person)
@@ -562,7 +562,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_with_polymorphic_flag_aliased_two(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person)
             .with_polymorphic([Manager, Engineer])
@@ -574,7 +574,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_with_polymorphic_explicit_aliased_two(self):
-        sess = create_session()
+        sess = fixture_session()
         pa = aliased(Paperwork)
         eq_(
             sess.query(Person)
@@ -587,7 +587,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_with_polymorphic_aliased_three(self):
-        sess = create_session()
+        sess = fixture_session()
         pa = aliased(Paperwork)
 
         eq_(
@@ -602,7 +602,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_polymorphic_nonaliased(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join("employees")
@@ -612,7 +612,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_polymorphic_flag_aliased(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join("employees", aliased=True)
@@ -622,7 +622,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_polymorphic_explicit_aliased(self):
-        sess = create_session()
+        sess = fixture_session()
         ea = aliased(Person)
         eq_(
             sess.query(Company)
@@ -633,13 +633,13 @@ class _PolymorphicTestBase(object):
         )
 
     def test_polymorphic_any_one(self):
-        sess = create_session()
+        sess = fixture_session()
 
         any_ = Company.employees.any(Person.name == "vlad")
         eq_(sess.query(Company).filter(any_).all(), [c2])
 
     def test_polymorphic_any_flag_alias_two(self):
-        sess = create_session()
+        sess = fixture_session()
         # test that the aliasing on "Person" does not bleed into the
         # EXISTS clause generated by any()
         any_ = Company.employees.any(Person.name == "wally")
@@ -653,7 +653,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_polymorphic_any_explicit_alias_two(self):
-        sess = create_session()
+        sess = fixture_session()
         # test that the aliasing on "Person" does not bleed into the
         # EXISTS clause generated by any()
         any_ = Company.employees.any(Person.name == "wally")
@@ -668,7 +668,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_polymorphic_any_three(self):
-        sess = create_session()
+        sess = fixture_session()
         any_ = Company.employees.any(Person.name == "vlad")
         ea = aliased(Person)
         eq_(
@@ -681,7 +681,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_polymorphic_any_eight(self):
-        sess = create_session()
+        sess = fixture_session()
         any_ = Engineer.machines.any(Machine.name == "Commodore 64")
         eq_(
             sess.query(Person).order_by(Person.person_id).filter(any_).all(),
@@ -689,7 +689,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_polymorphic_any_nine(self):
-        sess = create_session()
+        sess = fixture_session()
         any_ = Person.paperwork.any(Paperwork.description == "review #2")
         eq_(
             sess.query(Person).order_by(Person.person_id).filter(any_).all(),
@@ -697,13 +697,13 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_columns_or_subclass_one(self):
-        sess = create_session()
+        sess = fixture_session()
 
         expected = [("dogbert",), ("pointy haired boss",)]
         eq_(sess.query(Manager.name).order_by(Manager.name).all(), expected)
 
     def test_join_from_columns_or_subclass_two(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [("dogbert",), ("dogbert",), ("pointy haired boss",)]
         eq_(
             sess.query(Manager.name)
@@ -714,7 +714,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_columns_or_subclass_three(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [
             ("dilbert",),
             ("dilbert",),
@@ -734,7 +734,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_columns_or_subclass_four(self):
-        sess = create_session()
+        sess = fixture_session()
         # Load Person.name, joining from Person -> paperwork, get all
         # the people.
         expected = [
@@ -756,7 +756,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_columns_or_subclass_five(self):
-        sess = create_session()
+        sess = fixture_session()
         # same, on manager.  get only managers.
         expected = [("dogbert",), ("dogbert",), ("pointy haired boss",)]
         eq_(
@@ -768,7 +768,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_columns_or_subclass_six(self):
-        sess = create_session()
+        sess = fixture_session()
         if self.select_type == "":
             # this now raises, due to [ticket:1892].  Manager.person_id
             # is now the "person_id" column on Manager. SQL is incorrect.
@@ -813,7 +813,7 @@ class _PolymorphicTestBase(object):
             )
 
     def test_join_from_columns_or_subclass_seven(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Manager)
             .join(Paperwork, Manager.paperwork)
@@ -823,7 +823,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_columns_or_subclass_eight(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [("dogbert",), ("dogbert",), ("pointy haired boss",)]
         eq_(
             sess.query(Manager.name)
@@ -834,7 +834,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_columns_or_subclass_nine(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Manager.person_id)
             .join(paperwork, Manager.person_id == paperwork.c.person_id)
@@ -844,7 +844,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_columns_or_subclass_ten(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [
             ("pointy haired boss", "review #1"),
             ("dogbert", "review #2"),
@@ -859,7 +859,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_from_columns_or_subclass_eleven(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [("pointy haired boss",), ("dogbert",), ("dogbert",)]
         malias = aliased(Manager)
         eq_(
@@ -870,7 +870,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_subclass_option_pathing(self):
-        sess = create_session()
+        sess = fixture_session()
         dilbert = (
             sess.query(Person)
             .options(defaultload(Engineer.machines).defer(Machine.name))
@@ -887,7 +887,7 @@ class _PolymorphicTestBase(object):
         the select_table mapper.
         """
 
-        sess = create_session()
+        sess = fixture_session()
 
         name = "dogbert"
         m1 = sess.query(Manager).filter(Manager.name == name).one()
@@ -900,7 +900,7 @@ class _PolymorphicTestBase(object):
         assert m2.golf_swing == "fore"
 
     def test_with_polymorphic_one(self):
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -914,7 +914,7 @@ class _PolymorphicTestBase(object):
         self.assert_sql_count(testing.db, go, 1)
 
     def test_with_polymorphic_two(self):
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -928,7 +928,7 @@ class _PolymorphicTestBase(object):
         self.assert_sql_count(testing.db, go, 1)
 
     def test_with_polymorphic_three(self):
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -942,7 +942,7 @@ class _PolymorphicTestBase(object):
         self.assert_sql_count(testing.db, go, 3)
 
     def test_with_polymorphic_four(self):
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -956,7 +956,7 @@ class _PolymorphicTestBase(object):
         self.assert_sql_count(testing.db, go, 3)
 
     def test_with_polymorphic_five(self):
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             # limit the polymorphic join down to just "Person",
@@ -969,7 +969,7 @@ class _PolymorphicTestBase(object):
         self.assert_sql_count(testing.db, go, 6)
 
     def test_with_polymorphic_six(self):
-        sess = create_session()
+        sess = fixture_session()
 
         assert_raises(
             sa_exc.InvalidRequestError,
@@ -988,7 +988,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_with_polymorphic_seven(self):
-        sess = create_session()
+        sess = fixture_session()
         # compare to entities without related collections to prevent
         # additional lazy SQL from firing on loaded entities
         eq_(
@@ -1001,7 +1001,7 @@ class _PolymorphicTestBase(object):
 
     def test_relationship_to_polymorphic_one(self):
         expected = self._company_with_emps_machines_fixture()
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             # test load Companies with lazy load to 'employees'
@@ -1012,7 +1012,7 @@ class _PolymorphicTestBase(object):
 
     def test_relationship_to_polymorphic_two(self):
         expected = self._company_with_emps_machines_fixture()
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             # with #2438, of_type() is recognized.  This
@@ -1040,9 +1040,9 @@ class _PolymorphicTestBase(object):
 
     def test_relationship_to_polymorphic_three(self):
         expected = self._company_with_emps_machines_fixture()
-        sess = create_session()
+        sess = fixture_session()
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -1072,7 +1072,7 @@ class _PolymorphicTestBase(object):
         self.assert_sql_count(testing.db, go, count)
 
     def test_joinedload_on_subclass(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [
             Engineer(
                 name="dilbert",
@@ -1100,7 +1100,7 @@ class _PolymorphicTestBase(object):
         self.assert_sql_count(testing.db, go, 1)
 
     def test_subqueryload_on_subclass(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [
             Engineer(
                 name="dilbert",
@@ -1140,12 +1140,12 @@ class _PolymorphicTestBase(object):
         self.assert_sql_count(testing.db, go, 2)
 
     def test_query_subclass_join_to_base_relationship(self):
-        sess = create_session()
+        sess = fixture_session()
         # non-polymorphic
         eq_(sess.query(Engineer).join(Person.paperwork).all(), [e1, e2, e3])
 
     def test_join_to_subclass(self):
-        sess = create_session()
+        sess = fixture_session()
 
         # TODO: these should all be deprecated (?) - these joins are on the
         # core tables and should not be getting adapted, not sure why
@@ -1161,7 +1161,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_one(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .select_from(companies.join(people).join(engineers))
@@ -1171,7 +1171,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_two(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join(people.join(engineers), "employees")
@@ -1181,7 +1181,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_three(self):
-        sess = create_session()
+        sess = fixture_session()
         ealias = aliased(Engineer)
         eq_(
             sess.query(Company)
@@ -1192,7 +1192,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_six(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join(people.join(engineers), "employees")
@@ -1202,7 +1202,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_six_point_five(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join(people.join(engineers), "employees")
@@ -1213,7 +1213,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_seven(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join(people.join(engineers), "employees")
@@ -1224,11 +1224,11 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_eight(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(sess.query(Person).join(Engineer.machines).all(), [e1, e2, e3])
 
     def test_join_to_subclass_nine(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .select_from(companies.join(people).join(engineers))
@@ -1238,7 +1238,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_ten(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join("employees")
@@ -1248,7 +1248,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_eleven(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .select_from(companies.join(people).join(engineers))
@@ -1258,11 +1258,11 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_twelve(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(sess.query(Person).join(Engineer.machines).all(), [e1, e2, e3])
 
     def test_join_to_subclass_thirteen(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person)
             .join(Engineer.machines)
@@ -1272,14 +1272,14 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_fourteen(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company).join("employees", Engineer.machines).all(),
             [c1, c2],
         )
 
     def test_join_to_subclass_fifteen(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join("employees", Engineer.machines)
@@ -1289,12 +1289,12 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_sixteen(self):
-        sess = create_session()
+        sess = fixture_session()
         # non-polymorphic
         eq_(sess.query(Engineer).join(Engineer.machines).all(), [e1, e2, e3])
 
     def test_join_to_subclass_seventeen(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Engineer)
             .join(Engineer.machines)
@@ -1304,7 +1304,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_and_thru_polymorphic_nonaliased_one(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join(Company.employees)
@@ -1314,7 +1314,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_and_thru_polymorphic_aliased_one(self):
-        sess = create_session()
+        sess = fixture_session()
         ea = aliased(Person)
         pa = aliased(Paperwork)
         eq_(
@@ -1326,7 +1326,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_through_polymorphic_nonaliased_one(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join(Company.employees)
@@ -1337,7 +1337,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_through_polymorphic_nonaliased_two(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join(Company.employees)
@@ -1348,7 +1348,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_through_polymorphic_nonaliased_three(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join(Company.employees)
@@ -1360,7 +1360,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_through_polymorphic_nonaliased_four(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join(Company.employees)
@@ -1372,7 +1372,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_through_polymorphic_nonaliased_five(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join("employees")
@@ -1384,7 +1384,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_through_polymorphic_nonaliased_six(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join("employees")
@@ -1396,7 +1396,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_through_polymorphic_aliased_one(self):
-        sess = create_session()
+        sess = fixture_session()
         ea = aliased(Person)
         pa = aliased(Paperwork)
         eq_(
@@ -1409,7 +1409,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_through_polymorphic_aliased_two(self):
-        sess = create_session()
+        sess = fixture_session()
         ea = aliased(Person)
         pa = aliased(Paperwork)
         eq_(
@@ -1422,7 +1422,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_through_polymorphic_aliased_three(self):
-        sess = create_session()
+        sess = fixture_session()
         ea = aliased(Person)
         pa = aliased(Paperwork)
         eq_(
@@ -1436,7 +1436,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_through_polymorphic_aliased_four(self):
-        sess = create_session()
+        sess = fixture_session()
         ea = aliased(Person)
         pa = aliased(Paperwork)
         eq_(
@@ -1450,7 +1450,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_through_polymorphic_aliased_five(self):
-        sess = create_session()
+        sess = fixture_session()
         ea = aliased(Person)
         pa = aliased(Paperwork)
         eq_(
@@ -1464,7 +1464,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_through_polymorphic_aliased_six(self):
-        sess = create_session()
+        sess = fixture_session()
         pa = aliased(Paperwork)
         ea = aliased(Person)
         eq_(
@@ -1478,7 +1478,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_explicit_polymorphic_join_one(self):
-        sess = create_session()
+        sess = fixture_session()
 
         # join from Company to Engineer; join condition formulated by
         # ORMJoin using regular table foreign key connections.  Engineer
@@ -1493,7 +1493,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_explicit_polymorphic_join_two(self):
-        sess = create_session()
+        sess = fixture_session()
 
         # same, using explicit join condition.  Query.join() must
         # adapt the on clause here to match the subquery wrapped around
@@ -1507,7 +1507,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_filter_on_baseclass(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(sess.query(Person).order_by(Person.person_id).all(), all_employees)
         eq_(
             sess.query(Person).order_by(Person.person_id).first(),
@@ -1522,7 +1522,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_from_alias(self):
-        sess = create_session()
+        sess = fixture_session()
         palias = aliased(Person)
         eq_(
             sess.query(palias)
@@ -1533,7 +1533,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_self_referential_one(self):
-        sess = create_session()
+        sess = fixture_session()
         palias = aliased(Person)
         expected = [(m1, e1), (m1, e2), (m1, b1)]
 
@@ -1549,7 +1549,7 @@ class _PolymorphicTestBase(object):
 
     def test_self_referential_two(self):
 
-        sess = create_session()
+        sess = fixture_session()
         palias = aliased(Person)
         expected = [(m1, e1), (m1, e2), (m1, b1)]
 
@@ -1567,7 +1567,7 @@ class _PolymorphicTestBase(object):
 
     def test_self_referential_two_point_five(self):
         """Using two aliases, the above case works."""
-        sess = create_session()
+        sess = fixture_session()
         palias = aliased(Person)
         palias2 = aliased(Person)
 
@@ -1588,7 +1588,7 @@ class _PolymorphicTestBase(object):
     def test_self_referential_two_future(self):
         # TODO: this is the SECOND test *EVER* of an aliased class of
         # an aliased class.
-        sess = create_session(future=True)
+        sess = fixture_session(future=True)
         expected = [(m1, e1), (m1, e2), (m1, b1)]
 
         # not aliasing the first class
@@ -1618,7 +1618,7 @@ class _PolymorphicTestBase(object):
         # TODO: this is the first test *EVER* of an aliased class of
         # an aliased class.  we should add many more tests for this.
         # new case added in Id810f485c5f7ed971529489b84694e02a3356d6d
-        sess = create_session(future=True)
+        sess = fixture_session(future=True)
         expected = [(m1, e1), (m1, e2), (m1, b1)]
 
         # aliasing the first class
@@ -1648,7 +1648,7 @@ class _PolymorphicTestBase(object):
         # second "filter" from hitting it, which would pollute the
         # subquery and usually results in recursion overflow errors
         # within the adaption.
-        sess = create_session()
+        sess = fixture_session()
         subq = (
             sess.query(engineers.c.person_id)
             .filter(Engineer.primary_language == "java")
@@ -1658,7 +1658,7 @@ class _PolymorphicTestBase(object):
         eq_(sess.query(Person).filter(Person.person_id.in_(subq)).one(), e1)
 
     def test_mixed_entities_one(self):
-        sess = create_session()
+        sess = fixture_session()
 
         expected = [
             (
@@ -1744,7 +1744,7 @@ class _PolymorphicTestBase(object):
         _join_to_poly_wp_three,
     )
     def test_mixed_entities_join_to_poly(self, q):
-        sess = create_session()
+        sess = fixture_session()
         expected = [
             ("dilbert", "MegaCorp, Inc."),
             ("wally", "MegaCorp, Inc."),
@@ -1758,7 +1758,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_two(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [
             ("java", "MegaCorp, Inc."),
             ("cobol", "Elbonia, Inc."),
@@ -1774,7 +1774,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_three(self):
-        sess = create_session()
+        sess = fixture_session()
         palias = aliased(Person)
         expected = [
             (
@@ -1807,7 +1807,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_four(self):
-        sess = create_session()
+        sess = fixture_session()
         palias = aliased(Person)
         expected = [
             (
@@ -1841,7 +1841,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_five(self):
-        sess = create_session()
+        sess = fixture_session()
         palias = aliased(Person)
         expected = [("vlad", "Elbonia, Inc.", "dilbert")]
         eq_(
@@ -1855,7 +1855,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_six(self):
-        sess = create_session()
+        sess = fixture_session()
         palias = aliased(Person)
         expected = [
             ("manager", "dogbert", "engineer", "dilbert"),
@@ -1873,7 +1873,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_seven(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [
             ("dilbert", "tps report #1"),
             ("dilbert", "tps report #2"),
@@ -1893,7 +1893,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_eight(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(func.count(Person.person_id))
             .filter(Engineer.primary_language == "java")
@@ -1902,7 +1902,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_nine(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [("Elbonia, Inc.", 1), ("MegaCorp, Inc.", 4)]
         eq_(
             sess.query(Company.name, func.count(Person.person_id))
@@ -1914,7 +1914,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_ten(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [("Elbonia, Inc.", 1), ("MegaCorp, Inc.", 4)]
         eq_(
             sess.query(Company.name, func.count(Person.person_id))
@@ -1926,7 +1926,7 @@ class _PolymorphicTestBase(object):
         )
 
     # def test_mixed_entities(self):
-    #    sess = create_session()
+    #    sess = fixture_session()
     # TODO: I think raise error on these for now.  different
     # inheritance/loading schemes have different results here,
     # all incorrect
@@ -1936,7 +1936,7 @@ class _PolymorphicTestBase(object):
     #    [])
 
     # def test_mixed_entities(self):
-    #    sess = create_session()
+    #    sess = fixture_session()
     # eq_(sess.query(
     #             Person.name,
     #             Engineer.primary_language,
@@ -1945,7 +1945,7 @@ class _PolymorphicTestBase(object):
     #     [])
 
     def test_mixed_entities_eleven(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [("java",), ("c++",), ("cobol",)]
         eq_(
             sess.query(Engineer.primary_language)
@@ -1955,7 +1955,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_twelve(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [("vlad", "Elbonia, Inc.")]
         eq_(
             sess.query(Person.name, Company.name)
@@ -1966,12 +1966,12 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_thirteen(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [("pointy haired boss", "fore")]
         eq_(sess.query(Boss.name, Boss.golf_swing).all(), expected)
 
     def test_mixed_entities_fourteen(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [("dilbert", "java"), ("wally", "c++"), ("vlad", "cobol")]
         eq_(
             sess.query(Engineer.name, Engineer.primary_language).all(),
@@ -1979,7 +1979,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_fifteen(self):
-        sess = create_session()
+        sess = fixture_session()
 
         expected = [
             (
@@ -2001,7 +2001,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_sixteen(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [
             (
                 Engineer(
@@ -2022,17 +2022,17 @@ class _PolymorphicTestBase(object):
         )
 
     def test_mixed_entities_seventeen(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [("pointy haired boss",), ("dogbert",)]
         eq_(sess.query(Manager.name).all(), expected)
 
     def test_mixed_entities_eighteen(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [("pointy haired boss foo",), ("dogbert foo",)]
         eq_(sess.query(Manager.name + " foo").all(), expected)
 
     def test_mixed_entities_nineteen(self):
-        sess = create_session()
+        sess = fixture_session()
         row = (
             sess.query(Engineer.name, Engineer.primary_language)
             .filter(Engineer.name == "dilbert")
@@ -2042,7 +2042,7 @@ class _PolymorphicTestBase(object):
         assert row.primary_language == "java"
 
     def test_correlation_one(self):
-        sess = create_session()
+        sess = fixture_session()
 
         # this for a long time did not work with PolymorphicAliased and
         # PolymorphicUnions, which was due to the no_replacement_traverse
@@ -2063,7 +2063,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_correlation_two(self):
-        sess = create_session()
+        sess = fixture_session()
 
         paliased = aliased(Person)
 
@@ -2081,7 +2081,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_correlation_three(self):
-        sess = create_session()
+        sess = fixture_session()
 
         paliased = aliased(Person, flat=True)
 
@@ -2101,7 +2101,7 @@ class _PolymorphicTestBase(object):
 
 class PolymorphicTest(_PolymorphicTestBase, _Polymorphic):
     def test_join_to_subclass_four(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person)
             .select_from(people.join(engineers))
@@ -2111,7 +2111,7 @@ class PolymorphicTest(_PolymorphicTestBase, _Polymorphic):
         )
 
     def test_join_to_subclass_five(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person)
             .select_from(people.join(engineers))
@@ -2123,7 +2123,7 @@ class PolymorphicTest(_PolymorphicTestBase, _Polymorphic):
 
     def test_correlation_w_polymorphic(self):
 
-        sess = create_session()
+        sess = fixture_session()
 
         p_poly = with_polymorphic(Person, "*")
 
@@ -2142,7 +2142,7 @@ class PolymorphicTest(_PolymorphicTestBase, _Polymorphic):
 
     def test_correlation_w_polymorphic_flat(self):
 
-        sess = create_session()
+        sess = fixture_session()
 
         p_poly = with_polymorphic(Person, "*", flat=True)
 
@@ -2184,7 +2184,7 @@ class PolymorphicPolymorphicTest(
         # aliased(polymorphic) will normally do the old-school
         # "(SELECT * FROM a JOIN b ...) AS anon_1" thing.
         # this is the safest
-        sess = create_session()
+        sess = fixture_session()
         palias = aliased(Person)
         self.assert_compile(
             sess.query(palias, Company.name)
@@ -2235,7 +2235,7 @@ class PolymorphicPolymorphicTest(
         )
 
     def test_flat_aliased_w_select_from(self):
-        sess = create_session()
+        sess = fixture_session()
         palias = aliased(Person, flat=True)
         self.assert_compile(
             sess.query(palias, Company.name)
@@ -2275,7 +2275,7 @@ class PolymorphicPolymorphicTest(
 
 class PolymorphicUnionsTest(_PolymorphicTestBase, _PolymorphicUnions):
     def test_subqueryload_on_subclass_uses_path_correctly(self):
-        sess = create_session()
+        sess = fixture_session()
         expected = [
             Engineer(
                 name="dilbert",
@@ -2361,7 +2361,7 @@ class PolymorphicAliasedJoinsTest(
 
 class PolymorphicJoinsTest(_PolymorphicTestBase, _PolymorphicJoins):
     def test_having_group_by(self):
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Person.name)
             .group_by(Person.name)
index 35c7565fb9d66e7eca638187e0f865215fd03931..e940cb0f424cd268a007237a520630c59b7ef227 100644 (file)
@@ -11,7 +11,7 @@ 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 create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -174,7 +174,7 @@ class InheritTest(fixtures.MappedTest):
             ),
         )
 
-        session = create_session()
+        session = fixture_session()
 
         a1 = Assembly(name="a1")
 
@@ -223,7 +223,7 @@ class InheritTest(fixtures.MappedTest):
             ),
         )
 
-        session = create_session()
+        session = fixture_session()
 
         s = SpecLine(follower=Product(name="p1"))
         s2 = SpecLine(follower=Detail(name="d1"))
@@ -300,7 +300,7 @@ class InheritTest(fixtures.MappedTest):
             polymorphic_identity="raster_document",
         )
 
-        session = create_session()
+        session = fixture_session()
 
         a1 = Assembly(name="a1")
         a1.specification.append(SpecLine(follower=Detail(name="d1")))
@@ -359,7 +359,7 @@ class InheritTest(fixtures.MappedTest):
             polymorphic_identity="raster_document",
         )
 
-        session = create_session()
+        session = fixture_session()
 
         a1 = Assembly(name="a1")
         a1.documents.append(RasterDocument("doc2"))
@@ -448,7 +448,7 @@ class InheritTest(fixtures.MappedTest):
 
         mapper(Assembly, inherits=Product, polymorphic_identity="assembly")
 
-        session = create_session()
+        session = fixture_session()
 
         a1 = Assembly(name="a1")
         a1.specification.append(SpecLine(follower=Detail(name="d1")))
index 6879e146587bb083b144331da6f187f993766bcc..214be5e9aab744091816b83b23725b9a22b2c6c7 100644 (file)
@@ -21,7 +21,7 @@ from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
 from sqlalchemy.testing.entities import ComparableEntity
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -116,7 +116,7 @@ class SelfReferentialTestJoinedToBase(fixtures.MappedTest):
     def test_has(self):
         p1 = Person(name="dogbert")
         e1 = Engineer(name="dilbert", primary_language="java", reports_to=p1)
-        sess = create_session()
+        sess = fixture_session()
         sess.add(p1)
         sess.add(e1)
         sess.flush()
@@ -131,7 +131,7 @@ class SelfReferentialTestJoinedToBase(fixtures.MappedTest):
     def test_oftype_aliases_in_exists(self):
         e1 = Engineer(name="dilbert", primary_language="java")
         e2 = Engineer(name="wally", primary_language="c++", reports_to=e1)
-        sess = create_session()
+        sess = fixture_session()
         sess.add_all([e1, e2])
         sess.flush()
         eq_(
@@ -148,7 +148,7 @@ class SelfReferentialTestJoinedToBase(fixtures.MappedTest):
     def test_join(self):
         p1 = Person(name="dogbert")
         e1 = Engineer(name="dilbert", primary_language="java", reports_to=p1)
-        sess = create_session()
+        sess = fixture_session()
         sess.add(p1)
         sess.add(e1)
         sess.flush()
@@ -242,7 +242,7 @@ class SelfReferentialJ2JTest(fixtures.MappedTest):
     def test_has(self):
         m1 = Manager(name="dogbert")
         e1 = Engineer(name="dilbert", primary_language="java", reports_to=m1)
-        sess = create_session()
+        sess = fixture_session()
         sess.add(m1)
         sess.add(e1)
         sess.flush()
@@ -258,7 +258,7 @@ class SelfReferentialJ2JTest(fixtures.MappedTest):
     def test_join(self):
         m1 = Manager(name="dogbert")
         e1 = Engineer(name="dilbert", primary_language="java", reports_to=m1)
-        sess = create_session()
+        sess = fixture_session()
         sess.add(m1)
         sess.add(e1)
         sess.flush()
@@ -281,7 +281,7 @@ class SelfReferentialJ2JTest(fixtures.MappedTest):
         e2 = Engineer(name="dilbert", primary_language="c++", reports_to=m2)
         e3 = Engineer(name="etc", primary_language="c++")
 
-        sess = create_session()
+        sess = fixture_session()
         sess.add_all([m1, m2, e1, e2, e3])
         sess.flush()
         sess.expunge_all()
@@ -318,7 +318,7 @@ class SelfReferentialJ2JTest(fixtures.MappedTest):
         e2 = Engineer(name="wally", primary_language="c++", reports_to=m2)
         e3 = Engineer(name="etc", primary_language="c++")
 
-        sess = create_session()
+        sess = fixture_session()
         sess.add(m1)
         sess.add(m2)
         sess.add(e1)
@@ -409,13 +409,13 @@ class SelfReferentialJ2JSelfTest(fixtures.MappedTest):
     def _two_obj_fixture(self):
         e1 = Engineer(name="wally")
         e2 = Engineer(name="dilbert", reports_to=e1)
-        sess = Session()
+        sess = fixture_session()
         sess.add_all([e1, e2])
         sess.commit()
         return sess
 
     def _five_obj_fixture(self):
-        sess = Session()
+        sess = fixture_session()
         e1, e2, e3, e4, e5 = [Engineer(name="e%d" % (i + 1)) for i in range(5)]
         e3.reports_to = e1
         e4.reports_to = e2
@@ -596,7 +596,7 @@ class M2MFilterTest(fixtures.MappedTest):
 
     def test_not_contains(self):
         Organization = self.classes.Organization
-        sess = create_session()
+        sess = fixture_session()
         e1 = sess.query(Person).filter(Engineer.name == "e1").one()
 
         eq_(
@@ -615,7 +615,7 @@ class M2MFilterTest(fixtures.MappedTest):
         )
 
     def test_any(self):
-        sess = create_session()
+        sess = fixture_session()
         Organization = self.classes.Organization
 
         eq_(
@@ -718,7 +718,7 @@ class SelfReferentialM2MTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_query_crit(self):
         Child1, Child2 = self.classes.Child1, self.classes.Child2
-        sess = create_session()
+        sess = fixture_session()
         c11, c12, c13 = Child1(), Child1(), Child1()
         c21, c22, c23 = Child2(), Child2(), Child2()
         c11.left_child2 = c22
@@ -812,7 +812,7 @@ class SelfReferentialM2MTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_eager_join(self):
         Child1, Child2 = self.classes.Child1, self.classes.Child2
-        sess = create_session()
+        sess = fixture_session()
         c1 = Child1()
         c1.left_child2 = Child2()
         sess.add(c1)
@@ -849,7 +849,7 @@ class SelfReferentialM2MTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_subquery_load(self):
         Child1, Child2 = self.classes.Child1, self.classes.Child2
-        sess = create_session()
+        sess = fixture_session()
         c1 = Child1()
         c1.left_child2 = Child2()
         sess.add(c1)
@@ -974,7 +974,7 @@ class EagerToSubclassTest(fixtures.MappedTest):
 
     def test_joinedload(self):
         Parent = self.classes.Parent
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -987,7 +987,7 @@ class EagerToSubclassTest(fixtures.MappedTest):
     def test_contains_eager(self):
         Parent = self.classes.Parent
         Sub = self.classes.Sub
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -1004,7 +1004,7 @@ class EagerToSubclassTest(fixtures.MappedTest):
     def test_subq_through_related(self):
         Parent = self.classes.Parent
         Base = self.classes.Base
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -1023,7 +1023,7 @@ class EagerToSubclassTest(fixtures.MappedTest):
         Parent = self.classes.Parent
         Base = self.classes.Base
         pa = aliased(Parent)
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -1150,7 +1150,7 @@ class SubClassEagerToSubClassTest(fixtures.MappedTest):
     def test_joinedload(self):
         Subparent = self.classes.Subparent
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -1175,7 +1175,7 @@ class SubClassEagerToSubClassTest(fixtures.MappedTest):
     def test_contains_eager(self):
         Subparent = self.classes.Subparent
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -1204,7 +1204,7 @@ class SubClassEagerToSubClassTest(fixtures.MappedTest):
     def test_subqueryload(self):
         Subparent = self.classes.Subparent
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -1336,7 +1336,7 @@ class SameNamedPropTwoPolymorphicSubClassesTest(fixtures.MappedTest):
         C = self.classes.C
         D = self.classes.D
 
-        session = Session()
+        session = fixture_session()
         d = session.query(D).one()
         a_poly = with_polymorphic(A, [B, C])
 
@@ -1354,7 +1354,7 @@ class SameNamedPropTwoPolymorphicSubClassesTest(fixtures.MappedTest):
         C = self.classes.C
         D = self.classes.D
 
-        session = Session()
+        session = fixture_session()
         d = session.query(D).one()
 
         def go():
@@ -1375,7 +1375,7 @@ class SameNamedPropTwoPolymorphicSubClassesTest(fixtures.MappedTest):
         C = self.classes.C
         D = self.classes.D
 
-        session = Session()
+        session = fixture_session()
         d = session.query(D).one()
         a_poly = with_polymorphic(A, [B, C])
 
@@ -1393,7 +1393,7 @@ class SameNamedPropTwoPolymorphicSubClassesTest(fixtures.MappedTest):
         C = self.classes.C
         D = self.classes.D
 
-        session = Session()
+        session = fixture_session()
         d = session.query(D).one()
 
         def go():
@@ -1499,7 +1499,7 @@ class SubClassToSubClassFromParentTest(fixtures.MappedTest):
 
     def test_2617(self):
         A = self.classes.A
-        session = Session()
+        session = fixture_session()
 
         def go():
             a1 = session.query(A).first()
@@ -1642,7 +1642,7 @@ class SubClassToSubClassMultiTest(AssertsCompiledSQL, fixtures.MappedTest):
     def test_one(self):
         Parent, Base1, Base2, Sub1, Sub2, EP1, EP2 = self._classes()
 
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(Parent)
             .join(Parent.sub1, Sub1.sub2)
@@ -1663,7 +1663,7 @@ class SubClassToSubClassMultiTest(AssertsCompiledSQL, fixtures.MappedTest):
 
         s2a = aliased(Sub2, flat=True)
 
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(Parent).join(Parent.sub1).join(s2a, Sub1.sub2),
             "SELECT parent.id AS parent_id, parent.data AS parent_data "
@@ -1677,7 +1677,7 @@ class SubClassToSubClassMultiTest(AssertsCompiledSQL, fixtures.MappedTest):
     def test_three(self):
         Parent, Base1, Base2, Sub1, Sub2, EP1, EP2 = self._classes()
 
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(Base1).join(Base1.sub2).join(Sub2.ep1).join(Sub2.ep2),
             "SELECT base1.id AS base1_id, base1.data AS base1_data "
@@ -1691,7 +1691,7 @@ class SubClassToSubClassMultiTest(AssertsCompiledSQL, fixtures.MappedTest):
     def test_four(self):
         Parent, Base1, Base2, Sub1, Sub2, EP1, EP2 = self._classes()
 
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(Sub2)
             .join(Base1, Base1.id == Sub2.base1_id)
@@ -1709,7 +1709,7 @@ class SubClassToSubClassMultiTest(AssertsCompiledSQL, fixtures.MappedTest):
     def test_five(self):
         Parent, Base1, Base2, Sub1, Sub2, EP1, EP2 = self._classes()
 
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(Sub2)
             .join(Sub1, Sub1.id == Sub2.base1_id)
@@ -1729,7 +1729,7 @@ class SubClassToSubClassMultiTest(AssertsCompiledSQL, fixtures.MappedTest):
     def test_six_legacy(self):
         Parent, Base1, Base2, Sub1, Sub2, EP1, EP2 = self._classes()
 
-        s = Session()
+        s = fixture_session()
 
         # as of from_self() changing in
         # I3abfb45dd6e50f84f29d39434caa0b550ce27864,
@@ -1781,7 +1781,7 @@ class SubClassToSubClassMultiTest(AssertsCompiledSQL, fixtures.MappedTest):
     def test_seven_legacy(self):
         Parent, Base1, Base2, Sub1, Sub2, EP1, EP2 = self._classes()
 
-        s = Session()
+        s = fixture_session()
 
         # as of from_self() changing in
         # I3abfb45dd6e50f84f29d39434caa0b550ce27864,
@@ -1946,7 +1946,7 @@ class JoinedloadWPolyOfTypeContinued(
     def test_joined_load_lastlink_subclass(self):
         Foo, User, SubBar = self.classes("Foo", "User", "SubBar")
 
-        s = Session()
+        s = fixture_session()
 
         foo_polymorphic = with_polymorphic(Foo, "*", aliased=True)
 
@@ -1992,7 +1992,7 @@ class JoinedloadWPolyOfTypeContinued(
     def test_joined_load_lastlink_baseclass(self):
         Foo, User, Bar = self.classes("Foo", "User", "Bar")
 
-        s = Session()
+        s = fixture_session()
 
         foo_polymorphic = with_polymorphic(Foo, "*", aliased=True)
 
@@ -2072,7 +2072,7 @@ class ContainsEagerMultipleOfType(
 
     def test_contains_eager_multi_alias(self):
         X, B, A = self.classes("X", "B", "A")
-        s = Session()
+        s = fixture_session()
 
         a_b_alias = aliased(B, name="a_b")
         b_x_alias = aliased(X, name="b_x")
@@ -2141,7 +2141,7 @@ class JoinedloadSinglePolysubSingle(
 
     def test_query(self):
         Thing = self.classes.Thing
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Thing),
             "SELECT things.id AS things_id, "
@@ -2281,7 +2281,7 @@ class JoinedloadOverWPolyAliased(
         cls = fn()
         Link = self.classes.Link
 
-        session = Session()
+        session = fixture_session()
         q = session.query(cls).options(
             joinedload(cls.links).joinedload(Link.child).joinedload(cls.links)
         )
@@ -2310,7 +2310,7 @@ class JoinedloadOverWPolyAliased(
         parent_cls = fn()
         Link = self.classes.Link
 
-        session = Session()
+        session = fixture_session()
         q = session.query(Link).options(
             joinedload(Link.child).joinedload(parent_cls.owner)
         )
@@ -2341,7 +2341,7 @@ class JoinedloadOverWPolyAliased(
 
         poly = with_polymorphic(Parent, [Sub1])
 
-        session = Session()
+        session = fixture_session()
         q = session.query(poly).options(
             joinedload(poly.Sub1.links)
             .joinedload(Link.child.of_type(Sub1))
@@ -2369,7 +2369,7 @@ class JoinedloadOverWPolyAliased(
 
         poly = with_polymorphic(Parent, [Sub1])
 
-        session = Session()
+        session = fixture_session()
         q = session.query(poly).options(
             joinedload(poly.Sub1.links, innerjoin=True)
             .joinedload(Link.child.of_type(Sub1), innerjoin=True)
@@ -2395,7 +2395,7 @@ class JoinedloadOverWPolyAliased(
         Parent = self.classes.Parent
         Link = self.classes.Link
 
-        session = Session()
+        session = fixture_session()
         session.add_all([Parent(), Parent()])
 
         # represents "Parent" and "Sub1" rows
@@ -2472,7 +2472,7 @@ class JoinAcrossJoinedInhMultiPath(
         t1_alias = aliased(Target)
         t2_alias = aliased(Target)
 
-        sess = Session()
+        sess = fixture_session()
         q = (
             sess.query(Root)
             .join(s1_alias, Root.sub1)
@@ -2508,7 +2508,7 @@ class JoinAcrossJoinedInhMultiPath(
         t1_alias = aliased(Target)
         t2_alias = aliased(Target)
 
-        sess = Session()
+        sess = fixture_session()
         q = (
             sess.query(Root)
             .join(s1_alias, Root.sub1)
@@ -2539,7 +2539,7 @@ class JoinAcrossJoinedInhMultiPath(
             self.classes.Sub1,
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(Root).options(
             joinedload(Root.sub1).joinedload(Sub1.target),
             joinedload(Root.intermediate)
@@ -2631,7 +2631,7 @@ class MultipleAdaptUsesEntityOverTableTest(
 
     def _two_join_fixture(self):
         B, C, D = (self.classes.B, self.classes.C, self.classes.D)
-        s = Session()
+        s = fixture_session()
         return (
             s.query(B.name, C.name, D.name)
             .select_from(B)
@@ -2805,7 +2805,7 @@ class BetweenSubclassJoinWExtraJoinedLoad(
     def test_query(self):
         Engineer, Manager = self.classes("Engineer", "Manager")
 
-        sess = Session()
+        sess = fixture_session()
 
         # eager join is both from Enginer->LastSeen as well as
         # Manager->LastSeen.  In the case of Manager->LastSeen,
@@ -2885,7 +2885,7 @@ class M2ODontLoadSiblingTest(fixtures.DeclarativeMappedTest):
 
     def test_load_m2o_emit_query(self):
         Other, Child1 = self.classes("Other", "Child1")
-        s = Session()
+        s = fixture_session()
 
         obj = s.query(Other).first()
 
@@ -2894,7 +2894,7 @@ class M2ODontLoadSiblingTest(fixtures.DeclarativeMappedTest):
 
     def test_load_m2o_use_get(self):
         Other, Child1 = self.classes("Other", "Child1")
-        s = Session()
+        s = fixture_session()
 
         obj = s.query(Other).first()
         c1 = s.query(Child1).first()
index dab1841943f5b2df32dbbc9d1120631de65cd422..24297dd0ebc8890a20e94733b00a00021de71c6f 100644 (file)
@@ -6,6 +6,7 @@ from sqlalchemy.orm import mapper
 from sqlalchemy.orm import Session
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -117,7 +118,7 @@ class JoinFromSelectPersistenceTest(fixtures.MappedTest):
         )
         mapper(Child, child, inherits=Base, polymorphic_identity="child")
 
-        sess = Session()
+        sess = fixture_session()
 
         # 2. use an id other than "1" here so can't rely on
         # the two inserts having the same id
index cbe6bd238eed3c4356d29f2747b6979e293f61b0..11c6bb21283811228f534e1fabfa62ccd24216bd 100644 (file)
@@ -16,14 +16,13 @@ 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
 from sqlalchemy.orm import subqueryload
 from sqlalchemy.orm import with_polymorphic
 from sqlalchemy.testing import AssertsCompiledSQL
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing.assertsql import CompiledSQL
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -126,7 +125,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
             self.classes.Engineer,
         )
 
-        session = create_session()
+        session = fixture_session()
 
         m1 = Manager(name="Tom", manager_data="knows how to manage things")
         e1 = Engineer(name="Kurt", engineer_info="knows how to hack")
@@ -283,7 +282,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
     def test_from_self_legacy(self):
         Engineer = self.classes.Engineer
 
-        sess = create_session()
+        sess = fixture_session()
         with testing.expect_deprecated(r"The Query.from_self\(\) method"):
             self.assert_compile(
                 sess.query(Engineer).from_self(),
@@ -350,7 +349,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
     def test_select_from_aliased_w_subclass(self):
         Engineer = self.classes.Engineer
 
-        sess = create_session()
+        sess = fixture_session()
 
         a1 = aliased(Engineer)
         self.assert_compile(
@@ -369,7 +368,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
     def test_union_modifiers(self):
         Engineer, Manager = self.classes("Engineer", "Manager")
 
-        sess = create_session()
+        sess = fixture_session()
         q1 = sess.query(Engineer).filter(Engineer.engineer_info == "foo")
         q2 = sess.query(Manager).filter(Manager.manager_data == "bar")
 
@@ -420,7 +419,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
 
         Engineer, Manager = self.classes("Engineer", "Manager")
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(Engineer)
@@ -437,7 +436,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
     def test_from_self_count(self):
         Engineer = self.classes.Engineer
 
-        sess = create_session()
+        sess = fixture_session()
         col = func.count(literal_column("*"))
         with testing.expect_deprecated(r"The Query.from_self\(\) method"):
             self.assert_compile(
@@ -452,7 +451,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
     def test_select_from_count(self):
         Manager, Engineer = (self.classes.Manager, self.classes.Engineer)
 
-        sess = create_session()
+        sess = fixture_session()
         m1 = Manager(name="Tom", manager_data="data1")
         e1 = Engineer(name="Kurt", engineer_info="knows how to hack")
         sess.add_all([m1, e1])
@@ -468,7 +467,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
             self.classes.Engineer,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         m1 = Manager(name="Tom", manager_data="data1")
         m2 = Manager(name="Tom2", manager_data="data2")
         e1 = Engineer(name="Kurt", engineer_info="knows how to hack")
@@ -500,7 +499,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
             self.classes.Engineer,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         r1, r2, r3, r4 = (
             Report(name="r1"),
             Report(name="r2"),
@@ -544,7 +543,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
         Manager = self.classes.Manager
         Engineer = self.classes.Engineer
 
-        sess = create_session()
+        sess = fixture_session()
         m1 = Manager(name="Tom", manager_data="data1")
         m2 = Manager(name="Tom2", manager_data="data2")
         e1 = Engineer(name="Kurt", engineer_info="data3")
@@ -562,7 +561,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
     def test_exists_standalone(self):
         Engineer = self.classes.Engineer
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(
@@ -580,7 +579,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
             self.classes.Engineer,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         m1 = Manager(name="Tom", manager_data="data1")
         r1 = Report(employee=m1)
@@ -602,7 +601,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
             self.classes.Engineer,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         m1 = Manager(name="Tom", manager_data="data1")
         r1 = Report(employee=m1)
@@ -695,7 +694,7 @@ class RelationshipFromSingleTest(
     def test_subquery_load(self):
         Employee, Stuff, Manager = self.classes("Employee", "Stuff", "Manager")
 
-        sess = create_session()
+        sess = fixture_session()
 
         with self.sql_execution_asserter(testing.db) as asserter:
             sess.query(Manager).options(subqueryload("stuff")).all()
@@ -809,7 +808,7 @@ class RelationshipToSingleTest(
             inherits=Engineer,
             polymorphic_identity="juniorengineer",
         )
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         c1 = Company(name="c1")
         c2 = Company(name="c2")
@@ -851,7 +850,7 @@ class RelationshipToSingleTest(
         mapper(Employee, employees, polymorphic_on=employees.c.type)
         mapper(Engineer, inherits=Employee, polymorphic_identity="engineer")
 
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Company).outerjoin(
                 Company.employee.of_type(Engineer),
@@ -882,7 +881,7 @@ class RelationshipToSingleTest(
         mapper(Employee, employees)
         mapper(Engineer, inherits=Employee)
 
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Company, Engineer.name).join(
                 Engineer, Company.company_id == Engineer.company_id
@@ -910,7 +909,7 @@ class RelationshipToSingleTest(
         mapper(Employee, employees, polymorphic_on=employees.c.type)
         mapper(Engineer, inherits=Employee, polymorphic_identity="engineer")
 
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Company, Engineer.name).outerjoin("engineers"),
             "SELECT companies.company_id AS companies_company_id, "
@@ -938,7 +937,7 @@ class RelationshipToSingleTest(
         mapper(Engineer, inherits=Employee, polymorphic_identity="engineer")
 
         eng_alias = aliased(Engineer)
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Company, eng_alias.name).outerjoin(
                 eng_alias, Company.engineers
@@ -967,7 +966,7 @@ class RelationshipToSingleTest(
         mapper(Employee, employees, polymorphic_on=employees.c.type)
         mapper(Engineer, inherits=Employee, polymorphic_identity="engineer")
 
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Company, Engineer).outerjoin(
                 Engineer, Company.company_id == Engineer.company_id
@@ -1002,7 +1001,7 @@ class RelationshipToSingleTest(
         mapper(Engineer, inherits=Employee, polymorphic_identity="engineer")
 
         eng_alias = aliased(Engineer)
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Company, eng_alias).outerjoin(
                 eng_alias, Company.company_id == eng_alias.company_id
@@ -1036,7 +1035,7 @@ class RelationshipToSingleTest(
         mapper(Employee, employees, polymorphic_on=employees.c.type)
         mapper(Engineer, inherits=Employee, polymorphic_identity="engineer")
 
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Company, Engineer).outerjoin(Engineer),
             "SELECT companies.company_id AS companies_company_id, "
@@ -1069,7 +1068,7 @@ class RelationshipToSingleTest(
         mapper(Engineer, inherits=Employee, polymorphic_identity="engineer")
 
         eng_alias = aliased(Engineer)
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Company, eng_alias).outerjoin(eng_alias),
             "SELECT companies.company_id AS companies_company_id, "
@@ -1102,7 +1101,7 @@ class RelationshipToSingleTest(
         )
         mapper(Engineer, inherits=Employee, polymorphic_identity="engineer")
 
-        sess = create_session()
+        sess = fixture_session()
         engineer_count = (
             sess.query(func.count(Engineer.employee_id))
             .select_from(Engineer)
@@ -1144,7 +1143,7 @@ class RelationshipToSingleTest(
         mapper(Engineer, inherits=Employee, polymorphic_identity="engineer")
         mapper(Manager, inherits=Employee, polymorphic_identity="manager")
 
-        s = create_session()
+        s = fixture_session()
 
         q1 = (
             s.query(Engineer)
@@ -1236,7 +1235,7 @@ class RelationshipToSingleTest(
             inherits=Engineer,
             polymorphic_identity="juniorengineer",
         )
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         c1 = Company(name="c1")
         c2 = Company(name="c2")
@@ -1433,7 +1432,7 @@ class ManyToManyToSingleTest(fixtures.MappedTest, AssertsCompiledSQL):
         Parent = self.classes.Parent
         SubChild1 = self.classes.SubChild1
 
-        s = Session()
+        s = fixture_session()
 
         p1 = s.query(Parent).options(joinedload(Parent.s1)).all()[0]
         eq_(p1.__dict__["s1"], SubChild1(name="sc1_1"))
@@ -1443,7 +1442,7 @@ class ManyToManyToSingleTest(fixtures.MappedTest, AssertsCompiledSQL):
         Child = self.classes.Child
         SubChild1 = self.classes.SubChild1
 
-        s = Session()
+        s = fixture_session()
 
         p1, c1 = s.query(Parent, Child).outerjoin(Parent.s1).all()[0]
         eq_(c1, SubChild1(name="sc1_1"))
@@ -1452,7 +1451,7 @@ class ManyToManyToSingleTest(fixtures.MappedTest, AssertsCompiledSQL):
         Parent = self.classes.Parent
         Child = self.classes.Child
 
-        s = Session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(Parent, Child).outerjoin(Parent.s1),
@@ -1468,7 +1467,7 @@ class ManyToManyToSingleTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_assert_joinedload_sql(self):
         Parent = self.classes.Parent
 
-        s = Session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(Parent).options(joinedload(Parent.s1)),
@@ -1538,7 +1537,7 @@ class SingleOnJoinedTest(fixtures.MappedTest):
         )
         mapper(Manager, inherits=Employee, polymorphic_identity="manager")
 
-        sess = create_session()
+        sess = fixture_session()
         sess.add(Person(name="p1"))
         sess.add(Employee(name="e1", employee_data="ed1"))
         sess.add(Manager(name="m1", employee_data="ed2", manager_data="md1"))
@@ -1663,7 +1662,7 @@ class SingleFromPolySelectableTest(
             [self.classes.Boss, self.classes.Manager, self.classes.Engineer],
             self._with_poly_fixture(),
         )
-        s = Session()
+        s = fixture_session()
         q = s.query(poly.Boss)
         self.assert_compile(
             q,
@@ -1695,7 +1694,7 @@ class SingleFromPolySelectableTest(
 
         poly = self._with_poly_fixture()
 
-        s = Session()
+        s = fixture_session()
         q = s.query(Boss).with_polymorphic(Boss, poly)
         self.assert_compile(
             q,
@@ -1719,7 +1718,7 @@ class SingleFromPolySelectableTest(
 
     def test_single_inh_subclass_join_joined_inh_subclass(self):
         Boss, Engineer = self.classes("Boss", "Engineer")
-        s = Session()
+        s = fixture_session()
 
         q = s.query(Boss).join(Engineer, Engineer.manager_id == Boss.id)
 
@@ -1744,7 +1743,7 @@ class SingleFromPolySelectableTest(
             self._with_poly_fixture(),
         )
 
-        s = Session()
+        s = fixture_session()
 
         q = s.query(Boss).join(
             poly.Engineer, poly.Engineer.manager_id == Boss.id
@@ -1776,7 +1775,7 @@ class SingleFromPolySelectableTest(
     def test_joined_inh_subclass_join_single_inh_subclass(self):
         Engineer = self.classes.Engineer
         Boss = self.classes.Boss
-        s = Session()
+        s = fixture_session()
 
         q = s.query(Engineer).join(Boss, Engineer.manager_id == Boss.id)
 
@@ -1826,7 +1825,7 @@ class EagerDefaultEvalTest(fixtures.DeclarativeMappedTest):
 
         foo = Foo()
 
-        session = Session()
+        session = fixture_session()
         session.add(foo)
         session.flush()
 
@@ -1839,7 +1838,7 @@ class EagerDefaultEvalTest(fixtures.DeclarativeMappedTest):
     def test_persist_bar(self):
         Bar = self.classes.Bar
         bar = Bar()
-        session = Session()
+        session = fixture_session()
         session.add(bar)
         session.flush()
 
index dee76fc7b7a98cdde4d2105d3afda2d3474388ef..2492e593c8d8635e79056d9c1817cdedfe2d4b2f 100644 (file)
@@ -2,9 +2,9 @@ from sqlalchemy import and_
 from sqlalchemy import exc
 from sqlalchemy import or_
 from sqlalchemy import testing
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import with_polymorphic
 from sqlalchemy.testing import eq_
+from sqlalchemy.testing.fixtures import fixture_session
 from ._poly_fixtures import _Polymorphic
 from ._poly_fixtures import _PolymorphicAliasedJoins
 from ._poly_fixtures import _PolymorphicFixtureBase
@@ -19,7 +19,7 @@ from ._poly_fixtures import Person
 
 class WithPolymorphicAPITest(_Polymorphic, _PolymorphicFixtureBase):
     def test_no_use_flat_and_aliased(self):
-        sess = create_session()
+        sess = fixture_session()
 
         subq = sess.query(Person).subquery()
 
@@ -37,7 +37,7 @@ class WithPolymorphicAPITest(_Polymorphic, _PolymorphicFixtureBase):
 
 class _WithPolymorphicBase(_PolymorphicFixtureBase):
     def test_join_base_to_sub(self):
-        sess = create_session()
+        sess = fixture_session()
         pa = with_polymorphic(Person, [Engineer])
 
         def go():
@@ -51,7 +51,7 @@ class _WithPolymorphicBase(_PolymorphicFixtureBase):
         self.assert_sql_count(testing.db, go, 1)
 
     def test_col_expression_base_plus_two_subs(self):
-        sess = create_session()
+        sess = fixture_session()
         pa = with_polymorphic(Person, [Engineer, Manager])
 
         eq_(
@@ -70,7 +70,7 @@ class _WithPolymorphicBase(_PolymorphicFixtureBase):
         )
 
     def test_join_to_join_entities(self):
-        sess = create_session()
+        sess = fixture_session()
         pa = with_polymorphic(Person, [Engineer])
         pa_alias = with_polymorphic(Person, [Engineer], aliased=True)
 
@@ -101,7 +101,7 @@ class _WithPolymorphicBase(_PolymorphicFixtureBase):
         )
 
     def test_join_to_join_columns(self):
-        sess = create_session()
+        sess = fixture_session()
         pa = with_polymorphic(Person, [Engineer])
         pa_alias = with_polymorphic(Person, [Engineer], aliased=True)
 
index fbbf192a0b7263344b7c6f273f329116c900ea01..40f099fc84e1e5d32d82d8ffcdb729b97fef4f4c 100644 (file)
@@ -16,6 +16,7 @@ from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing.assertsql import CompiledSQL
 from sqlalchemy.testing.fixtures import ComparableEntity
+from sqlalchemy.testing.fixtures import fixture_session
 
 
 class PartitionByFixture(fixtures.DeclarativeMappedTest):
@@ -213,7 +214,7 @@ class AltSelectableTest(
     def test_lazyload(self):
         A, B = self.classes("A", "B")
 
-        sess = Session()
+        sess = fixture_session()
         a1 = sess.query(A).first()
 
         with self.sql_execution_asserter() as asserter:
@@ -232,7 +233,7 @@ class AltSelectableTest(
     def test_joinedload(self):
         A, B = self.classes("A", "B")
 
-        sess = Session()
+        sess = fixture_session()
 
         with self.sql_execution_asserter() as asserter:
             # note this is many-to-one.  use_get is unconditionally turned
@@ -254,7 +255,7 @@ class AltSelectableTest(
     def test_selectinload(self):
         A, B = self.classes("A", "B")
 
-        sess = Session()
+        sess = fixture_session()
 
         with self.sql_execution_asserter() as asserter:
             # note this is many-to-one.  use_get is unconditionally turned
@@ -280,7 +281,7 @@ class AltSelectableTest(
     def test_join(self):
         A, B = self.classes("A", "B")
 
-        sess = Session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(A).join(A.b),
index b4c689c01864007bb1b9919842bd14777fb5d726..30e6f3541f2df52ae848a85c128ce4e54f774e97 100644 (file)
@@ -3,11 +3,11 @@ from sqlalchemy import func
 from sqlalchemy import Integer
 from sqlalchemy import select
 from sqlalchemy import String
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -119,7 +119,7 @@ class AssociationTest(fixtures.MappedTest):
             self.classes.Keyword,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         item1 = Item("item1")
         item2 = Item("item2")
         item1.keywords.append(
@@ -144,7 +144,7 @@ class AssociationTest(fixtures.MappedTest):
             self.classes.Keyword,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         item1 = Item("item1")
         item1.keywords.append(
             KeywordAssociation(Keyword("blue"), "blue_assoc")
@@ -170,7 +170,7 @@ class AssociationTest(fixtures.MappedTest):
             self.classes.Keyword,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         item1 = Item("item1")
         item2 = Item("item2")
         item1.keywords.append(
@@ -211,7 +211,7 @@ class AssociationTest(fixtures.MappedTest):
         item_keywords = self.tables.item_keywords
         Keyword = self.classes.Keyword
 
-        sess = create_session()
+        sess = fixture_session()
         item1 = Item("item1")
         item2 = Item("item2")
         item1.keywords.append(
@@ -223,9 +223,19 @@ class AssociationTest(fixtures.MappedTest):
         )
         sess.add_all((item1, item2))
         sess.flush()
-        eq_(select(func.count("*")).select_from(item_keywords).scalar(), 3)
+        eq_(
+            sess.connection().scalar(
+                select(func.count("*")).select_from(item_keywords)
+            ),
+            3,
+        )
 
         sess.delete(item1)
         sess.delete(item2)
         sess.flush()
-        eq_(select(func.count("*")).select_from(item_keywords).scalar(), 0)
+        eq_(
+            sess.connection().scalar(
+                select(func.count("*")).select_from(item_keywords)
+            ),
+            0,
+        )
index 310e50eb2bf787a9db1618fcd8eca7d6ab4783d2..8ca6a8d86bf7d29e808cc724c10355664044b2cd 100644 (file)
@@ -15,11 +15,12 @@ from sqlalchemy import String
 from sqlalchemy import testing
 from sqlalchemy import text
 from sqlalchemy.orm import backref
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
+from sqlalchemy.orm import Session
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -151,7 +152,7 @@ class EagerTest(fixtures.MappedTest):
             cls.classes.Thing,
         )
 
-        session = create_session(connection)
+        session = Session(connection)
 
         o = Owner()
         c = Category(name="Some Category")
@@ -167,7 +168,7 @@ class EagerTest(fixtures.MappedTest):
 
         session.flush()
 
-    def test_noorm(self):
+    def test_noorm(self, connection):
         """test the control case"""
 
         tests, options, categories = (
@@ -187,7 +188,7 @@ class EagerTest(fixtures.MappedTest):
 
         # not orm style correct query
         print("Obtaining correct results without orm")
-        result = (
+        result = connection.execute(
             sa.select(tests.c.id, categories.c.name)
             .where(
                 sa.and_(
@@ -208,9 +209,7 @@ class EagerTest(fixtures.MappedTest):
                     ),
                 )
             )
-            .execute()
-            .fetchall()
-        )
+        ).fetchall()
         eq_(result, [(1, "Some Category"), (3, "Some Category")])
 
     def test_withoutjoinedload(self):
@@ -220,7 +219,7 @@ class EagerTest(fixtures.MappedTest):
             self.tables.options,
         )
 
-        s = create_session()
+        s = fixture_session()
         result = (
             s.query(Thing)
             .select_from(
@@ -260,7 +259,7 @@ class EagerTest(fixtures.MappedTest):
             self.tables.options,
         )
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(Thing).options(sa.orm.joinedload("category"))
 
         result = q.select_from(
@@ -293,7 +292,7 @@ class EagerTest(fixtures.MappedTest):
             self.tables.options,
         )
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(Thing).options(sa.orm.joinedload("category"))
         result = q.filter(
             sa.and_(
@@ -312,7 +311,7 @@ class EagerTest(fixtures.MappedTest):
     def test_without_outerjoin_literal(self):
         Thing, tests = (self.classes.Thing, self.tables.tests)
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(Thing).options(sa.orm.joinedload("category"))
         result = q.filter(
             (tests.c.owner_id == 1)
@@ -331,7 +330,7 @@ class EagerTest(fixtures.MappedTest):
             self.tables.options,
         )
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(Thing).options(sa.orm.joinedload("category"))
         result = q.filter(
             (tests.c.owner_id == 1)
@@ -434,7 +433,7 @@ class EagerTest2(fixtures.MappedTest):
         p.left.append(Left("l1"))
         p.right.append(Right("r1"))
 
-        session = create_session()
+        session = fixture_session()
         session.add(p)
         session.flush()
         session.expunge_all()
@@ -509,7 +508,7 @@ class EagerTest3(fixtures.MappedTest):
 
         mapper(Stat, stats, properties={"data": relationship(Data)})
 
-        session = create_session()
+        session = fixture_session()
 
         data = [Data(a=x) for x in range(5)]
         session.add_all(data)
@@ -538,7 +537,7 @@ class EagerTest3(fixtures.MappedTest):
             .group_by(stats.c.data_id)
         )
 
-        arb_result = arb_data.execute().fetchall()
+        arb_result = session.connection().execute(arb_data).fetchall()
 
         # order the result list descending based on 'max'
         arb_result.sort(key=lambda a: a._mapping["max"], reverse=True)
@@ -633,7 +632,7 @@ class EagerTest4(fixtures.MappedTest):
         for e in "Joe", "Bob", "Mary", "Wally":
             d2.employees.append(Employee(name=e))
 
-        sess = create_session()
+        sess = fixture_session()
         sess.add_all((d1, d2))
         sess.flush()
 
@@ -751,7 +750,7 @@ class EagerTest5(fixtures.MappedTest):
 
         mapper(DerivedII, derivedII, inherits=baseMapper)
 
-        sess = create_session()
+        sess = fixture_session()
         d = Derived("uid1", "x", "y")
         d.comments = [Comment("uid1", "comment")]
         d2 = DerivedII("uid2", "xx", "z")
@@ -910,7 +909,7 @@ class EagerTest6(fixtures.MappedTest):
         )
 
         d = Design()
-        sess = create_session()
+        sess = fixture_session()
         sess.add(d)
         sess.flush()
         sess.expunge_all()
@@ -1024,7 +1023,7 @@ class EagerTest7(fixtures.MappedTest):
         c1 = Company(company_name="company 1", addresses=[a1, a2])
         i1 = Invoice(date=datetime.datetime.now(), company=c1)
 
-        session = create_session()
+        session = fixture_session()
         session.add(i1)
         session.flush()
 
@@ -1169,7 +1168,7 @@ class EagerTest8(fixtures.MappedTest):
             properties=dict(type=relationship(Task_Type, lazy="joined")),
         )
 
-        session = create_session()
+        session = fixture_session()
 
         eq_(
             session.query(Joined).limit(10).offset(0).one(),
@@ -1284,7 +1283,7 @@ class EagerTest9(fixtures.MappedTest):
             self.classes.Transaction,
         )
 
-        session = create_session()
+        session = fixture_session()
 
         tx1 = Transaction(name="tx1")
         tx2 = Transaction(name="tx2")
index c873f46c70cc00b085482503167c92edf1f54870..a6d651d22be1c4046a4ddca7a1de533673306235 100644 (file)
@@ -16,9 +16,9 @@ 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
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import is_
+from sqlalchemy.testing.fixtures import fixture_session
 from test.orm import _fixtures
 
 
@@ -44,7 +44,7 @@ class O2MCollectionTest(_fixtures.FixtureTest):
     def test_collection_move_hitslazy(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         a1 = Address(email_address="address1")
         a2 = Address(email_address="address2")
         a3 = Address(email_address="address3")
@@ -65,7 +65,7 @@ class O2MCollectionTest(_fixtures.FixtureTest):
     def test_collection_move_preloaded(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         a1 = Address(email_address="address1")
         u1 = User(name="jack", addresses=[a1])
 
@@ -88,7 +88,7 @@ class O2MCollectionTest(_fixtures.FixtureTest):
     def test_collection_move_notloaded(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         a1 = Address(email_address="address1")
         u1 = User(name="jack", addresses=[a1])
 
@@ -109,7 +109,7 @@ class O2MCollectionTest(_fixtures.FixtureTest):
     def test_collection_move_commitfirst(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         a1 = Address(email_address="address1")
         u1 = User(name="jack", addresses=[a1])
 
@@ -134,7 +134,7 @@ class O2MCollectionTest(_fixtures.FixtureTest):
     def test_scalar_move_preloaded(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         u1 = User(name="jack")
         u2 = User(name="ed")
@@ -161,7 +161,7 @@ class O2MCollectionTest(_fixtures.FixtureTest):
 
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         u1 = User(name="jack")
         u2 = User(name="ed")
         a1 = Address(email_address="a1")
@@ -183,7 +183,7 @@ class O2MCollectionTest(_fixtures.FixtureTest):
     def test_set_none(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         u1 = User(name="jack")
         a1 = Address(email_address="a1")
         a1.user = u1
@@ -201,7 +201,7 @@ class O2MCollectionTest(_fixtures.FixtureTest):
     def test_scalar_move_notloaded(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         u1 = User(name="jack")
         u2 = User(name="ed")
@@ -221,7 +221,7 @@ class O2MCollectionTest(_fixtures.FixtureTest):
     def test_scalar_move_commitfirst(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         u1 = User(name="jack")
         u2 = User(name="ed")
@@ -399,7 +399,7 @@ class O2OScalarBackrefMoveTest(_fixtures.FixtureTest):
     def test_collection_move_preloaded(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         a1 = Address(email_address="address1")
         u1 = User(name="jack", address=a1)
 
@@ -425,7 +425,7 @@ class O2OScalarBackrefMoveTest(_fixtures.FixtureTest):
     def test_scalar_move_preloaded(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         a1 = Address(email_address="address1")
         a2 = Address(email_address="address1")
         u1 = User(name="jack", address=a1)
@@ -449,7 +449,7 @@ class O2OScalarBackrefMoveTest(_fixtures.FixtureTest):
     def test_collection_move_notloaded(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         a1 = Address(email_address="address1")
         u1 = User(name="jack", address=a1)
 
@@ -471,7 +471,7 @@ class O2OScalarBackrefMoveTest(_fixtures.FixtureTest):
     def test_scalar_move_notloaded(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         a1 = Address(email_address="address1")
         a2 = Address(email_address="address1")
         u1 = User(name="jack", address=a1)
@@ -492,7 +492,7 @@ class O2OScalarBackrefMoveTest(_fixtures.FixtureTest):
     def test_collection_move_commitfirst(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         a1 = Address(email_address="address1")
         u1 = User(name="jack", address=a1)
 
@@ -519,7 +519,7 @@ class O2OScalarBackrefMoveTest(_fixtures.FixtureTest):
     def test_scalar_move_commitfirst(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         a1 = Address(email_address="address1")
         a2 = Address(email_address="address2")
         u1 = User(name="jack", address=a1)
@@ -568,7 +568,7 @@ class O2OScalarMoveTest(_fixtures.FixtureTest):
     def test_collection_move_commitfirst(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         a1 = Address(email_address="address1")
         u1 = User(name="jack", address=a1)
 
@@ -622,7 +622,7 @@ class O2OScalarOrphanTest(_fixtures.FixtureTest):
     def test_m2o_event(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         a1 = Address(email_address="address1")
         u1 = User(name="jack", address=a1)
 
@@ -667,7 +667,7 @@ class M2MCollectionMoveTest(_fixtures.FixtureTest):
 
         Item, Keyword = (self.classes.Item, self.classes.Keyword)
 
-        session = Session(autoflush=False)
+        session = fixture_session(autoflush=False)
 
         i1 = Item(description="i1")
         session.add(i1)
@@ -685,7 +685,7 @@ class M2MCollectionMoveTest(_fixtures.FixtureTest):
 
         Item, Keyword = (self.classes.Item, self.classes.Keyword)
 
-        session = Session(autoflush=False)
+        session = fixture_session(autoflush=False)
 
         k1 = Keyword(name="k1")
         i1 = Item(description="i1", keywords=[k1])
@@ -805,7 +805,7 @@ class M2MScalarMoveTest(_fixtures.FixtureTest):
     def test_collection_move_preloaded(self):
         Item, Keyword = self.classes.Item, self.classes.Keyword
 
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         k1 = Keyword(name="k1")
         i1 = Item(description="i1", keyword=k1)
@@ -828,7 +828,7 @@ class M2MScalarMoveTest(_fixtures.FixtureTest):
     def test_collection_move_notloaded(self):
         Item, Keyword = self.classes.Item, self.classes.Keyword
 
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         k1 = Keyword(name="k1")
         i1 = Item(description="i1", keyword=k1)
@@ -847,7 +847,7 @@ class M2MScalarMoveTest(_fixtures.FixtureTest):
     def test_collection_move_commit(self):
         Item, Keyword = self.classes.Item, self.classes.Keyword
 
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         k1 = Keyword(name="k1")
         i1 = Item(description="i1", keyword=k1)
index 09ceaf82728911740cdaf317d463fdea17341e4d..2f54f7fff0ed771c1dc832f88107b1a3e7bb8e21 100644 (file)
@@ -8,7 +8,6 @@ from sqlalchemy import table
 from sqlalchemy import testing
 from sqlalchemy import true
 from sqlalchemy.orm import backref
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
 from sqlalchemy.orm import Session
@@ -20,6 +19,7 @@ from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
 from sqlalchemy.testing import mock
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.mock import Mock
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
@@ -110,13 +110,13 @@ class BindIntegrationTest(_fixtures.FixtureTest):
             },
         )
 
-        Session = sessionmaker(
+        maker = sessionmaker(
             binds={
                 users_unbound: testing.db,
                 addresses_unbound: testing.db,
             }
         )
-        sess = Session()
+        sess = maker()
 
         u1 = User(id=1, name="ed")
         sess.add(u1)
@@ -149,7 +149,7 @@ class BindIntegrationTest(_fixtures.FixtureTest):
 
         mapper(User, users)
 
-        session = Session()
+        session = fixture_session()
 
         session.execute(users.insert(), dict(name="Johnny"))
 
@@ -374,7 +374,7 @@ class BindIntegrationTest(_fixtures.FixtureTest):
         sess.close()
 
     def test_bind_arg(self):
-        sess = Session()
+        sess = fixture_session()
 
         assert_raises_message(
             sa.exc.ArgumentError,
@@ -401,7 +401,7 @@ class BindIntegrationTest(_fixtures.FixtureTest):
 
         mapper(User, users)
         c = testing.db.connect()
-        sess = create_session(bind=c)
+        sess = Session(bind=c)
         sess.begin()
         transaction = sess._legacy_transaction()
         u = User(name="u1")
@@ -430,7 +430,7 @@ class BindIntegrationTest(_fixtures.FixtureTest):
         mapper(User, users)
         c = testing.db.connect()
 
-        sess = create_session(bind=c, autocommit=False)
+        sess = Session(bind=c, autocommit=False)
         u = User(name="u1")
         sess.add(u)
         sess.flush()
@@ -438,7 +438,7 @@ class BindIntegrationTest(_fixtures.FixtureTest):
         assert not c.in_transaction()
         assert c.exec_driver_sql("select count(1) from users").scalar() == 0
 
-        sess = create_session(bind=c, autocommit=False)
+        sess = Session(bind=c, autocommit=False)
         u = User(name="u2")
         sess.add(u)
         sess.flush()
@@ -453,7 +453,7 @@ class BindIntegrationTest(_fixtures.FixtureTest):
         c = testing.db.connect()
 
         trans = c.begin()
-        sess = create_session(bind=c, autocommit=True)
+        sess = Session(bind=c, autocommit=True)
         u = User(name="u3")
         sess.add(u)
         sess.flush()
@@ -497,7 +497,7 @@ class SessionBindTest(fixtures.MappedTest):
 
         for bind in (engine, engine.connect()):
             try:
-                sess = create_session(bind=bind)
+                sess = Session(bind=bind)
                 assert sess.bind is bind
                 f = Foo()
                 sess.add(f)
@@ -510,7 +510,7 @@ class SessionBindTest(fixtures.MappedTest):
     def test_session_unbound(self):
         Foo = self.classes.Foo
 
-        sess = create_session()
+        sess = Session()
         sess.add(Foo())
         assert_raises_message(
             sa.exc.UnboundExecutionError,
@@ -576,10 +576,6 @@ class GetBindTest(fixtures.MappedTest):
     def _fixture(self, binds):
         return Session(binds=binds)
 
-    def test_fallback_table_metadata(self):
-        session = self._fixture({})
-        is_(session.get_bind(self.classes.BaseClass), testing.db)
-
     def test_bind_base_table_base_class(self):
         base_class_bind = Mock()
         session = self._fixture({self.tables.base_table: base_class_bind})
@@ -608,11 +604,25 @@ class GetBindTest(fixtures.MappedTest):
         # table, so this is what we expect
         is_(session.get_bind(self.classes.JoinedSubClass), base_class_bind)
 
+    def test_fallback_table_metadata(self):
+        session = self._fixture({})
+        assert_raises_message(
+            sa.exc.UnboundExecutionError,
+            "Could not locate a bind configured on mapper mapped class",
+            session.get_bind,
+            self.classes.BaseClass,
+        )
+
     def test_bind_base_table_concrete_sub_class(self):
         base_class_bind = Mock()
         session = self._fixture({self.tables.base_table: base_class_bind})
 
-        is_(session.get_bind(self.classes.ConcreteSubClass), testing.db)
+        assert_raises_message(
+            sa.exc.UnboundExecutionError,
+            "Could not locate a bind configured on mapper mapped class",
+            session.get_bind,
+            self.classes.ConcreteSubClass,
+        )
 
     def test_bind_sub_table_concrete_sub_class(self):
         base_class_bind = Mock(name="base")
index 27b187342db2a90c7b87e2298e90be640127b8c6..83f74f055c466de11d6df9e8fc1bcd1133693bc2 100644 (file)
@@ -4,12 +4,12 @@ from sqlalchemy import Integer
 from sqlalchemy import String
 from sqlalchemy import testing
 from sqlalchemy.orm import mapper
-from sqlalchemy.orm import Session
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import mock
 from sqlalchemy.testing.assertsql import CompiledSQL
 from sqlalchemy.testing.assertsql import Conditional
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from test.orm import _fixtures
@@ -48,7 +48,7 @@ class BulkInsertUpdateVersionId(BulkTest, fixtures.MappedTest):
     def test_bulk_insert_via_save(self):
         Foo = self.classes.Foo
 
-        s = Session()
+        s = fixture_session()
 
         s.bulk_save_objects([Foo(value="value")])
 
@@ -58,7 +58,7 @@ class BulkInsertUpdateVersionId(BulkTest, fixtures.MappedTest):
     def test_bulk_update_via_save(self):
         Foo = self.classes.Foo
 
-        s = Session()
+        s = fixture_session()
 
         s.add(Foo(value="value"))
         s.commit()
@@ -84,7 +84,7 @@ class BulkInsertUpdateTest(BulkTest, _fixtures.FixtureTest):
     def test_bulk_save_return_defaults(self):
         (User,) = self.classes("User")
 
-        s = Session()
+        s = fixture_session()
         objects = [User(name="u1"), User(name="u2"), User(name="u3")]
         assert "id" not in objects[0].__dict__
 
@@ -121,7 +121,7 @@ class BulkInsertUpdateTest(BulkTest, _fixtures.FixtureTest):
     def test_bulk_save_mappings_preserve_order(self):
         (User,) = self.classes("User")
 
-        s = Session()
+        s = fixture_session()
 
         # commit some object into db
         user1 = User(name="i1")
@@ -177,7 +177,7 @@ class BulkInsertUpdateTest(BulkTest, _fixtures.FixtureTest):
     def test_bulk_save_no_defaults(self):
         (User,) = self.classes("User")
 
-        s = Session()
+        s = fixture_session()
         objects = [User(name="u1"), User(name="u2"), User(name="u3")]
         assert "id" not in objects[0].__dict__
 
@@ -195,7 +195,7 @@ class BulkInsertUpdateTest(BulkTest, _fixtures.FixtureTest):
     def test_bulk_save_updated_include_unchanged(self):
         (User,) = self.classes("User")
 
-        s = Session(expire_on_commit=False)
+        s = fixture_session(expire_on_commit=False)
         objects = [User(name="u1"), User(name="u2"), User(name="u3")]
         s.add_all(objects)
         s.commit()
@@ -203,7 +203,7 @@ class BulkInsertUpdateTest(BulkTest, _fixtures.FixtureTest):
         objects[0].name = "u1new"
         objects[2].name = "u3new"
 
-        s = Session()
+        s = fixture_session()
         with self.sql_execution_asserter() as asserter:
             s.bulk_save_objects(objects, update_changed_only=False)
 
@@ -221,12 +221,12 @@ class BulkInsertUpdateTest(BulkTest, _fixtures.FixtureTest):
     def test_bulk_update(self):
         (User,) = self.classes("User")
 
-        s = Session(expire_on_commit=False)
+        s = fixture_session(expire_on_commit=False)
         objects = [User(name="u1"), User(name="u2"), User(name="u3")]
         s.add_all(objects)
         s.commit()
 
-        s = Session()
+        s = fixture_session()
         with self.sql_execution_asserter() as asserter:
             s.bulk_update_mappings(
                 User,
@@ -251,7 +251,7 @@ class BulkInsertUpdateTest(BulkTest, _fixtures.FixtureTest):
     def test_bulk_insert(self):
         (User,) = self.classes("User")
 
-        s = Session()
+        s = fixture_session()
         with self.sql_execution_asserter() as asserter:
             s.bulk_insert_mappings(
                 User,
@@ -276,7 +276,7 @@ class BulkInsertUpdateTest(BulkTest, _fixtures.FixtureTest):
     def test_bulk_insert_render_nulls(self):
         (Order,) = self.classes("Order")
 
-        s = Session()
+        s = fixture_session()
         with self.sql_execution_asserter() as asserter:
             s.bulk_insert_mappings(
                 Order,
@@ -334,7 +334,7 @@ class BulkUDPostfetchTest(BulkTest, fixtures.MappedTest):
     def test_insert_w_fetch(self):
         A = self.classes.A
 
-        s = Session()
+        s = fixture_session()
         a1 = A(x=1)
         s.bulk_save_objects([a1])
         s.commit()
@@ -342,7 +342,7 @@ class BulkUDPostfetchTest(BulkTest, fixtures.MappedTest):
     def test_update_w_fetch(self):
         A = self.classes.A
 
-        s = Session()
+        s = fixture_session()
         a1 = A(x=1, y=2)
         s.add(a1)
         s.commit()
@@ -488,7 +488,7 @@ class BulkUDTestAltColKeys(BulkTest, fixtures.MappedTest):
     def _test_insert(self, person_cls):
         Person = person_cls
 
-        s = Session()
+        s = fixture_session()
         with self.sql_execution_asserter(testing.db) as asserter:
             s.bulk_insert_mappings(
                 Person, [{"id": 5, "personname": "thename"}]
@@ -501,7 +501,7 @@ class BulkUDTestAltColKeys(BulkTest, fixtures.MappedTest):
     def _test_update(self, person_cls):
         Person = person_cls
 
-        s = Session()
+        s = fixture_session()
         s.add(Person(id=5, personname="thename"))
         s.commit()
 
@@ -605,7 +605,7 @@ class BulkInheritanceTest(BulkTest, fixtures.MappedTest):
             "Person", "Engineer", "Manager", "Boss"
         )
 
-        s = Session()
+        s = fixture_session()
         objects = [
             Manager(name="m1", status="s1", manager_name="mn1"),
             Engineer(name="e1", status="s2", primary_language="l1"),
@@ -684,7 +684,7 @@ class BulkInheritanceTest(BulkTest, fixtures.MappedTest):
             "Person", "Engineer", "Manager", "Boss"
         )
 
-        s = Session()
+        s = fixture_session()
         with self.sql_execution_asserter() as asserter:
             s.bulk_save_objects(
                 [
@@ -766,7 +766,7 @@ class BulkInheritanceTest(BulkTest, fixtures.MappedTest):
             "Person", "Engineer", "Manager", "Boss"
         )
 
-        s = Session()
+        s = fixture_session()
         with self.sql_execution_asserter() as asserter:
             s.bulk_insert_mappings(
                 Boss,
index 956645506fc8c00dbceb7e55d5d8fa3f414b26d4..b0113f1fcc4066129fcad1870c72d304826f2c72 100644 (file)
@@ -16,6 +16,7 @@ from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import AssertsCompiledSQL
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -124,7 +125,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_same_named_col_in_orderby(self):
         Data, Other = self.classes("Data", "Other")
         bundle = Bundle("pk", Data.id, Other.id)
-        sess = Session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(Data, Other).order_by(bundle),
@@ -138,7 +139,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_same_named_col_in_fetch(self):
         Data, Other = self.classes("Data", "Other")
         bundle = Bundle("pk", Data.id, Other.id)
-        sess = Session()
+        sess = fixture_session()
 
         eq_(
             sess.query(bundle)
@@ -159,7 +160,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_result(self):
         Data = self.classes.Data
-        sess = Session()
+        sess = fixture_session()
 
         b1 = Bundle("b1", Data.d1, Data.d2)
 
@@ -170,7 +171,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_subclass(self):
         Data = self.classes.Data
-        sess = Session()
+        sess = fixture_session()
 
         class MyBundle(Bundle):
             def create_row_processor(self, query, procs, labels):
@@ -199,7 +200,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
         b1 = Bundle("b1", d1.d1, d1.d2)
         b2 = Bundle("b2", Data.d1, Other.o1)
 
-        sess = Session()
+        sess = fixture_session()
 
         q = (
             sess.query(b1, b2)
@@ -249,7 +250,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_single_entity_legacy_query(self):
         Data = self.classes.Data
-        sess = Session()
+        sess = fixture_session()
 
         b1 = Bundle("b1", Data.d1, Data.d2, single_entity=True)
 
@@ -260,7 +261,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_labeled_cols_non_single_entity_legacy_query(self):
         Data = self.classes.Data
-        sess = Session()
+        sess = fixture_session()
 
         b1 = Bundle("b1", Data.d1.label("x"), Data.d2.label("y"))
 
@@ -271,7 +272,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_labeled_cols_single_entity_legacy_query(self):
         Data = self.classes.Data
-        sess = Session()
+        sess = fixture_session()
 
         b1 = Bundle(
             "b1", Data.d1.label("x"), Data.d2.label("y"), single_entity=True
@@ -284,7 +285,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_labeled_cols_as_rows_future(self):
         Data = self.classes.Data
-        sess = Session()
+        sess = fixture_session()
 
         b1 = Bundle("b1", Data.d1.label("x"), Data.d2.label("y"))
 
@@ -297,7 +298,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_labeled_cols_as_scalars_future(self):
         Data = self.classes.Data
-        sess = Session()
+        sess = fixture_session()
 
         b1 = Bundle("b1", Data.d1.label("x"), Data.d2.label("y"))
 
@@ -340,7 +341,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_single_entity_flag_but_multi_entities(self):
         Data = self.classes.Data
-        sess = Session()
+        sess = fixture_session()
 
         b1 = Bundle("b1", Data.d1, Data.d2, single_entity=True)
         b2 = Bundle("b1", Data.d3, single_entity=True)
@@ -356,7 +357,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_bundle_nesting(self):
         Data = self.classes.Data
-        sess = Session()
+        sess = fixture_session()
 
         b1 = Bundle("b1", Data.d1, Bundle("b2", Data.d2, Data.d3))
 
@@ -374,7 +375,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_bundle_nesting_unions(self):
         Data = self.classes.Data
-        sess = Session()
+        sess = fixture_session()
 
         b1 = Bundle("b1", Data.d1, Bundle("b2", Data.d2, Data.d3))
 
@@ -407,12 +408,12 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_query_count(self):
         Data = self.classes.Data
         b1 = Bundle("b1", Data.d1, Data.d2)
-        eq_(Session().query(b1).count(), 10)
+        eq_(fixture_session().query(b1).count(), 10)
 
     def test_join_relationship(self):
         Data = self.classes.Data
 
-        sess = Session()
+        sess = fixture_session()
         b1 = Bundle("b1", Data.d1, Data.d2)
         q = sess.query(b1).join(Data.others)
         self.assert_compile(
@@ -426,7 +427,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
         Data = self.classes.Data
         Other = self.classes.Other
 
-        sess = Session()
+        sess = fixture_session()
         b1 = Bundle("b1", Data.d1, Data.d2)
         q = sess.query(b1).join(Other)
         self.assert_compile(
@@ -444,7 +445,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
         b1 = Bundle("b1", Data.id, Data.d1, Data.d2)
 
-        session = Session()
+        session = fixture_session()
         first = session.query(b1)
         second = session.query(b1)
         unioned = first.union(second)
@@ -488,7 +489,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
         b1 = Bundle("b1", Data.id, Data.d1, Data.d2)
 
-        sess = Session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(b1).filter_by(d1="d1"),
@@ -501,7 +502,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
         b1 = Bundle("b1", Data.id, Data.d1, Data.d2)
 
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Data).order_by(b1),
             "SELECT data.id AS data_id, data.d1 AS data_d1, "
@@ -520,7 +521,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
         b1 = Bundle("b1", data_table.c.d1, data_table.c.d2)
 
-        sess = Session()
+        sess = fixture_session()
         eq_(
             sess.query(b1).filter(b1.c.d1.between("d3d1", "d5d1")).all(),
             [(("d3d1", "d3d2"),), (("d4d1", "d4d2"),), (("d5d1", "d5d2"),)],
@@ -531,7 +532,7 @@ class BundleTest(fixtures.MappedTest, AssertsCompiledSQL):
 
         b1 = Bundle("b1", data_table.c.d1, data_table.c.d2, single_entity=True)
 
-        sess = Session()
+        sess = fixture_session()
         eq_(
             sess.query(b1).filter(b1.c.d1.between("d3d1", "d5d1")).all(),
             [("d3d1", "d3d2"), ("d4d1", "d4d2"), ("d5d1", "d5d2")],
index 59d74701221f09950c2b931ed778812c1bf1a624..7ef9d1b604f56bea3f11d4c543d9bc27448e4b5e 100644 (file)
@@ -21,6 +21,7 @@ from sqlalchemy.sql.base import CacheableOptions
 from sqlalchemy.sql.visitors import InternalTraversal
 from sqlalchemy.testing import AssertsCompiledSQL
 from sqlalchemy.testing import eq_
+from sqlalchemy.testing.fixtures import fixture_session
 from test.orm import _fixtures
 from .inheritance import _poly_fixtures
 from .test_query import QueryTest
@@ -260,20 +261,25 @@ class CacheKeyTest(CacheKeyFixture, _fixtures.FixtureTest):
 
         self._run_cache_key_fixture(
             lambda: stmt_20(
-                Session().query(User).join(User.addresses),
-                Session().query(User).join(User.orders),
-                Session().query(User).join(User.addresses).join(User.orders),
-                Session()
+                fixture_session().query(User).join(User.addresses),
+                fixture_session().query(User).join(User.orders),
+                fixture_session()
+                .query(User)
+                .join(User.addresses)
+                .join(User.orders),
+                fixture_session()
                 .query(User)
                 .join("addresses")
                 .join("dingalings", from_joinpoint=True),
-                Session().query(User).join("addresses"),
-                Session().query(User).join("orders"),
-                Session().query(User).join("addresses").join("orders"),
-                Session().query(User).join(Address, User.addresses),
-                Session().query(User).join(a1, "addresses"),
-                Session().query(User).join(a1, "addresses", aliased=True),
-                Session().query(User).join(User.addresses.of_type(a1)),
+                fixture_session().query(User).join("addresses"),
+                fixture_session().query(User).join("orders"),
+                fixture_session().query(User).join("addresses").join("orders"),
+                fixture_session().query(User).join(Address, User.addresses),
+                fixture_session().query(User).join(a1, "addresses"),
+                fixture_session()
+                .query(User)
+                .join(a1, "addresses", aliased=True),
+                fixture_session().query(User).join(User.addresses.of_type(a1)),
             ),
             compare_values=True,
         )
@@ -285,21 +291,21 @@ class CacheKeyTest(CacheKeyFixture, _fixtures.FixtureTest):
 
         self._run_cache_key_fixture(
             lambda: stmt_20(
-                Session()
+                fixture_session()
                 .query(User)
                 .from_statement(text("select * from user")),
-                Session()
+                fixture_session()
                 .query(User)
                 .options(selectinload(User.addresses))
                 .from_statement(text("select * from user")),
-                Session()
+                fixture_session()
                 .query(User)
                 .options(subqueryload(User.addresses))
                 .from_statement(text("select * from user")),
-                Session()
+                fixture_session()
                 .query(User)
                 .from_statement(text("select * from user order by id")),
-                Session()
+                fixture_session()
                 .query(User.id)
                 .from_statement(text("select * from user")),
             ),
@@ -316,28 +322,40 @@ class CacheKeyTest(CacheKeyFixture, _fixtures.FixtureTest):
 
         self._run_cache_key_fixture(
             lambda: stmt_20(
-                Session().query(User),
-                Session().query(User).prefix_with("foo"),
-                Session().query(User).filter_by(name="ed"),
-                Session().query(User).filter_by(name="ed").order_by(User.id),
-                Session().query(User).filter_by(name="ed").order_by(User.name),
-                Session().query(User).filter_by(name="ed").group_by(User.id),
-                Session()
+                fixture_session().query(User),
+                fixture_session().query(User).prefix_with("foo"),
+                fixture_session().query(User).filter_by(name="ed"),
+                fixture_session()
+                .query(User)
+                .filter_by(name="ed")
+                .order_by(User.id),
+                fixture_session()
+                .query(User)
+                .filter_by(name="ed")
+                .order_by(User.name),
+                fixture_session()
+                .query(User)
+                .filter_by(name="ed")
+                .group_by(User.id),
+                fixture_session()
                 .query(User)
                 .join(User.addresses)
                 .filter(User.name == "ed"),
-                Session().query(User).join(User.orders),
-                Session()
+                fixture_session().query(User).join(User.orders),
+                fixture_session()
                 .query(User)
                 .join(User.orders)
                 .filter(Order.description == "adsf"),
-                Session().query(User).join(User.addresses).join(User.orders),
-                Session().query(User).join(Address, User.addresses),
-                Session().query(User).join(a1, User.addresses),
-                Session().query(User).join(User.addresses.of_type(a1)),
-                Session().query(Address).join(Address.user),
-                Session().query(User, Address).filter_by(name="ed"),
-                Session().query(User, a1).filter_by(name="ed"),
+                fixture_session()
+                .query(User)
+                .join(User.addresses)
+                .join(User.orders),
+                fixture_session().query(User).join(Address, User.addresses),
+                fixture_session().query(User).join(a1, User.addresses),
+                fixture_session().query(User).join(User.addresses.of_type(a1)),
+                fixture_session().query(Address).join(Address.user),
+                fixture_session().query(User, Address).filter_by(name="ed"),
+                fixture_session().query(User, a1).filter_by(name="ed"),
             ),
             compare_values=True,
         )
@@ -401,27 +419,29 @@ class PolyCacheKeyTest(CacheKeyFixture, _poly_fixtures._Polymorphic):
 
         def one():
             return (
-                Session().query(Person).with_polymorphic([Manager, Engineer])
+                fixture_session()
+                .query(Person)
+                .with_polymorphic([Manager, Engineer])
             )
 
         def two():
             wp = with_polymorphic(Person, [Manager, Engineer])
 
-            return Session().query(wp)
+            return fixture_session().query(wp)
 
         def three():
             wp = with_polymorphic(Person, [Manager, Engineer])
 
-            return Session().query(wp).filter(wp.name == "asdfo")
+            return fixture_session().query(wp).filter(wp.name == "asdfo")
 
         def three_a():
             wp = with_polymorphic(Person, [Manager, Engineer], flat=True)
 
-            return Session().query(wp).filter(wp.name == "asdfo")
+            return fixture_session().query(wp).filter(wp.name == "asdfo")
 
         def four():
             return (
-                Session()
+                fixture_session()
                 .query(Person)
                 .with_polymorphic([Manager, Engineer])
                 .filter(Person.name == "asdf")
@@ -436,7 +456,7 @@ class PolyCacheKeyTest(CacheKeyFixture, _poly_fixtures._Polymorphic):
             )
             wp = with_polymorphic(Person, [Manager, Engineer], subq)
 
-            return Session().query(wp).filter(wp.name == "asdfo")
+            return fixture_session().query(wp).filter(wp.name == "asdfo")
 
         def six():
             subq = (
@@ -447,7 +467,7 @@ class PolyCacheKeyTest(CacheKeyFixture, _poly_fixtures._Polymorphic):
             )
 
             return (
-                Session()
+                fixture_session()
                 .query(Person)
                 .with_polymorphic([Manager, Engineer], subq)
                 .filter(Person.name == "asdfo")
@@ -467,7 +487,7 @@ class PolyCacheKeyTest(CacheKeyFixture, _poly_fixtures._Polymorphic):
 
         def one():
             return (
-                Session()
+                fixture_session()
                 .query(Company)
                 .join(Company.employees)
                 .filter(Person.name == "asdf")
@@ -476,7 +496,7 @@ class PolyCacheKeyTest(CacheKeyFixture, _poly_fixtures._Polymorphic):
         def two():
             wp = with_polymorphic(Person, [Manager, Engineer])
             return (
-                Session()
+                fixture_session()
                 .query(Company)
                 .join(Company.employees.of_type(wp))
                 .filter(wp.name == "asdf")
@@ -485,7 +505,7 @@ class PolyCacheKeyTest(CacheKeyFixture, _poly_fixtures._Polymorphic):
         def three():
             wp = with_polymorphic(Person, [Manager, Engineer])
             return (
-                Session()
+                fixture_session()
                 .query(Company)
                 .join(Company.employees.of_type(wp))
                 .filter(wp.Engineer.name == "asdf")
index 6a916e28a818eb4e7d811b71165e5ce08c1e72e8..180b479baa65e6ced0fd92acad2f2a41b8813309 100644 (file)
@@ -18,7 +18,6 @@ from sqlalchemy.orm import mapper
 from sqlalchemy.orm import object_mapper
 from sqlalchemy.orm import relationship
 from sqlalchemy.orm import Session
-from sqlalchemy.orm import sessionmaker
 from sqlalchemy.orm import util as orm_util
 from sqlalchemy.orm.attributes import instance_state
 from sqlalchemy.testing import assert_raises
@@ -27,6 +26,7 @@ from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import in_
 from sqlalchemy.testing import not_in
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from test.orm import _fixtures
@@ -270,7 +270,7 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest):
     def test_list_assignment_new(self):
         User, Order = self.classes.User, self.classes.Order
 
-        with Session() as sess:
+        with fixture_session() as sess:
             u = User(
                 name="jack",
                 orders=[
@@ -295,7 +295,7 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest):
     def test_list_assignment_replace(self):
         User, Order = self.classes.User, self.classes.Order
 
-        with Session() as sess:
+        with fixture_session() as sess:
             u = User(
                 name="jack",
                 orders=[
@@ -331,7 +331,7 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest):
     def test_standalone_orphan(self):
         Order = self.classes.Order
 
-        with Session() as sess:
+        with fixture_session() as sess:
             o5 = Order(description="order 5")
             sess.add(o5)
             assert_raises(sa_exc.DBAPIError, sess.flush)
@@ -342,7 +342,7 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest):
 
         Order, User = self.classes.Order, self.classes.User
 
-        sess = sessionmaker(expire_on_commit=False)()
+        sess = fixture_session(expire_on_commit=False)
         o1, o2, o3 = (
             Order(description="o1"),
             Order(description="o2"),
@@ -363,7 +363,7 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest):
     def test_remove_pending_from_collection(self):
         User, Order = self.classes.User, self.classes.Order
 
-        with Session() as sess:
+        with fixture_session() as sess:
 
             u = User(name="jack")
             sess.add(u)
@@ -380,7 +380,7 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest):
 
         User, Order = self.classes.User, self.classes.Order
 
-        with Session() as sess:
+        with fixture_session() as sess:
 
             u = User(name="jack")
 
@@ -407,7 +407,7 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest):
             self.classes.Order,
         )
 
-        with Session() as sess:
+        with fixture_session() as sess:
             u = User(
                 name="jack",
                 orders=[
@@ -444,7 +444,7 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest):
             self.classes.Address,
         )
 
-        with Session() as sess:
+        with fixture_session() as sess:
             u = User(
                 name="jack",
                 addresses=[
@@ -497,7 +497,7 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest):
             self.tables.orders,
         )
 
-        with Session(autoflush=False) as sess:
+        with fixture_session(autoflush=False) as sess:
             u = User(
                 name="jack",
                 orders=[
@@ -550,7 +550,7 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest):
             self.classes.Address,
         )
 
-        sess = Session()
+        sess = fixture_session()
         u = User(name="jack")
         sess.add(u)
         assert "orders" not in u.__dict__
@@ -580,7 +580,7 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest):
             self.classes.Order,
         )
 
-        sess = Session()
+        sess = fixture_session()
         u = User(
             name="jack",
             orders=[
@@ -619,7 +619,7 @@ class O2MCascadeDeleteOrphanTest(fixtures.MappedTest):
             self.classes.Order,
         )
 
-        with Session() as sess:
+        with fixture_session() as sess:
             u = User(
                 name="jack",
                 orders=[
@@ -710,7 +710,7 @@ class O2MCascadeTest(fixtures.MappedTest):
 
     def test_none_o2m_collection_assignment(self):
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
         u1 = User(name="u", addresses=[None])
         s.add(u1)
         eq_(u1.addresses, [None])
@@ -723,7 +723,7 @@ class O2MCascadeTest(fixtures.MappedTest):
 
     def test_none_o2m_collection_append(self):
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
 
         u1 = User(name="u")
         s.add(u1)
@@ -793,7 +793,7 @@ class O2MCascadeDeleteNoOrphanTest(fixtures.MappedTest):
             self.tables.users,
         )
 
-        with Session() as sess:
+        with fixture_session() as sess:
             u = User(
                 name="jack",
                 orders=[
@@ -936,7 +936,7 @@ class O2OSingleParentNoFlushTest(fixtures.MappedTest):
         User, Address = self.classes.User, self.classes.Address
         a1 = Address(email_address="some address")
         u1 = User(name="u1", address=a1)
-        sess = Session()
+        sess = fixture_session()
         sess.add(u1)
         sess.commit()
 
@@ -1083,7 +1083,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=True, m2o=False)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         a1 = Address(email_address="a1")
         u1.addresses.append(a1)
@@ -1096,7 +1096,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=True, m2o=False, o2m_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         a1 = Address(email_address="a1")
         u1.addresses.append(a1)
@@ -1109,7 +1109,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=True, m2o=False, o2m_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         a1 = Address(email_address="a1")
         sess.add(a1)
@@ -1127,7 +1127,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=True, m2o=True)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         a1 = Address(email_address="a1")
         u1.addresses.append(a1)
@@ -1140,7 +1140,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=True, m2o=True, o2m_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         a1 = Address(email_address="a1")
         u1.addresses.append(a1)
@@ -1153,7 +1153,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=True, m2o=True, o2m_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         a1 = Address(email_address="a1")
         u1.addresses.append(a1)
@@ -1172,7 +1172,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=True, m2o=True, o2m_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         a1 = Address(email_address="a1")
         sess.add(a1)
@@ -1189,7 +1189,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=True, m2o=True, o2m_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         a1 = Address(email_address="a1")
         sess.add(a1)
@@ -1212,7 +1212,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=False, m2o=True)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         a1 = Address(email_address="a1")
         a1.user = u1
@@ -1225,7 +1225,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=False, m2o=True, m2o_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         a1 = Address(email_address="a1")
         a1.user = u1
@@ -1238,7 +1238,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=False, m2o=True, m2o_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         sess.add(u1)
         sess.flush()
@@ -1255,7 +1255,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=True, m2o=True)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         a1 = Address(email_address="a1")
         a1.user = u1
@@ -1268,7 +1268,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=True, m2o=True, m2o_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         a1 = Address(email_address="a1")
         a1.user = u1
@@ -1281,7 +1281,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=True, m2o=True, m2o_cascade=False)
-        with Session() as sess:
+        with fixture_session() as sess:
             u1 = User(name="u1")
             sess.add(u1)
             sess.flush()
@@ -1324,7 +1324,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         User, Address = self.classes.User, self.classes.Address
 
         self._one_to_many_fixture(o2m=True, m2o=True, m2o_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
 
         a1 = Address(email_address="a1")
@@ -1346,7 +1346,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
 
         self._one_to_many_fixture(o2m=True, m2o=True, m2o_cascade=False)
 
-        with Session() as sess:
+        with fixture_session() as sess:
             u1 = User(name="u1")
             sess.add(u1)
             sess.flush()
@@ -1400,7 +1400,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         Item, Keyword = self.classes.Item, self.classes.Keyword
 
         self._many_to_many_fixture(fwd=True, bkd=False)
-        sess = Session()
+        sess = fixture_session()
         i1 = Item(description="i1")
         k1 = Keyword(name="k1")
         i1.keywords.append(k1)
@@ -1413,7 +1413,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         Item, Keyword = self.classes.Item, self.classes.Keyword
 
         self._many_to_many_fixture(fwd=True, bkd=False, fwd_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         i1 = Item(description="i1")
         k1 = Keyword(name="k1")
         i1.keywords.append(k1)
@@ -1426,7 +1426,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         Item, Keyword = self.classes.Item, self.classes.Keyword
 
         self._many_to_many_fixture(fwd=True, bkd=False, fwd_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         i1 = Item(description="i1")
         k1 = Keyword(name="k1")
         sess.add(k1)
@@ -1444,7 +1444,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         Item, Keyword = self.classes.Item, self.classes.Keyword
 
         self._many_to_many_fixture(fwd=True, bkd=True)
-        sess = Session()
+        sess = fixture_session()
         i1 = Item(description="i1")
         k1 = Keyword(name="k1")
         i1.keywords.append(k1)
@@ -1457,7 +1457,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         Item, Keyword = self.classes.Item, self.classes.Keyword
 
         self._many_to_many_fixture(fwd=True, bkd=True, fwd_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         i1 = Item(description="i1")
         k1 = Keyword(name="k1")
         i1.keywords.append(k1)
@@ -1470,7 +1470,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         Item, Keyword = self.classes.Item, self.classes.Keyword
 
         self._many_to_many_fixture(fwd=True, bkd=True, fwd_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         i1 = Item(description="i1")
         k1 = Keyword(name="k1")
         i1.keywords.append(k1)
@@ -1489,7 +1489,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         Item, Keyword = self.classes.Item, self.classes.Keyword
 
         self._many_to_many_fixture(fwd=True, bkd=True, fwd_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         i1 = Item(description="i1")
         k1 = Keyword(name="k1")
         sess.add(k1)
@@ -1506,7 +1506,7 @@ class NoSaveCascadeFlushTest(_fixtures.FixtureTest):
         Item, Keyword = self.classes.Item, self.classes.Keyword
 
         self._many_to_many_fixture(fwd=True, bkd=True, fwd_cascade=False)
-        sess = Session()
+        sess = fixture_session()
         i1 = Item(description="i1")
         k1 = Keyword(name="k1")
         sess.add(k1)
@@ -1549,7 +1549,7 @@ class NoSaveCascadeBackrefTest(_fixtures.FixtureTest):
             ),
         )
 
-        sess = Session()
+        sess = fixture_session()
 
         o1 = Order()
         sess.add(o1)
@@ -1584,7 +1584,7 @@ class NoSaveCascadeBackrefTest(_fixtures.FixtureTest):
         )
         mapper(User, users)
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User()
         sess.add(u1)
@@ -1625,7 +1625,7 @@ class NoSaveCascadeBackrefTest(_fixtures.FixtureTest):
         )
         mapper(Keyword, keywords)
 
-        sess = Session()
+        sess = fixture_session()
 
         i1 = Item()
         k1 = Keyword()
@@ -1753,7 +1753,7 @@ class M2OCascadeDeleteOrphanTestOne(fixtures.MappedTest):
             self.tables.extra,
         )
 
-        sess = Session()
+        sess = fixture_session()
         eq_(
             sess.execute(select(func.count("*")).select_from(prefs)).scalar(),
             3,
@@ -1779,7 +1779,7 @@ class M2OCascadeDeleteOrphanTestOne(fixtures.MappedTest):
 
         Foo, User = self.classes.Foo, self.classes.User
 
-        sess = sessionmaker(expire_on_commit=True)()
+        sess = fixture_session(expire_on_commit=True)
 
         u1 = User(name="jack", foo=Foo(data="f1"))
         sess.add(u1)
@@ -1802,7 +1802,7 @@ class M2OCascadeDeleteOrphanTestOne(fixtures.MappedTest):
 
         Pref, User = self.classes.Pref, self.classes.User
 
-        sess = sessionmaker(expire_on_commit=False)()
+        sess = fixture_session(expire_on_commit=False)
         p1, p2 = Pref(data="p1"), Pref(data="p2")
 
         u = User(name="jack", pref=p1)
@@ -1824,7 +1824,7 @@ class M2OCascadeDeleteOrphanTestOne(fixtures.MappedTest):
             self.tables.extra,
         )
 
-        sess = Session()
+        sess = fixture_session()
         jack = sess.query(User).filter_by(name="jack").one()
         p = jack.pref
         e = jack.pref.extra[0]
@@ -1849,7 +1849,7 @@ class M2OCascadeDeleteOrphanTestOne(fixtures.MappedTest):
     def test_pending_expunge(self):
         Pref, User = self.classes.Pref, self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         someuser = User(name="someuser")
         sess.add(someuser)
         sess.flush()
@@ -1868,7 +1868,7 @@ class M2OCascadeDeleteOrphanTestOne(fixtures.MappedTest):
 
         Pref, User = self.classes.Pref, self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         jack = sess.query(User).filter_by(name="jack").one()
 
         newpref = Pref(data="newpref")
@@ -1961,7 +1961,7 @@ class M2OCascadeDeleteOrphanTestTwo(fixtures.MappedTest):
     def test_cascade_delete(self):
         T2, T3, T1 = (self.classes.T2, self.classes.T3, self.classes.T1)
 
-        sess = Session()
+        sess = fixture_session()
         x = T1(data="t1a", t2=T2(data="t2a", t3=T3(data="t3a")))
         sess.add(x)
         sess.flush()
@@ -1975,7 +1975,7 @@ class M2OCascadeDeleteOrphanTestTwo(fixtures.MappedTest):
     def test_deletes_orphans_onelevel(self):
         T2, T3, T1 = (self.classes.T2, self.classes.T3, self.classes.T1)
 
-        sess = Session()
+        sess = fixture_session()
         x2 = T1(data="t1b", t2=T2(data="t2b", t3=T3(data="t3b")))
         sess.add(x2)
         sess.flush()
@@ -1990,7 +1990,7 @@ class M2OCascadeDeleteOrphanTestTwo(fixtures.MappedTest):
     def test_deletes_orphans_twolevel(self):
         T2, T3, T1 = (self.classes.T2, self.classes.T3, self.classes.T1)
 
-        sess = Session()
+        sess = fixture_session()
         x = T1(data="t1a", t2=T2(data="t2a", t3=T3(data="t3a")))
         sess.add(x)
         sess.flush()
@@ -2005,7 +2005,7 @@ class M2OCascadeDeleteOrphanTestTwo(fixtures.MappedTest):
     def test_finds_orphans_twolevel(self):
         T2, T3, T1 = (self.classes.T2, self.classes.T3, self.classes.T1)
 
-        sess = Session()
+        sess = fixture_session()
         x = T1(data="t1a", t2=T2(data="t2a", t3=T3(data="t3a")))
         sess.add(x)
         sess.flush()
@@ -2102,7 +2102,7 @@ class M2OCascadeDeleteNoOrphanTest(fixtures.MappedTest):
     def test_cascade_delete(self):
         T2, T3, T1 = (self.classes.T2, self.classes.T3, self.classes.T1)
 
-        sess = Session()
+        sess = fixture_session()
         x = T1(data="t1a", t2=T2(data="t2a", t3=T3(data="t3a")))
         sess.add(x)
         sess.flush()
@@ -2116,7 +2116,7 @@ class M2OCascadeDeleteNoOrphanTest(fixtures.MappedTest):
     def test_cascade_delete_postappend_onelevel(self):
         T2, T3, T1 = (self.classes.T2, self.classes.T3, self.classes.T1)
 
-        sess = Session()
+        sess = fixture_session()
         x1 = T1(data="t1")
         x2 = T2(data="t2")
         x3 = T3(data="t3")
@@ -2134,7 +2134,7 @@ class M2OCascadeDeleteNoOrphanTest(fixtures.MappedTest):
     def test_cascade_delete_postappend_twolevel(self):
         T2, T3, T1 = (self.classes.T2, self.classes.T3, self.classes.T1)
 
-        sess = Session()
+        sess = fixture_session()
         x1 = T1(data="t1", t2=T2(data="t2"))
         x3 = T3(data="t3")
         sess.add_all((x1, x3))
@@ -2150,7 +2150,7 @@ class M2OCascadeDeleteNoOrphanTest(fixtures.MappedTest):
     def test_preserves_orphans_onelevel(self):
         T2, T3, T1 = (self.classes.T2, self.classes.T3, self.classes.T1)
 
-        sess = Session()
+        sess = fixture_session()
         x2 = T1(data="t1b", t2=T2(data="t2b", t3=T3(data="t3b")))
         sess.add(x2)
         sess.flush()
@@ -2166,7 +2166,7 @@ class M2OCascadeDeleteNoOrphanTest(fixtures.MappedTest):
     def test_preserves_orphans_onelevel_postremove(self):
         T2, T3, T1 = (self.classes.T2, self.classes.T3, self.classes.T1)
 
-        sess = Session()
+        sess = fixture_session()
         x2 = T1(data="t1b", t2=T2(data="t2b", t3=T3(data="t3b")))
         sess.add(x2)
         sess.flush()
@@ -2181,7 +2181,7 @@ class M2OCascadeDeleteNoOrphanTest(fixtures.MappedTest):
     def test_preserves_orphans_twolevel(self):
         T2, T3, T1 = (self.classes.T2, self.classes.T3, self.classes.T1)
 
-        sess = Session()
+        sess = fixture_session()
         x = T1(data="t1a", t2=T2(data="t2a", t3=T3(data="t3a")))
         sess.add(x)
         sess.flush()
@@ -2270,7 +2270,7 @@ class M2MCascadeTest(fixtures.MappedTest):
         )
         mapper(B, b)
 
-        sess = Session()
+        sess = fixture_session()
         b1 = B(data="b1")
         a1 = A(data="a1", bs=[b1])
         sess.add(a1)
@@ -2310,7 +2310,7 @@ class M2MCascadeTest(fixtures.MappedTest):
         # failed until [ticket:427] was fixed
         mapper(B, b)
 
-        sess = Session()
+        sess = fixture_session()
         b1 = B(data="b1")
         a1 = A(data="a1", bs=[b1])
         sess.add(a1)
@@ -2356,7 +2356,7 @@ class M2MCascadeTest(fixtures.MappedTest):
         )
         mapper(C, c)
 
-        sess = Session()
+        sess = fixture_session()
         b1 = B(data="b1", cs=[C(data="c1")])
         a1 = A(data="a1", bs=[b1])
         sess.add(a1)
@@ -2394,7 +2394,7 @@ class M2MCascadeTest(fixtures.MappedTest):
         )
         mapper(B, b)
 
-        sess = Session()
+        sess = fixture_session()
         a1 = A(data="a1", bs=[B(data="b1")])
         sess.add(a1)
         sess.flush()
@@ -2513,7 +2513,7 @@ class M2MCascadeTest(fixtures.MappedTest):
         )
         mapper(B, b)
 
-        s = Session()
+        s = fixture_session()
         a1 = A(bs=[None])
         s.add(a1)
         eq_(a1.bs, [None])
@@ -2540,7 +2540,7 @@ class M2MCascadeTest(fixtures.MappedTest):
         )
         mapper(B, b)
 
-        s = Session()
+        s = fixture_session()
         a1 = A()
         a1.bs.append(None)
         s.add(a1)
@@ -2588,7 +2588,7 @@ class O2MSelfReferentialDetelOrphanTest(fixtures.MappedTest):
 
     def test_self_referential_delete(self):
         Node = self.classes.Node
-        s = Session()
+        s = fixture_session()
 
         n1, n2, n3, n4 = Node(), Node(), Node(), Node()
         n1.children = [n2, n3]
@@ -2640,7 +2640,7 @@ class NoBackrefCascadeTest(_fixtures.FixtureTest):
     def test_o2m_basic(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -2652,7 +2652,7 @@ class NoBackrefCascadeTest(_fixtures.FixtureTest):
     def test_o2m_commit_warns(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -2667,7 +2667,7 @@ class NoBackrefCascadeTest(_fixtures.FixtureTest):
     def test_o2m_flag_on_backref(self):
         Dingaling, Address = self.classes.Dingaling, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         a1 = Address(email_address="a1")
         sess.add(a1)
@@ -2686,7 +2686,7 @@ class NoBackrefCascadeTest(_fixtures.FixtureTest):
     def test_m2o_basic(self):
         Dingaling, Address = self.classes.Dingaling, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         a1 = Address(email_address="a1")
         d1 = Dingaling()
@@ -2698,7 +2698,7 @@ class NoBackrefCascadeTest(_fixtures.FixtureTest):
     def test_m2o_flag_on_backref(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         a1 = Address(email_address="a1")
         sess.add(a1)
@@ -2714,7 +2714,7 @@ class NoBackrefCascadeTest(_fixtures.FixtureTest):
     def test_m2o_commit_warns(self):
         Dingaling, Address = self.classes.Dingaling, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         a1 = Address(email_address="a1")
         d1 = Dingaling()
@@ -2810,7 +2810,7 @@ class PendingOrphanTestSingleLevel(fixtures.MappedTest):
                 orders=relationship(Order, cascade="all, delete-orphan"),
             ),
         )
-        s = Session()
+        s = fixture_session()
 
         # the standalone Address goes in, its foreign key
         # allows NULL
@@ -2855,7 +2855,7 @@ class PendingOrphanTestSingleLevel(fixtures.MappedTest):
                 )
             ),
         )
-        s = Session()
+        s = fixture_session()
 
         u = User()
         s.add(u)
@@ -2891,7 +2891,7 @@ class PendingOrphanTestSingleLevel(fixtures.MappedTest):
                 )
             ),
         )
-        s = Session()
+        s = fixture_session()
         u = User(name="u1", addresses=[Address(email_address="ad1")])
         s.add(u)
         a1 = u.addresses[0]
@@ -2964,7 +2964,7 @@ class PendingOrphanTestTwoLevel(fixtures.MappedTest):
             },
         )
         mapper(Item, item)
-        s = Session()
+        s = fixture_session()
         o1 = Order()
         s.add(o1)
 
@@ -3001,7 +3001,7 @@ class PendingOrphanTestTwoLevel(fixtures.MappedTest):
             },
         )
         mapper(Attribute, attribute)
-        s = Session()
+        s = fixture_session()
         o1 = Order()
         s.add(o1)
 
@@ -3117,7 +3117,7 @@ class DoubleParentO2MOrphanTest(fixtures.MappedTest):
                 )
             ),
         )
-        s = Session(expire_on_commit=False, autoflush=False)
+        s = fixture_session(expire_on_commit=False, autoflush=False)
 
         a = Account(balance=0)
         sr = SalesRep(name="John")
@@ -3282,7 +3282,7 @@ class DoubleParentM2OOrphanTest(fixtures.MappedTest):
             },
         )
 
-        session = Session()
+        session = fixture_session()
         h1 = Home(description="home1", address=Address(street="address1"))
         b1 = Business(
             description="business1", address=Address(street="address2")
@@ -3341,7 +3341,7 @@ class DoubleParentM2OOrphanTest(fixtures.MappedTest):
                 )
             },
         )
-        session = Session()
+        session = fixture_session()
         a1 = Address()
         session.add(a1)
         session.flush()
@@ -3386,7 +3386,7 @@ class CollectionAssignmentOrphanTest(fixtures.MappedTest):
 
         a1 = A(name="a1", bs=[B(name="b1"), B(name="b2"), B(name="b3")])
 
-        sess = Session()
+        sess = fixture_session()
         sess.add(a1)
         sess.flush()
 
@@ -3490,7 +3490,7 @@ class OrphanCriterionTest(fixtures.MappedTest):
                 RelatedTwo(cores=[c1])
 
         if persistent:
-            s = Session()
+            s = fixture_session()
             s.add(c1)
             s.flush()
 
@@ -3629,7 +3629,7 @@ class O2MConflictTest(fixtures.MappedTest):
     def _do_move_test(self, delete_old):
         Parent, Child = self.classes.Parent, self.classes.Child
 
-        with Session(autoflush=False) as sess:
+        with fixture_session(autoflush=False) as sess:
             p1, p2, c1 = Parent(), Parent(), Child()
             if Parent.child.property.uselist:
                 p1.child.append(c1)
@@ -3880,7 +3880,7 @@ class PartialFlushTest(fixtures.MappedTest):
         )
         mapper(Child, noninh_child)
 
-        sess = Session()
+        sess = fixture_session()
 
         c1, c2 = Child(), Child()
         b1 = Base(descr="b1", children=[c1, c2])
@@ -3897,7 +3897,7 @@ class PartialFlushTest(fixtures.MappedTest):
         assert c2 in sess and c2 not in sess.new
         assert b1 in sess and b1 not in sess.new
 
-        sess = Session()
+        sess = fixture_session()
         c1, c2 = Child(), Child()
         b1 = Base(descr="b1", children=[c1, c2])
         sess.add(b1)
@@ -3907,7 +3907,7 @@ class PartialFlushTest(fixtures.MappedTest):
         assert c2 in sess and c2 in sess.new
         assert b1 in sess and b1 in sess.new
 
-        sess = Session()
+        sess = fixture_session()
         c1, c2 = Child(), Child()
         b1 = Base(descr="b1", children=[c1, c2])
         sess.add(b1)
@@ -3952,7 +3952,7 @@ class PartialFlushTest(fixtures.MappedTest):
 
         mapper(Parent, parent, inherits=Base)
 
-        sess = Session()
+        sess = fixture_session()
         p1 = Parent()
 
         c1, c2, c3 = Child(), Child(), Child()
@@ -4097,7 +4097,7 @@ class SubclassCascadeTest(fixtures.DeclarativeMappedTest):
                 )
             ]
         )
-        s = Session()
+        s = fixture_session()
         s.add(obj)
         s.commit()
 
@@ -4188,7 +4188,7 @@ class ViewonlyFlagWarningTest(fixtures.MappedTest):
             },
         )
 
-        sess = Session()
+        sess = fixture_session()
         u = User(id=1, name="jack")
         sess.add(u)
         sess.add_all(
@@ -4235,7 +4235,7 @@ class ViewonlyFlagWarningTest(fixtures.MappedTest):
             },
         )
 
-        sess = Session()
+        sess = fixture_session()
         u1 = User(id=1, name="jack")
         sess.add(u1)
 
@@ -4274,7 +4274,7 @@ class ViewonlyFlagWarningTest(fixtures.MappedTest):
             },
         )
 
-        sess = Session()
+        sess = fixture_session()
         u1 = User(id=1, name="jack")
 
         o1, o2 = (
index 7c766261850c8f00ac9a0931de93c8db7f5db87b..3d09bd44605dfbae902aea7c516d7d913a1fd05d 100644 (file)
@@ -10,7 +10,6 @@ from sqlalchemy import testing
 from sqlalchemy import text
 from sqlalchemy import util
 from sqlalchemy.orm import attributes
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import instrumentation
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
@@ -23,6 +22,7 @@ from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_false
 from sqlalchemy.testing import is_true
 from sqlalchemy.testing import ne_
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -1753,7 +1753,7 @@ class DictHelpersTest(OrderedDictFixture, fixtures.MappedTest):
         p = Parent()
         p.children["foo"] = Child("foo", "value")
         p.children["bar"] = Child("bar", "value")
-        session = create_session()
+        session = fixture_session()
         session.add(p)
         session.flush()
         pid = p.id
@@ -1839,7 +1839,7 @@ class DictHelpersTest(OrderedDictFixture, fixtures.MappedTest):
         p.children[("foo", "1")] = Child("foo", "1", "value 1")
         p.children[("foo", "2")] = Child("foo", "2", "value 2")
 
-        session = create_session()
+        session = fixture_session()
         session.add(p)
         session.flush()
         pid = p.id
@@ -2104,7 +2104,7 @@ class CustomCollectionsTest(fixtures.MappedTest):
         f = Foo()
         f.bars.add(Bar())
         f.bars.add(Bar())
-        sess = create_session()
+        sess = fixture_session()
         sess.add(f)
         sess.flush()
         sess.expunge_all()
@@ -2147,7 +2147,7 @@ class CustomCollectionsTest(fixtures.MappedTest):
         f = Foo()
         f.bars.set(Bar())
         f.bars.set(Bar())
-        sess = create_session()
+        sess = fixture_session()
         sess.add(f)
         sess.flush()
         sess.expunge_all()
@@ -2189,7 +2189,7 @@ class CustomCollectionsTest(fixtures.MappedTest):
         col = collections.collection_adapter(f.bars)
         col.append_with_event(Bar("a"))
         col.append_with_event(Bar("b"))
-        sess = create_session()
+        sess = fixture_session()
         sess.add(f)
         sess.flush()
         sess.expunge_all()
@@ -2444,7 +2444,7 @@ class CustomCollectionsTest(fixtures.MappedTest):
         p1.children.append(o)
         assert control == list(p1.children)
 
-        sess = create_session()
+        sess = fixture_session()
         sess.add(p1)
         sess.flush()
         sess.expunge_all()
index 2404bf1289ae475bf30220e558d1497f31a89531..df652daf45e7fa0becff7c9869de23da74778585 100644 (file)
@@ -9,9 +9,9 @@ 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 create_session
 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
 
@@ -232,7 +232,7 @@ class CompileTest(fixtures.ORMTest):
                 "host": relationship(Host),
             },
         )
-        sess = create_session(connection)
+        sess = Session(connection)
         assert sess.query(Node).get(1).names == []
 
     def test_conflicting_backref_two(self):
index a164034daa5307eabc6f160f8c2d7d92a51cf0e3..6ee87eefe76514f34ef88b6b30fee71388e747f7 100644 (file)
@@ -15,6 +15,7 @@ from sqlalchemy.orm import Session
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -151,7 +152,7 @@ class PointTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
         # pending/transient object.
         e1 = Edge()
         assert e1.end is None
-        sess = Session()
+        sess = fixture_session()
         sess.add(e1)
 
         # however, once it's persistent, the code as of 0.7.3
@@ -382,7 +383,7 @@ class PointTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
 
         Graph, Edge = self.classes.Graph, self.classes.Edge
 
-        sess = Session()
+        sess = fixture_session()
         g = Graph(id=1)
         e = Edge(None, None)
         g.edges.append(e)
@@ -488,7 +489,7 @@ class NestedTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
     def test_round_trip(self):
         Thing, AB, CD = self._fixture()
 
-        s = Session()
+        s = fixture_session()
 
         s.add(Thing(AB("a", "b", CD("c", "d"))))
         s.commit()
@@ -553,7 +554,7 @@ class PrimaryKeyTest(fixtures.MappedTest):
     def _fixture(self):
         Graph, Version = self.classes.Graph, self.classes.Version
 
-        sess = Session()
+        sess = fixture_session()
         g = Graph(Version(1, 1))
         sess.add(g)
         sess.commit()
@@ -593,7 +594,7 @@ class PrimaryKeyTest(fixtures.MappedTest):
     def test_null_pk(self):
         Graph, Version = self.classes.Graph, self.classes.Version
 
-        sess = Session()
+        sess = fixture_session()
 
         # test pk with one column NULL
         # only sqlite can really handle this
@@ -674,7 +675,7 @@ class DefaultsTest(fixtures.MappedTest):
     def test_attributes_with_defaults(self):
         Foobar, FBComposite = self.classes.Foobar, self.classes.FBComposite
 
-        sess = Session()
+        sess = fixture_session()
         f1 = Foobar()
         f1.foob = FBComposite(None, 5, None, None)
         sess.add(f1)
@@ -690,7 +691,7 @@ class DefaultsTest(fixtures.MappedTest):
     def test_set_composite_values(self):
         Foobar, FBComposite = self.classes.Foobar, self.classes.FBComposite
 
-        sess = Session()
+        sess = fixture_session()
         f1 = Foobar()
         f1.foob = FBComposite(None, 5, None, None)
         sess.add(f1)
@@ -783,7 +784,7 @@ class MappedSelectTest(fixtures.MappedTest):
             self.tables.descriptions,
         )
 
-        session = Session()
+        session = fixture_session()
         d = Descriptions(
             custom_descriptions=CustomValues("Color", "Number"),
             values=[
@@ -866,7 +867,7 @@ class ManyToOneTest(fixtures.MappedTest):
     def test_persist(self):
         A, C, B = (self.classes.A, self.classes.C, self.classes.B)
 
-        sess = Session()
+        sess = fixture_session()
         sess.add(A(c=C("b1", B(data="b2"))))
         sess.commit()
 
@@ -876,7 +877,7 @@ class ManyToOneTest(fixtures.MappedTest):
     def test_query(self):
         A, C, B = (self.classes.A, self.classes.C, self.classes.B)
 
-        sess = Session()
+        sess = fixture_session()
         b1, b2 = B(data="b1"), B(data="b2")
         a1 = A(c=C("a1b1", b1))
         a2 = A(c=C("a2b1", b2))
@@ -888,7 +889,7 @@ class ManyToOneTest(fixtures.MappedTest):
     def test_query_aliased(self):
         A, C, B = (self.classes.A, self.classes.C, self.classes.B)
 
-        sess = Session()
+        sess = fixture_session()
         b1, b2 = B(data="b1"), B(data="b2")
         a1 = A(c=C("a1b1", b1))
         a2 = A(c=C("a2b1", b2))
@@ -941,7 +942,7 @@ class ConfigurationTest(fixtures.MappedTest):
         Edge, Point = self.classes.Edge, self.classes.Point
 
         e1 = Edge(start=Point(3, 4), end=Point(5, 6))
-        sess = Session()
+        sess = fixture_session()
         sess.add(e1)
         sess.commit()
 
@@ -1131,7 +1132,7 @@ class ComparatorTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
     def _test_comparator_behavior(self):
         Edge, Point = (self.classes.Edge, self.classes.Point)
 
-        sess = Session()
+        sess = fixture_session()
         e1 = Edge(Point(3, 4), Point(5, 6))
         e2 = Edge(Point(14, 5), Point(2, 7))
         sess.add_all([e1, e2])
@@ -1159,7 +1160,7 @@ class ComparatorTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
             Edge(Point(0, 1), Point(3, 5)),
         )
 
-        sess = Session()
+        sess = fixture_session()
         sess.add_all([edge_1, edge_2])
         sess.commit()
 
@@ -1179,7 +1180,7 @@ class ComparatorTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
     def test_order_by(self):
         self._fixture(False)
         Edge = self.classes.Edge
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(Edge).order_by(Edge.start, Edge.end),
             "SELECT edge.id AS edge_id, edge.x1 AS edge_x1, "
@@ -1190,7 +1191,7 @@ class ComparatorTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
     def test_order_by_aliased(self):
         self._fixture(False)
         Edge = self.classes.Edge
-        s = Session()
+        s = fixture_session()
         ea = aliased(Edge)
         self.assert_compile(
             s.query(ea).order_by(ea.start, ea.end),
index 12d3f7bfbbe622077517981a797cfdb1c1828d14..1a58356e3513b4f7810dd85f31e31727dce0d722 100644 (file)
@@ -14,7 +14,6 @@ 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 Session
 from sqlalchemy.orm import with_expression
 from sqlalchemy.orm import with_polymorphic
 from sqlalchemy.sql import sqltypes
@@ -24,6 +23,7 @@ from sqlalchemy.sql.selectable import LABEL_STYLE_TABLENAME_PLUS_COL
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import AssertsCompiledSQL
 from sqlalchemy.testing import eq_
+from sqlalchemy.testing.fixtures import fixture_session
 from .inheritance import _poly_fixtures
 from .test_query import QueryTest
 
@@ -293,7 +293,7 @@ class LoadersInSubqueriesTest(QueryTest, AssertsCompiledSQL):
     def test_no_joinedload_in_subquery_select_rows(self, joinedload_fixture):
         User, Address = joinedload_fixture
 
-        sess = Session()
+        sess = fixture_session()
         stmt1 = sess.query(User).subquery()
         stmt1 = sess.query(stmt1)
 
@@ -316,7 +316,7 @@ class LoadersInSubqueriesTest(QueryTest, AssertsCompiledSQL):
     def test_no_joinedload_in_subquery_select_entity(self, joinedload_fixture):
         User, Address = joinedload_fixture
 
-        sess = Session()
+        sess = fixture_session()
         stmt1 = sess.query(User).subquery()
         ua = aliased(User, stmt1)
         stmt1 = sess.query(ua)
@@ -645,7 +645,7 @@ class RelationshipNaturalCompileTest(QueryTest, AssertsCompiledSQL):
 
         stmt1 = select(u1).where(u1.addresses.of_type(a1))
         stmt2 = (
-            Session()
+            fixture_session()
             .query(u1)
             .filter(u1.addresses.of_type(a1))
             ._final_statement(legacy_query_style=False)
@@ -844,7 +844,7 @@ class ImplicitWithPolymorphicTest(
             .order_by(Person.person_id)
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = (
             sess.query(Person.person_id, Person.name)
             .filter(Person.name == "some name")
@@ -884,7 +884,7 @@ class ImplicitWithPolymorphicTest(
             .order_by(Person.person_id)
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = (
             sess.query(Person)
             .filter(Person.name == "some name")
@@ -931,7 +931,7 @@ class ImplicitWithPolymorphicTest(
             .order_by(Engineer.person_id)
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = (
             sess.query(Engineer)
             .filter(Engineer.name == "some name")
@@ -990,7 +990,7 @@ class ImplicitWithPolymorphicTest(
             .order_by(Engineer.person_id)
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = (
             sess.query(Engineer.person_id, Engineer.name)
             .filter(Engineer.name == "some name")
@@ -1079,7 +1079,7 @@ class RelationshipNaturalInheritedTest(InheritedTest, AssertsCompiledSQL):
         )
         stmt2 = select(Company).join(Company.employees)
         stmt3 = (
-            Session()
+            fixture_session()
             .query(Company)
             .join(Company.employees)
             ._final_statement(legacy_query_style=False)
@@ -1113,7 +1113,7 @@ class RelationshipNaturalInheritedTest(InheritedTest, AssertsCompiledSQL):
             select(Company).join(Company.employees).where(Person.name == "ed")
         )
         stmt3 = (
-            Session()
+            fixture_session()
             .query(Company)
             .join(Company.employees)
             .filter(Person.name == "ed")
@@ -1137,7 +1137,7 @@ class RelationshipNaturalInheritedTest(InheritedTest, AssertsCompiledSQL):
 
         stmt2 = select(Company).join(Company.employees).join(Person.paperwork)
         stmt3 = (
-            Session()
+            fixture_session()
             .query(Company)
             .join(Company.employees)
             .join(Person.paperwork)
@@ -1161,7 +1161,7 @@ class RelationshipNaturalInheritedTest(InheritedTest, AssertsCompiledSQL):
 
         stmt2 = select(Company).join(Company.employees.of_type(p1))
         stmt3 = (
-            Session()
+            fixture_session()
             .query(Company)
             .join(Company.employees.of_type(p1))
             ._final_statement(legacy_query_style=False)
@@ -1179,7 +1179,7 @@ class RelationshipNaturalInheritedTest(InheritedTest, AssertsCompiledSQL):
         Company, Person, Manager, Engineer = self.classes(
             "Company", "Person", "Manager", "Engineer"
         )
-        s = Session()
+        s = fixture_session()
 
         p1 = with_polymorphic(Person, "*", aliased=True)
 
@@ -1218,7 +1218,7 @@ class RelationshipNaturalInheritedTest(InheritedTest, AssertsCompiledSQL):
         stmt2 = select(Company).join(p1, Company.employees.of_type(p1))
 
         stmt3 = (
-            Session()
+            fixture_session()
             .query(Company)
             .join(Company.employees.of_type(p1))
             ._final_statement(legacy_query_style=False)
@@ -1479,7 +1479,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
 
         stmt1 = select(User).where(User.addresses)
         stmt2 = (
-            Session()
+            fixture_session()
             .query(User)
             .filter(User.addresses)
             ._final_statement(legacy_query_style=False)
@@ -1505,7 +1505,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
 
         stmt1 = select(Item).where(Item.keywords)
         stmt2 = (
-            Session()
+            fixture_session()
             .query(Item)
             .filter(Item.keywords)
             ._final_statement(legacy_query_style=False)
@@ -1519,7 +1519,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
         expected = "SELECT * FROM users"
         stmt1 = select(literal_column("*")).select_from(User)
         stmt2 = (
-            Session()
+            fixture_session()
             .query(literal_column("*"))
             .select_from(User)
             ._final_statement(legacy_query_style=False)
@@ -1534,7 +1534,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
 
         stmt1 = select(literal_column("*")).select_from(ua)
         stmt2 = (
-            Session()
+            fixture_session()
             .query(literal_column("*"))
             .select_from(ua)
             ._final_statement(legacy_query_style=False)
@@ -1565,7 +1565,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
             .scalar_subquery(),
         )
         stmt2 = (
-            Session()
+            fixture_session()
             .query(
                 User.name,
                 Address.id,
@@ -1595,7 +1595,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
         )
 
         stmt2 = (
-            Session()
+            fixture_session()
             .query(
                 uu.name,
                 Address.id,
@@ -1624,7 +1624,9 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
 
         stmt1 = select(User)
         stmt2 = (
-            Session().query(User)._final_statement(legacy_query_style=False)
+            fixture_session()
+            .query(User)
+            ._final_statement(legacy_query_style=False)
         )
 
         self.assert_compile(stmt1, expected)
@@ -1637,7 +1639,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
 
         stmt1 = select(User.id, User.name)
         stmt2 = (
-            Session()
+            fixture_session()
             .query(User.id, User.name)
             ._final_statement(legacy_query_style=False)
         )
@@ -1651,7 +1653,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
 
         stmt1 = select(ua.id, ua.name)
         stmt2 = (
-            Session()
+            fixture_session()
             .query(ua.id, ua.name)
             ._final_statement(legacy_query_style=False)
         )
@@ -1665,7 +1667,11 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
         ua = aliased(User, name="ua")
 
         stmt1 = select(ua)
-        stmt2 = Session().query(ua)._final_statement(legacy_query_style=False)
+        stmt2 = (
+            fixture_session()
+            .query(ua)
+            ._final_statement(legacy_query_style=False)
+        )
         expected = "SELECT ua.id, ua.name FROM users AS ua"
 
         self.assert_compile(stmt1, expected)
@@ -1695,7 +1701,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        s = Session()
+        s = fixture_session()
         q = s.query(User.id, User.name).filter_by(name="ed")
         self.assert_compile(
             insert(Address).from_select(("id", "email_address"), q),
@@ -1708,7 +1714,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        s = Session()
+        s = fixture_session()
         q = s.query(User.id, User.name).filter_by(name="ed")
         self.assert_compile(
             insert(Address).from_select(
@@ -1781,7 +1787,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
 
         stmt1 = select(Foo).where(Foo.foob == "somename").order_by(Foo.foob)
         stmt2 = (
-            Session()
+            fixture_session()
             .query(Foo)
             .filter(Foo.foob == "somename")
             .order_by(Foo.foob)
index 47b5404c92e683d4396c75699dc1190eacefd2d2..e1ef67fed61b3c64a8409ece22eef15e41e96493 100644 (file)
@@ -14,11 +14,8 @@ from sqlalchemy import Integer
 from sqlalchemy import String
 from sqlalchemy import testing
 from sqlalchemy.orm import backref
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
-from sqlalchemy.orm import Session
-from sqlalchemy.orm import sessionmaker
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
@@ -27,6 +24,7 @@ from sqlalchemy.testing.assertsql import AllOf
 from sqlalchemy.testing.assertsql import CompiledSQL
 from sqlalchemy.testing.assertsql import Conditional
 from sqlalchemy.testing.assertsql import RegexSQL
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -88,7 +86,7 @@ class SelfReferentialTest(fixtures.MappedTest):
         a = C1("head c1")
         a.c1s.append(C1("another c1"))
 
-        sess = create_session()
+        sess = fixture_session()
         sess.add(a)
         sess.flush()
         sess.delete(a)
@@ -119,7 +117,7 @@ class SelfReferentialTest(fixtures.MappedTest):
 
         c1 = C1()
 
-        sess = create_session()
+        sess = fixture_session()
         sess.add(c1)
         sess.flush()
         sess.expunge_all()
@@ -156,7 +154,7 @@ class SelfReferentialTest(fixtures.MappedTest):
         a.c1s[0].c1s.append(C1("subchild2"))
         a.c1s[1].c2s.append(C2("child2 data1"))
         a.c1s[1].c2s.append(C2("child2 data2"))
-        sess = create_session()
+        sess = fixture_session()
         sess.add(a)
         sess.flush()
 
@@ -168,7 +166,7 @@ class SelfReferentialTest(fixtures.MappedTest):
 
         mapper(C1, t1, properties={"children": relationship(C1)})
 
-        sess = create_session()
+        sess = fixture_session()
         c1 = C1()
         c2 = C1()
         c1.children.append(c2)
@@ -234,7 +232,7 @@ class SelfReferentialNoPKTest(fixtures.MappedTest):
         t1.children.append(TT())
         t1.children.append(TT())
 
-        s = create_session()
+        s = fixture_session()
         s.add(t1)
         s.flush()
         s.expunge_all()
@@ -244,7 +242,7 @@ class SelfReferentialNoPKTest(fixtures.MappedTest):
     def test_lazy_clause(self):
         TT = self.classes.TT
 
-        s = create_session()
+        s = fixture_session()
         t1 = TT()
         t2 = TT()
         t1.children.append(t2)
@@ -327,7 +325,7 @@ class InheritTestOne(fixtures.MappedTest):
 
         Child1, Child2 = self.classes.Child1, self.classes.Child2
 
-        session = create_session()
+        session = fixture_session()
 
         c1 = Child1()
         c1.child1_data = "qwerty"
@@ -419,7 +417,7 @@ class InheritTestTwo(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         bobj = B()
         sess.add(bobj)
         cobj = C()
@@ -506,7 +504,7 @@ class BiDirectionalManyToOneTest(fixtures.MappedTest):
 
         o1 = T1()
         o1.t2 = T2()
-        sess = create_session()
+        sess = fixture_session()
         sess.add(o1)
         sess.flush()
 
@@ -528,7 +526,7 @@ class BiDirectionalManyToOneTest(fixtures.MappedTest):
 
         o1 = T1()
         o1.t2 = T2()
-        sess = create_session()
+        sess = fixture_session()
         sess.add(o1)
         sess.flush()
 
@@ -621,7 +619,7 @@ class BiDirectionalOneToManyTest(fixtures.MappedTest):
         a.c2s.append(b)
         d.c1s.append(c)
         b.c1s.append(c)
-        sess = create_session()
+        sess = fixture_session()
         sess.add_all((a, b, c, d, e, f))
         sess.flush()
 
@@ -726,7 +724,7 @@ class BiDirectionalOneToManyTest2(fixtures.MappedTest):
         a.data.append(C1Data(data="c1data1"))
         a.data.append(C1Data(data="c1data2"))
         c.data.append(C1Data(data="c1data3"))
-        sess = create_session()
+        sess = fixture_session()
         sess.add_all((a, b, c, d, e, f))
         sess.flush()
 
@@ -818,7 +816,7 @@ class OneToManyManyToOneTest(fixtures.MappedTest):
         b = Ball()
         p = Person()
         p.balls.append(b)
-        sess = create_session()
+        sess = fixture_session()
         sess.add(p)
         sess.flush()
 
@@ -845,7 +843,7 @@ class OneToManyManyToOneTest(fixtures.MappedTest):
         b = Ball(data="some data")
         p = Person(data="some data")
         p.favorite = b
-        sess = create_session()
+        sess = fixture_session()
         sess.add(b)
         sess.add(p)
         sess.flush()
@@ -903,7 +901,7 @@ class OneToManyManyToOneTest(fixtures.MappedTest):
         p.balls.append(Ball(data="some data"))
         p.balls.append(Ball(data="some data"))
         p.favorite = b
-        sess = create_session()
+        sess = fixture_session()
         sess.add(b)
         sess.add(p)
 
@@ -1001,7 +999,7 @@ class OneToManyManyToOneTest(fixtures.MappedTest):
             ),
         )
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         p1 = Person(data="p1")
         p2 = Person(data="p2")
         p3 = Person(data="p3")
@@ -1065,7 +1063,7 @@ class OneToManyManyToOneTest(fixtures.MappedTest):
         b4 = Ball(data="some data")
         p.balls.append(b4)
         p.favorite = b
-        sess = create_session()
+        sess = fixture_session()
         sess.add_all((b, p, b2, b3, b4))
 
         self.assert_sql_execution(
@@ -1176,7 +1174,7 @@ class OneToManyManyToOneTest(fixtures.MappedTest):
         )
         mapper(Person, person)
 
-        sess = create_session(autocommit=False, expire_on_commit=True)
+        sess = fixture_session(autocommit=False, expire_on_commit=True)
         sess.add(Ball(person=Person()))
         sess.commit()
         b1 = sess.query(Ball).first()
@@ -1267,7 +1265,7 @@ class SelfReferentialPostUpdateTest(fixtures.MappedTest):
             },
         )
 
-        session = create_session()
+        session = fixture_session(autoflush=False)
 
         def append_child(parent, child):
             if parent.children:
@@ -1421,7 +1419,7 @@ class SelfReferentialPostUpdateTest2(fixtures.MappedTest):
             },
         )
 
-        session = create_session()
+        session = fixture_session()
 
         f1 = A(fui="f1")
         session.add(f1)
@@ -1509,7 +1507,7 @@ class SelfReferentialPostUpdateTest3(fixtures.MappedTest):
             properties={"parent": relationship(Child, remote_side=child.c.id)},
         )
 
-        session = create_session()
+        session = fixture_session()
         p1 = Parent("p1")
         c1 = Child("c1")
         c2 = Child("c2")
@@ -1668,7 +1666,7 @@ class PostUpdateBatchingTest(fixtures.MappedTest):
         mapper(Child2, child2)
         mapper(Child3, child3)
 
-        sess = create_session()
+        sess = fixture_session()
 
         p1 = Parent("p1")
         c11, c12, c13 = Child1("c1"), Child1("c2"), Child1("c3")
@@ -1753,7 +1751,7 @@ class PostUpdateOnUpdateTest(fixtures.DeclarativeMappedTest):
     def test_update_defaults(self):
         A, B = self.classes("A", "B")
 
-        s = Session()
+        s = fixture_session()
         a1 = A()
         b1 = B()
 
@@ -1772,7 +1770,7 @@ class PostUpdateOnUpdateTest(fixtures.DeclarativeMappedTest):
         event.listen(A, "refresh_flush", canary.refresh_flush)
         event.listen(A, "expire", canary.expire)
 
-        s = Session()
+        s = fixture_session()
         a1 = A()
         b1 = B()
 
@@ -1800,7 +1798,7 @@ class PostUpdateOnUpdateTest(fixtures.DeclarativeMappedTest):
         event.listen(A, "refresh_flush", canary.refresh_flush)
         event.listen(A, "expire", canary.expire)
 
-        s = Session()
+        s = fixture_session()
         a1 = A()
 
         s.add(a1)
@@ -1831,7 +1829,7 @@ class PostUpdateOnUpdateTest(fixtures.DeclarativeMappedTest):
         event.listen(A, "refresh_flush", canary.refresh_flush)
         event.listen(A, "expire", canary.expire)
 
-        s = Session()
+        s = fixture_session()
         a1 = A()
         b1 = B()
 
@@ -1885,7 +1883,7 @@ class PostUpdateOnUpdateTest(fixtures.DeclarativeMappedTest):
         event.listen(A, "refresh_flush", canary.refresh_flush)
         event.listen(A, "expire", canary.expire)
 
-        s = Session()
+        s = fixture_session()
         a1 = A()
 
         s.add(a1)
@@ -1936,7 +1934,7 @@ class PostUpdateOnUpdateTest(fixtures.DeclarativeMappedTest):
     def test_update_defaults_can_set_value(self):
         A, B = self.classes("A", "B")
 
-        s = Session()
+        s = fixture_session()
         a1 = A()
         b1 = B()
 
index 3bd5d97dba06d468d972783286b583486ebb285f..e5206d2ae1cfbbefe65edd8b20a09ddc494426cd 100644 (file)
@@ -1,12 +1,11 @@
 import sqlalchemy as sa
 from sqlalchemy import testing
 from sqlalchemy import util
-from sqlalchemy.orm import create_session
 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 eq_
+from sqlalchemy.testing.fixtures import fixture_session
 from test.orm import _fixtures
 
 
@@ -111,7 +110,7 @@ class DefaultStrategyOptionsTest(_fixtures.FixtureTest):
             ),
         )
 
-        return create_session()
+        return fixture_session()
 
     def _upgrade_fixture(self):
         (
@@ -183,7 +182,7 @@ class DefaultStrategyOptionsTest(_fixtures.FixtureTest):
             ),
         )
 
-        return create_session()
+        return fixture_session()
 
     def test_downgrade_baseline(self):
         """Mapper strategy defaults load as expected
@@ -630,7 +629,7 @@ class NoLoadTest(_fixtures.FixtureTest):
                 )
             ),
         )
-        q = create_session().query(m)
+        q = fixture_session().query(m)
         result = [None]
 
         def go():
@@ -661,7 +660,7 @@ class NoLoadTest(_fixtures.FixtureTest):
                 )
             ),
         )
-        q = create_session().query(m).options(sa.orm.lazyload("addresses"))
+        q = fixture_session().query(m).options(sa.orm.lazyload("addresses"))
         result = [None]
 
         def go():
@@ -684,7 +683,7 @@ class NoLoadTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses, properties={"user": relationship(User)})
         mapper(User, users)
-        s = Session()
+        s = fixture_session()
         a1 = (
             s.query(Address)
             .filter_by(id=1)
index aa1f2b88d87c6915554fc7047a09bd05a543ee95..97743b5de2bd4a7c31d59662d581cd393ddf55ba 100644 (file)
@@ -5,14 +5,13 @@ from sqlalchemy import Identity
 from sqlalchemy import Integer
 from sqlalchemy import String
 from sqlalchemy import testing
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import mapper
-from sqlalchemy.orm import Session
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing.assertsql import assert_engine
 from sqlalchemy.testing.assertsql import CompiledSQL
 from sqlalchemy.testing.assertsql import Conditional
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -166,7 +165,7 @@ class TriggerDefaultsTest(fixtures.MappedTest):
         eq_(d1.col3, None)
         eq_(d1.col4, None)
 
-        session = create_session()
+        session = fixture_session()
         session.add(d1)
         session.flush()
 
@@ -181,7 +180,7 @@ class TriggerDefaultsTest(fixtures.MappedTest):
 
         d1 = Default(id=1)
 
-        session = create_session()
+        session = fixture_session()
         session.add(d1)
         session.flush()
         d1.col1 = "set"
@@ -214,10 +213,10 @@ class ExcludedDefaultsTest(fixtures.MappedTest):
         mapper(Foo, dt, exclude_properties=("col1",))
 
         f1 = Foo()
-        sess = create_session()
+        sess = fixture_session()
         sess.add(f1)
         sess.flush()
-        eq_(dt.select().execute().fetchall(), [(1, "hello")])
+        eq_(sess.connection().execute(dt.select()).fetchall(), [(1, "hello")])
 
 
 class ComputedDefaultsOnUpdateTest(fixtures.MappedTest):
@@ -261,7 +260,7 @@ class ComputedDefaultsOnUpdateTest(fixtures.MappedTest):
         else:
             Thing = self.classes.ThingNoEager
 
-        s = Session()
+        s = fixture_session()
 
         t1, t2 = (Thing(id=1, foo=5), Thing(id=2, foo=10))
 
@@ -342,7 +341,7 @@ class ComputedDefaultsOnUpdateTest(fixtures.MappedTest):
         else:
             Thing = self.classes.ThingNoEager
 
-        s = Session()
+        s = fixture_session()
 
         t1, t2 = (Thing(id=1, foo=1), Thing(id=2, foo=2))
 
@@ -445,7 +444,7 @@ class IdentityDefaultsOnUpdateTest(fixtures.MappedTest):
     def test_insert_identity(self):
         Thing = self.classes.Thing
 
-        s = Session()
+        s = fixture_session()
 
         t1, t2 = (Thing(foo=5), Thing(foo=10))
 
index 6be967337a9031e333e6a9f4d6c7c59c29d5c65d..6d1cd01843581eb65d659d4afb2eae5efed6c71b 100644 (file)
@@ -9,7 +9,6 @@ from sqlalchemy import util
 from sqlalchemy.orm import aliased
 from sqlalchemy.orm import attributes
 from sqlalchemy.orm import contains_eager
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import defaultload
 from sqlalchemy.orm import defer
 from sqlalchemy.orm import deferred
@@ -31,6 +30,7 @@ from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import AssertsCompiledSQL
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from test.orm import _fixtures
@@ -56,7 +56,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest):
         o = Order()
         self.assert_(o.description is None)
 
-        q = create_session().query(Order).order_by(Order.id)
+        q = fixture_session().query(Order).order_by(Order.id)
 
         def go():
             result = q.all()
@@ -90,7 +90,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest):
         mapper(Order, orders, properties={"id": deferred(orders.c.id)})
 
         # right now, it's not that graceful :)
-        q = create_session().query(Order)
+        q = fixture_session().query(Order)
         assert_raises_message(
             sa.exc.NoSuchColumnError, "Could not locate", q.first
         )
@@ -106,7 +106,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             properties={"description": deferred(orders.c.description)},
         )
 
-        sess = create_session()
+        sess = fixture_session()
         o = Order()
         sess.add(o)
         o.id = 7
@@ -128,7 +128,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         o1 = sess.query(Order).get(1)
         eq_(o1.description, "order 1")
 
@@ -141,7 +141,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             properties={"description": deferred(orders.c.description)},
         )
 
-        sess = create_session()
+        sess = fixture_session()
         o = Order()
         sess.add(o)
 
@@ -164,7 +164,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         o = Order()
         sess.add(o)
         o.id = 7
@@ -186,7 +186,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         o = Order()
         sess.add(o)
 
@@ -204,7 +204,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             properties={"description": deferred(orders.c.description)},
         )
 
-        sess = create_session()
+        sess = fixture_session()
         o2 = sess.query(Order).get(2)
         o2.isopen = 1
         sess.flush()
@@ -233,7 +233,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Order).order_by(Order.id)
 
         def go():
@@ -287,7 +287,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest):
                 "opened": deferred(orders.c.isopen, group="primary"),
             },
         )
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         o = sess.query(Order).get(3)
         assert "userident" not in o.__dict__
         o.description = "somenewdescription"
@@ -319,7 +319,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         o2 = sess.query(Order).get(3)
 
         # this will load the group of attributes
@@ -351,7 +351,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             properties={"description": deferred(order_select.c.description)},
         )
 
-        sess = Session()
+        sess = fixture_session()
         o1 = sess.query(Order).order_by(Order.id).first()
         assert "description" not in o1.__dict__
         eq_(o1.description, "order 1")
@@ -367,7 +367,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
 
         mapper(Order, orders)
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Order).order_by(Order.id).options(defer("user_id"))
 
         def go():
@@ -427,7 +427,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Order).order_by(Order.id)
 
         def go():
@@ -470,7 +470,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Order).order_by(Order.id)
 
         def go():
@@ -515,7 +515,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Order).order_by(Order.id)
 
         def go():
@@ -570,7 +570,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(User)
             .filter(User.id == 7)
@@ -633,7 +633,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(User)
             .filter(User.id == 7)
@@ -699,7 +699,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(User)
             .filter(User.id == 7)
@@ -762,7 +762,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(User)
             .filter(User.id == 7)
@@ -810,7 +810,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Order).options(Load(Order).undefer("*"))
         self.assert_compile(
             q,
@@ -834,7 +834,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             properties={"description": deferred(orders.c.description)},
         )
 
-        sess = create_session()
+        sess = fixture_session()
         o1 = (
             sess.query(Order)
             .order_by(Order.id)
@@ -867,7 +867,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             properties={"description": deferred(orders.c.description)},
         )
 
-        sess = create_session()
+        sess = fixture_session()
         stmt = sa.select(Order).order_by(Order.id)
         o1 = (sess.query(Order).from_statement(stmt).all())[0]
 
@@ -889,7 +889,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         stmt = sa.select(Order).order_by(Order.id)
         o1 = (sess.query(Order).from_statement(stmt).all())[0]
 
@@ -906,7 +906,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
 
         mapper(Order, orders)
 
-        sess = create_session()
+        sess = fixture_session()
         stmt = sa.select(Order).order_by(Order.id)
         o1 = (
             sess.query(Order)
@@ -927,7 +927,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
 
         mapper(Order, orders)
 
-        sess = create_session()
+        sess = fixture_session()
         stmt = sa.select(Order).order_by(Order.id)
         o1 = (
             sess.query(Order)
@@ -971,7 +971,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             properties=dict(orders=relationship(Order, order_by=orders.c.id)),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User).order_by(User.id)
         result = q.all()
         item = result[0].orders[1].items[1]
@@ -1020,7 +1020,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
         )
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
 
         exp = (
             "SELECT users.id AS users_id, users.name AS users_name, "
@@ -1049,7 +1049,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
         mapper(User, users, properties={"orders": relationship(Order)})
         mapper(Order, orders)
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User).options(
             joinedload(User.orders).defer("description").defer("isopen")
         )
@@ -1070,7 +1070,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
 
         mapper(Order, orders)
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Order).options(load_only("isopen", "description"))
         self.assert_compile(
             q,
@@ -1084,7 +1084,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
 
         mapper(Order, orders)
 
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(Order)
             .order_by(Order.id)
@@ -1101,7 +1101,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
             properties={"description": deferred(orders.c.description)},
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Order).options(
             load_only("isopen", "description"), undefer("user_id")
         )
@@ -1129,7 +1129,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
         mapper(User, users, properties={"addresses": relationship(Address)})
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         expected = [
             (
                 "SELECT users.id AS users_id, users.name AS users_name "
@@ -1179,7 +1179,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
         mapper(Address, addresses)
         mapper(Order, orders)
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User, Order, Address).options(
             Load(User).load_only("name"),
             Load(Order).load_only("id"),
@@ -1219,7 +1219,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest):
         mapper(Address, addresses)
         mapper(Order, orders)
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User).options(
             load_only("name")
@@ -1274,7 +1274,7 @@ class SelfReferentialMultiPathTest(testing.fixtures.DeclarativeMappedTest):
     def test_present_overrides_deferred(self):
         Node = self.classes.Node
 
-        session = Session()
+        session = fixture_session()
 
         q = session.query(Node).options(
             joinedload(Node.parent).load_only(Node.id, Node.parent_id)
@@ -1305,7 +1305,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_load_only_subclass(self):
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(Manager)
             .order_by(Manager.person_id)
@@ -1324,7 +1324,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_load_only_subclass_bound(self):
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(Manager)
             .order_by(Manager.person_id)
@@ -1343,7 +1343,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_load_only_subclass_and_superclass(self):
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(Boss)
             .order_by(Person.person_id)
@@ -1362,7 +1362,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_load_only_subclass_and_superclass_bound(self):
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(Boss)
             .order_by(Person.person_id)
@@ -1381,7 +1381,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_load_only_alias_subclass(self):
-        s = Session()
+        s = fixture_session()
         m1 = aliased(Manager, flat=True)
         q = (
             s.query(m1)
@@ -1401,7 +1401,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_load_only_alias_subclass_bound(self):
-        s = Session()
+        s = fixture_session()
         m1 = aliased(Manager, flat=True)
         q = (
             s.query(m1)
@@ -1421,7 +1421,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_load_only_subclass_from_relationship_polymorphic(self):
-        s = Session()
+        s = fixture_session()
         wp = with_polymorphic(Person, [Manager], flat=True)
         q = (
             s.query(Company)
@@ -1448,7 +1448,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_load_only_subclass_from_relationship_polymorphic_bound(self):
-        s = Session()
+        s = fixture_session()
         wp = with_polymorphic(Person, [Manager], flat=True)
         q = (
             s.query(Company)
@@ -1475,7 +1475,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_load_only_subclass_from_relationship(self):
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(Company)
             .join(Company.managers)
@@ -1499,7 +1499,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_load_only_subclass_from_relationship_bound(self):
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(Company)
             .join(Company.managers)
@@ -1528,7 +1528,7 @@ class InheritanceTest(_Polymorphic):
 
         # TODO: what is ".*"?  this is not documented anywhere, how did this
         # get implemented without docs ?  see #4390
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(Manager)
             .order_by(Person.person_id)
@@ -1545,7 +1545,7 @@ class InheritanceTest(_Polymorphic):
         # to have this ".*" featue.
 
     def test_load_only_subclass_of_type(self):
-        s = Session()
+        s = fixture_session()
         q = s.query(Company).options(
             joinedload(Company.employees.of_type(Manager)).load_only("status")
         )
@@ -1571,7 +1571,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_wildcard_subclass_of_type(self):
-        s = Session()
+        s = fixture_session()
         q = s.query(Company).options(
             joinedload(Company.employees.of_type(Manager)).defer("*")
         )
@@ -1593,7 +1593,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_defer_super_name_on_subclass(self):
-        s = Session()
+        s = fixture_session()
         q = s.query(Manager).order_by(Person.person_id).options(defer("name"))
         self.assert_compile(
             q,
@@ -1608,7 +1608,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_defer_super_name_on_subclass_bound(self):
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(Manager)
             .order_by(Person.person_id)
@@ -1627,7 +1627,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_load_only_from_with_polymorphic(self):
-        s = Session()
+        s = fixture_session()
 
         wp = with_polymorphic(Person, [Manager], flat=True)
 
@@ -1652,7 +1652,7 @@ class InheritanceTest(_Polymorphic):
         )
 
     def test_load_only_of_type_with_polymorphic(self):
-        s = Session()
+        s = fixture_session()
 
         wp = with_polymorphic(Person, [Manager], flat=True)
 
@@ -1755,7 +1755,7 @@ class WithExpressionTest(fixtures.DeclarativeMappedTest):
     def test_simple_expr(self):
         A = self.classes.A
 
-        s = Session()
+        s = fixture_session()
         a1 = (
             s.query(A)
             .options(with_expression(A.my_expr, A.x + A.y))
@@ -1768,7 +1768,7 @@ class WithExpressionTest(fixtures.DeclarativeMappedTest):
     def test_expr_default_value(self):
         A = self.classes.A
         C = self.classes.C
-        s = Session()
+        s = fixture_session()
 
         a1 = s.query(A).order_by(A.id).filter(A.x > 1)
         eq_(a1.all(), [A(my_expr=None), A(my_expr=None), A(my_expr=None)])
@@ -1789,7 +1789,7 @@ class WithExpressionTest(fixtures.DeclarativeMappedTest):
     def test_reuse_expr(self):
         A = self.classes.A
 
-        s = Session()
+        s = fixture_session()
 
         # so people will obv. want to say, "filter(A.my_expr > 10)".
         # but that means Query or Core has to post-modify the statement
@@ -1807,7 +1807,7 @@ class WithExpressionTest(fixtures.DeclarativeMappedTest):
     def test_in_joinedload(self):
         A, B = self.classes("A", "B")
 
-        s = Session()
+        s = fixture_session()
 
         q = (
             s.query(A)
@@ -1823,7 +1823,7 @@ class WithExpressionTest(fixtures.DeclarativeMappedTest):
     def test_no_refresh_unless_populate_existing(self):
         A = self.classes.A
 
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).first()
 
         def go():
@@ -1855,7 +1855,7 @@ class WithExpressionTest(fixtures.DeclarativeMappedTest):
     def test_no_sql_not_set_up(self):
         A = self.classes.A
 
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).first()
 
         def go():
@@ -1866,7 +1866,7 @@ class WithExpressionTest(fixtures.DeclarativeMappedTest):
     def test_dont_explode_on_expire_individual(self):
         A = self.classes.A
 
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(A)
             .options(with_expression(A.my_expr, A.x + A.y))
@@ -1895,7 +1895,7 @@ class WithExpressionTest(fixtures.DeclarativeMappedTest):
     def test_dont_explode_on_expire_whole(self):
         A = self.classes.A
 
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(A)
             .options(with_expression(A.my_expr, A.x + A.y))
@@ -1943,7 +1943,7 @@ class RaiseLoadTest(fixtures.DeclarativeMappedTest):
 
     def test_mapper_raise(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).first()
         assert_raises_message(
             sa.exc.InvalidRequestError,
@@ -1956,7 +1956,7 @@ class RaiseLoadTest(fixtures.DeclarativeMappedTest):
 
     def test_mapper_defer_unraise(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).options(defer(A.z)).first()
         assert "z" not in a1.__dict__
         eq_(a1.z, 4)
@@ -1964,7 +1964,7 @@ class RaiseLoadTest(fixtures.DeclarativeMappedTest):
 
     def test_mapper_undefer_unraise(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).options(undefer(A.z)).first()
         assert "z" in a1.__dict__
         eq_(a1.z, 4)
@@ -1972,7 +1972,7 @@ class RaiseLoadTest(fixtures.DeclarativeMappedTest):
 
     def test_deferred_raise_option_raise_column_plain(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).options(defer(A.x)).first()
         a1.x
 
@@ -1989,7 +1989,7 @@ class RaiseLoadTest(fixtures.DeclarativeMappedTest):
 
     def test_deferred_raise_option_load_column_unexpire(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).options(defer(A.x, raiseload=True)).first()
         s.expire(a1, ["x"])
 
@@ -1999,7 +1999,7 @@ class RaiseLoadTest(fixtures.DeclarativeMappedTest):
 
     def test_mapper_raise_after_expire_attr(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).first()
 
         s.expire(a1, ["z"])
@@ -2015,7 +2015,7 @@ class RaiseLoadTest(fixtures.DeclarativeMappedTest):
 
     def test_mapper_raise_after_expire_obj(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).first()
 
         s.expire(a1)
@@ -2031,7 +2031,7 @@ class RaiseLoadTest(fixtures.DeclarativeMappedTest):
 
     def test_mapper_raise_after_modify_attr_expire_obj(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).first()
 
         a1.z = 10
@@ -2048,7 +2048,7 @@ class RaiseLoadTest(fixtures.DeclarativeMappedTest):
 
     def test_deferred_raise_option_load_after_expire_obj(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).options(defer(A.y, raiseload=True)).first()
 
         s.expire(a1)
@@ -2059,7 +2059,7 @@ class RaiseLoadTest(fixtures.DeclarativeMappedTest):
 
     def test_option_raiseload_unexpire_modified_obj(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).options(defer(A.y, raiseload=True)).first()
 
         a1.y = 10
@@ -2071,7 +2071,7 @@ class RaiseLoadTest(fixtures.DeclarativeMappedTest):
 
     def test_option_raise_deferred(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).options(defer(A.y, raiseload=True)).first()
 
         assert_raises_message(
@@ -2084,7 +2084,7 @@ class RaiseLoadTest(fixtures.DeclarativeMappedTest):
 
     def test_does_expire_cancel_normal_defer_option(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         a1 = s.query(A).options(defer(A.x)).first()
 
         # expire object
@@ -2119,7 +2119,7 @@ class AutoflushTest(fixtures.DeclarativeMappedTest):
     def test_deferred_autoflushes(self):
         A, B = self.classes("A", "B")
 
-        s = Session()
+        s = fixture_session()
 
         a1 = A(id=1, bs=[B()])
         s.add(a1)
@@ -2190,14 +2190,14 @@ class DeferredPopulationTest(fixtures.MappedTest):
     def test_no_previous_query(self):
         Thing = self.classes.Thing
 
-        session = create_session()
+        session = fixture_session()
         thing = session.query(Thing).options(sa.orm.undefer("name")).first()
         self._test(thing)
 
     def test_query_twice_with_clear(self):
         Thing = self.classes.Thing
 
-        session = create_session()
+        session = fixture_session()
         result = session.query(Thing).first()  # noqa
         session.expunge_all()
         thing = session.query(Thing).options(sa.orm.undefer("name")).first()
@@ -2206,7 +2206,7 @@ class DeferredPopulationTest(fixtures.MappedTest):
     def test_query_twice_no_clear(self):
         Thing = self.classes.Thing
 
-        session = create_session()
+        session = fixture_session()
         result = session.query(Thing).first()  # noqa
         thing = session.query(Thing).options(sa.orm.undefer("name")).first()
         self._test(thing)
@@ -2214,7 +2214,7 @@ class DeferredPopulationTest(fixtures.MappedTest):
     def test_joinedload_with_clear(self):
         Thing, Human = self.classes.Thing, self.classes.Human
 
-        session = create_session()
+        session = fixture_session()
         human = (  # noqa
             session.query(Human).options(sa.orm.joinedload("thing")).first()
         )
@@ -2225,7 +2225,7 @@ class DeferredPopulationTest(fixtures.MappedTest):
     def test_joinedload_no_clear(self):
         Thing, Human = self.classes.Thing, self.classes.Human
 
-        session = create_session()
+        session = fixture_session()
         human = (  # noqa
             session.query(Human).options(sa.orm.joinedload("thing")).first()
         )
@@ -2235,7 +2235,7 @@ class DeferredPopulationTest(fixtures.MappedTest):
     def test_join_with_clear(self):
         Thing, Human = self.classes.Thing, self.classes.Human
 
-        session = create_session()
+        session = fixture_session()
         result = (  # noqa
             session.query(Human).add_entity(Thing).join("thing").first()
         )
@@ -2246,7 +2246,7 @@ class DeferredPopulationTest(fixtures.MappedTest):
     def test_join_no_clear(self):
         Thing, Human = self.classes.Thing, self.classes.Human
 
-        session = create_session()
+        session = fixture_session()
         result = (  # noqa
             session.query(Human).add_entity(Thing).join("thing").first()
         )
index 7989026d13d9e0e9be1106ad9715f682d5e70a57..7d7432d5562ef033321e1c7f9486de9545dfd582 100644 (file)
@@ -9,6 +9,7 @@ from sqlalchemy import ForeignKey
 from sqlalchemy import func
 from sqlalchemy import Integer
 from sqlalchemy import literal_column
+from sqlalchemy import MetaData
 from sqlalchemy import or_
 from sqlalchemy import select
 from sqlalchemy import String
@@ -16,6 +17,7 @@ from sqlalchemy import table
 from sqlalchemy import testing
 from sqlalchemy import text
 from sqlalchemy import true
+from sqlalchemy.engine import default
 from sqlalchemy.orm import aliased
 from sqlalchemy.orm import as_declarative
 from sqlalchemy.orm import attributes
@@ -25,7 +27,6 @@ from sqlalchemy.orm import column_property
 from sqlalchemy.orm import configure_mappers
 from sqlalchemy.orm import contains_alias
 from sqlalchemy.orm import contains_eager
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import declarative_base
 from sqlalchemy.orm import declared_attr
 from sqlalchemy.orm import defer
@@ -51,18 +52,21 @@ from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import assertions
 from sqlalchemy.testing import AssertsCompiledSQL
 from sqlalchemy.testing import eq_
+from sqlalchemy.testing import eq_ignore_whitespace
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
 from sqlalchemy.testing import is_true
 from sqlalchemy.testing import mock
 from sqlalchemy.testing.assertsql import CompiledSQL
 from sqlalchemy.testing.fixtures import ComparableEntity
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.mock import call
 from sqlalchemy.testing.mock import Mock
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from . import _fixtures
 from .inheritance import _poly_fixtures
+from .test_bind import GetBindTest as _GetBindTest
 from .test_dynamic import _DynamicFixture
 from .test_events import _RemoveListeners
 from .test_options import PathTest as OptionsPathTest
@@ -114,7 +118,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
     def test_deprecated_negative_slices(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User).order_by(User.id)
 
         with testing.expect_deprecated(
@@ -143,7 +147,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
     def test_deprecated_negative_slices_compile(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User).order_by(User.id)
 
         with testing.expect_deprecated(
@@ -181,7 +185,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
     def test_aliased(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         with testing.expect_deprecated_20(join_aliased_dep):
             q1 = s.query(User).join(User.addresses, aliased=True)
@@ -197,7 +201,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         u1 = aliased(User)
 
@@ -219,7 +223,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         u1 = aliased(User)
 
@@ -236,7 +240,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
     def test_str_join_target(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         with testing.expect_deprecated_20(join_strings_dep):
             q1 = s.query(User).join("addresses")
@@ -251,7 +255,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
     def test_str_rel_loader_opt(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         q1 = s.query(User).options(joinedload("addresses"))
 
@@ -272,7 +276,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
     def test_str_col_loader_opt(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         q1 = s.query(User).options(defer("name"))
 
@@ -286,7 +290,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         u1 = User(id=1)
 
@@ -321,7 +325,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
     def test_invalid_column(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(User.id)
 
         with testing.expect_deprecated(r"Query.add_column\(\) is deprecated"):
@@ -334,7 +338,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_via_textasfrom_select_from(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         with self._expect_implicit_subquery():
             eq_(
@@ -350,7 +354,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
     def test_text_as_column(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         # TODO: this works as of "use rowproxy for ORM keyed tuple"
         # Ieb9085e9bcff564359095b754da9ae0af55679f0
@@ -374,7 +378,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
     def test_query_as_scalar(self):
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
         with assertions.expect_deprecated(
             r"The Query.as_scalar\(\) method is deprecated and will "
             "be removed in a future release."
@@ -385,7 +389,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         User, users = self.classes.User, self.tables.users
 
         sel = users.select()
-        sess = create_session()
+        sess = fixture_session()
 
         with self._expect_implicit_subquery():
             eq_(
@@ -399,7 +403,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
     def test_select_entity_from_select(self):
         User, users = self.classes.User, self.tables.users
 
-        sess = create_session()
+        sess = fixture_session()
         with self._expect_implicit_subquery():
             self.assert_compile(
                 sess.query(User.name).select_entity_from(
@@ -413,7 +417,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
     def test_select_entity_from_q_statement(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User)
         with self._expect_implicit_subquery():
@@ -427,7 +431,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_select_from_q_statement_no_aliasing(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User)
         with self._expect_implicit_subquery():
@@ -455,7 +459,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
                 use_labels=True, order_by=[text("ulist.id"), addresses.c.id]
             )
         )
-        sess = create_session()
+        sess = fixture_session()
 
         # better way.  use select_entity_from()
         def go():
@@ -477,7 +481,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
             self.tables.users,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         # same thing, but alias addresses, so that the adapter
         # generated by select_entity_from() is wrapped within
@@ -506,7 +510,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
     def test_select(self):
         users = self.tables.users
 
-        sess = create_session()
+        sess = fixture_session()
 
         with self._expect_implicit_subquery():
             self.assert_compile(
@@ -531,7 +535,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         # mapper(Address, addresses)
 
         sel = users.select(users.c.id.in_([7, 8]))
-        sess = create_session()
+        sess = fixture_session()
 
         with self._expect_implicit_subquery():
             result = (
@@ -606,7 +610,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         sel = users.select(users.c.id.in_([7, 8]))
 
         with self._expect_implicit_subquery():
@@ -633,7 +637,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         User, users = self.classes.User, self.tables.users
 
         sel = users.select(users.c.id.in_([7, 8]))
-        sess = create_session()
+        sess = fixture_session()
 
         with self._expect_implicit_subquery():
             eq_(
@@ -649,7 +653,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         )
 
         sel = users.select(users.c.id.in_([7, 8]))
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             with self._expect_implicit_subquery():
@@ -727,7 +731,7 @@ class DeprecatedQueryTest(_fixtures.FixtureTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = Session()
+        sess = fixture_session()
 
         oalias = orders.select()
 
@@ -800,7 +804,7 @@ class SelfRefFromSelfTest(fixtures.MappedTest, AssertsCompiledSQL):
     def insert_data(cls, connection):
         Node = cls.classes.Node
 
-        sess = create_session(connection)
+        sess = Session(connection)
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -819,7 +823,7 @@ class SelfRefFromSelfTest(fixtures.MappedTest, AssertsCompiledSQL):
 
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         n1 = aliased(Node)
 
@@ -886,7 +890,7 @@ class SelfRefFromSelfTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_multiple_explicit_entities_two(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         parent = aliased(Node)
         grandparent = aliased(Node)
@@ -906,7 +910,7 @@ class SelfRefFromSelfTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_multiple_explicit_entities_three(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         parent = aliased(Node)
         grandparent = aliased(Node)
@@ -927,7 +931,7 @@ class SelfRefFromSelfTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_multiple_explicit_entities_five(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         parent = aliased(Node)
         grandparent = aliased(Node)
@@ -952,7 +956,7 @@ class SelfRefFromSelfTest(fixtures.MappedTest, AssertsCompiledSQL):
 class DynamicTest(_DynamicFixture, _fixtures.FixtureTest):
     def test_negative_slice_access_raises(self):
         User, Address = self._user_address_fixture()
-        sess = create_session(testing.db)
+        sess = fixture_session()
         u1 = sess.get(User, 8)
 
         with testing.expect_deprecated_20(
@@ -986,7 +990,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
 
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
 
         with self._from_self_deprecated():
             q = s.query(User).from_self()
@@ -1007,7 +1011,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_distinct_on(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         with self._from_self_deprecated():
             q = (
@@ -1047,7 +1051,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
         """
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         with self._from_self_deprecated():
             q = (
                 sess.query(User, Address.email_address)
@@ -1068,7 +1072,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
 
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         with self._from_self_deprecated():
             q = (
@@ -1105,7 +1109,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         # explicit onclause with from_self(), means
         # the onclause must be aliased against the query's custom
         # FROM object
@@ -1127,7 +1131,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
 
         Item, Keyword = self.classes.Item, self.classes.Keyword
 
-        sess = create_session()
+        sess = fixture_session()
 
         with self._from_self_deprecated():
             self.assert_compile(
@@ -1153,7 +1157,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
     def test_single_prop_9(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         with self._from_self_deprecated():
             self.assert_compile(
                 sess.query(User)
@@ -1171,7 +1175,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
     def test_anonymous_expression_from_self_twice_oldstyle(self):
         # relies upon _orm_only_from_obj_alias setting
 
-        sess = create_session()
+        sess = fixture_session()
         c1, c2 = column("c1"), column("c2")
         q1 = sess.query(c1, c2).filter(c1 == "dog")
         with self._from_self_deprecated():
@@ -1193,7 +1197,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
         Address = self.classes.Address
         addresses = self.tables.addresses
 
-        sess = create_session()
+        sess = fixture_session()
         q1 = sess.query(User.id).filter(User.id > 5)
         with self._from_self_deprecated():
             q1 = q1.from_self()
@@ -1220,7 +1224,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
         Address = self.classes.Address
         addresses = self.tables.addresses
 
-        sess = create_session()
+        sess = fixture_session()
         q1 = sess.query(User.id).filter(User.id > 5)
         with self._from_self_deprecated():
             q1 = q1.from_self()
@@ -1242,7 +1246,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
         # relies upon _orm_only_from_obj_alias setting
         from sqlalchemy.sql import column
 
-        sess = create_session()
+        sess = fixture_session()
         t1 = table("t1", column("c1"), column("c2"))
         q1 = sess.query(t1.c.c1, t1.c.c2).filter(t1.c.c1 == "dog")
         with self._from_self_deprecated():
@@ -1261,7 +1265,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
     def test_self_referential(self):
         Order = self.classes.Order
 
-        sess = create_session()
+        sess = fixture_session()
         oalias = aliased(Order)
 
         with self._from_self_deprecated():
@@ -1364,7 +1368,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
         # relies upon _orm_only_from_obj_alias setting
         Order = self.classes.Order
 
-        sess = create_session()
+        sess = fixture_session()
 
         # ensure column expressions are taken from inside the subquery, not
         # restated at the top
@@ -1394,7 +1398,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
 
     def test_column_access_from_self(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
 
         with self._from_self_deprecated():
             q = sess.query(User).from_self()
@@ -1408,7 +1412,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
 
     def test_column_access_from_self_twice(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
 
         with self._from_self_deprecated():
             q = sess.query(User).from_self(User.id, User.name).from_self()
@@ -1428,7 +1432,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         adalias = aliased(Address)
         # select from aliasing + explicit aliasing
@@ -1455,7 +1459,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         # anon + select from aliasing
         aa = aliased(Address)
@@ -1475,7 +1479,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         adalias = aliased(Address)
         # test eager aliasing, with/without select_entity_from aliasing
@@ -1606,7 +1610,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
         with self._from_self_deprecated():
             eq_(
                 [User(id=8), User(id=9)],
-                create_session()
+                fixture_session()
                 .query(User)
                 .filter(User.id.in_([8, 9]))
                 .from_self()
@@ -1616,7 +1620,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
         with self._from_self_deprecated():
             eq_(
                 [User(id=8), User(id=9)],
-                create_session()
+                fixture_session()
                 .query(User)
                 .order_by(User.id)
                 .slice(1, 3)
@@ -1628,7 +1632,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
             eq_(
                 [User(id=8)],
                 list(
-                    create_session()
+                    fixture_session()
                     .query(User)
                     .filter(User.id.in_([8, 9]))
                     .from_self()
@@ -1647,7 +1651,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
                     (User(id=8), Address(id=4)),
                     (User(id=9), Address(id=5)),
                 ],
-                create_session()
+                fixture_session()
                 .query(User)
                 .filter(User.id.in_([8, 9]))
                 .from_self()
@@ -1661,7 +1665,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
         Address = self.classes.Address
 
         eq_(
-            create_session()
+            fixture_session()
             .query(Address.user_id, func.count(Address.id).label("count"))
             .group_by(Address.user_id)
             .order_by(Address.user_id)
@@ -1671,7 +1675,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
 
         with self._from_self_deprecated():
             eq_(
-                create_session()
+                fixture_session()
                 .query(Address.user_id, Address.id)
                 .from_self(Address.user_id, func.count(Address.id))
                 .group_by(Address.user_id)
@@ -1683,7 +1687,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
     def test_having(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         with self._from_self_deprecated():
             self.assert_compile(
@@ -1702,7 +1706,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
 
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         with self._from_self_deprecated():
             q = s.query(User).options(joinedload(User.addresses)).from_self()
@@ -1723,7 +1727,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
 
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         ualias = aliased(User)
 
@@ -1775,7 +1779,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
     def test_multiple_entities(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         with self._from_self_deprecated():
             eq_(
@@ -1805,7 +1809,7 @@ class FromSelfTest(QueryTest, AssertsCompiledSQL):
         # relies upon _orm_only_from_obj_alias setting
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         with self._from_self_deprecated():
             eq_(
@@ -1879,7 +1883,7 @@ class SubqRelationsFromSelfTest(fixtures.DeclarativeMappedTest):
     def test_subq_w_from_self_one(self):
         A, B, C = self.classes("A", "B", "C")
 
-        s = Session()
+        s = fixture_session()
 
         cache = {}
 
@@ -1956,7 +1960,7 @@ class SubqRelationsFromSelfTest(fixtures.DeclarativeMappedTest):
 
         A, B, C = self.classes("A", "B", "C")
 
-        s = Session()
+        s = fixture_session()
         cache = {}
 
         for i in range(3):
@@ -2165,7 +2169,7 @@ class SessionTest(fixtures.RemovesEvents, _LocalFixture):
         with testing.expect_deprecated_20(
             "The Session.autocommit parameter is deprecated"
         ):
-            sess = Session(autocommit=True)
+            sess = Session(testing.db, autocommit=True)
         with sess.begin():
             sess.add(User(name="u1"))
 
@@ -2178,7 +2182,7 @@ class SessionTest(fixtures.RemovesEvents, _LocalFixture):
         with testing.expect_deprecated_20(
             "The Session.autocommit parameter is deprecated"
         ):
-            sess = Session(autocommit=True)
+            sess = Session(testing.db, autocommit=True)
 
         def go():
             with sess.begin():
@@ -2193,6 +2197,58 @@ class SessionTest(fixtures.RemovesEvents, _LocalFixture):
         eq_(sess.query(User).count(), 1)
 
 
+class AutocommitClosesOnFailTest(fixtures.MappedTest):
+    __requires__ = ("deferrable_or_no_constraints",)
+
+    @classmethod
+    def define_tables(cls, metadata):
+        Table("t1", metadata, Column("id", Integer, primary_key=True))
+
+        Table(
+            "t2",
+            metadata,
+            Column("id", Integer, primary_key=True),
+            Column(
+                "t1_id",
+                Integer,
+                ForeignKey("t1.id", deferrable=True, initially="deferred"),
+            ),
+        )
+
+    @classmethod
+    def setup_classes(cls):
+        class T1(cls.Comparable):
+            pass
+
+        class T2(cls.Comparable):
+            pass
+
+    @classmethod
+    def setup_mappers(cls):
+        T2, T1, t2, t1 = (
+            cls.classes.T2,
+            cls.classes.T1,
+            cls.tables.t2,
+            cls.tables.t1,
+        )
+
+        mapper(T1, t1)
+        mapper(T2, t2)
+
+    def test_close_transaction_on_commit_fail(self):
+        T2 = self.classes.T2
+
+        session = fixture_session(autocommit=True)
+
+        # with a deferred constraint, this fails at COMMIT time instead
+        # of at INSERT time.
+        session.add(T2(t1_id=123))
+
+        assert_raises(sa.exc.IntegrityError, session.flush)
+
+        assert session._legacy_transaction() is None
+
+
 class DeprecatedInhTest(_poly_fixtures._Polymorphic):
     def test_with_polymorphic(self):
         Person = _poly_fixtures.Person
@@ -2217,7 +2273,7 @@ class DeprecatedInhTest(_poly_fixtures._Polymorphic):
         engineers = self.tables.engineers
         machines = self.tables.machines
 
-        sess = create_session()
+        sess = fixture_session()
 
         mach_alias = machines.select()
         with DeprecatedQueryTest._expect_implicit_subquery():
@@ -2364,7 +2420,7 @@ class DeprecatedMapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         m.add_property("_name", deferred(users.c.name))
         m.add_property("name", synonym("_name"))
 
-        sess = create_session(autocommit=False)
+        sess = fixture_session(autocommit=False)
         assert sess.query(User).get(7)
 
         u = sess.query(User).filter_by(name="jack").one()
@@ -2433,7 +2489,7 @@ class DeprecatedOptionAllTest(OptionsPathTest, _fixtures.FixtureTest):
         assert_raises_message(
             sa.exc.ArgumentError,
             message,
-            create_session()
+            fixture_session()
             .query(*entity_list)
             .options(*options)
             ._compile_context,
@@ -2458,7 +2514,7 @@ class DeprecatedOptionAllTest(OptionsPathTest, _fixtures.FixtureTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated(
             r"The \*addl_attrs on orm.defer is deprecated.  "
@@ -2779,7 +2835,7 @@ class NonPrimaryRelationshipLoaderTest(_fixtures.FixtureTest):
         User, Address, Order, Item = self.classes(
             "User", "Address", "Order", "Item"
         )
-        q = create_session().query(User).order_by(User.id)
+        q = fixture_session().query(User).order_by(User.id)
 
         def go():
             eq_(
@@ -2813,21 +2869,21 @@ class NonPrimaryRelationshipLoaderTest(_fixtures.FixtureTest):
 
         self.assert_sql_count(testing.db, go, count)
 
-        sess = create_session()
+        sess = fixture_session()
         user = sess.query(User).get(7)
 
         closed_mapper = User.closed_orders.entity
         open_mapper = User.open_orders.entity
         eq_(
             [Order(id=1), Order(id=5)],
-            create_session()
+            fixture_session()
             .query(closed_mapper)
             .with_parent(user, property="closed_orders")
             .all(),
         )
         eq_(
             [Order(id=3)],
-            create_session()
+            fixture_session()
             .query(open_mapper)
             .with_parent(user, property="open_orders")
             .all(),
@@ -3004,7 +3060,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
                 use_labels=True, order_by=[text("ulist.id"), addresses.c.id]
             )
         )
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         # note this has multiple problems because we aren't giving Query
@@ -3040,7 +3096,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
                 use_labels=True, order_by=[text("ulist.id"), addresses.c.id]
             )
         )
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         def go():
@@ -3066,7 +3122,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         selectquery = users.outerjoin(addresses).select(
             users.c.id < 10,
@@ -3081,7 +3137,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             ):
                 result = list(
                     q.options(contains_eager("addresses")).instances(
-                        selectquery.execute()
+                        sess.execute(selectquery)
                     )
                 )
             assert self.static.user_address_result[0:3] == result
@@ -3096,7 +3152,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             ):
                 result = list(
                     q.options(contains_eager(User.addresses)).instances(
-                        selectquery.execute()
+                        sess.connection().execute(selectquery)
                     )
                 )
             assert self.static.user_address_result[0:3] == result
@@ -3110,7 +3166,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         adalias = addresses.alias("adalias")
@@ -3131,7 +3187,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
                 result = list(
                     q.options(
                         contains_eager("addresses", alias="adalias")
-                    ).instances(selectquery.execute())
+                    ).instances(sess.connection().execute(selectquery))
                 )
             assert self.static.user_address_result == result
 
@@ -3144,7 +3200,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         adalias = addresses.alias("adalias")
@@ -3161,7 +3217,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
                 result = list(
                     q.options(
                         contains_eager("addresses", alias=adalias)
-                    ).instances(selectquery.execute())
+                    ).instances(sess.connection().execute(selectquery))
                 )
             assert self.static.user_address_result == result
 
@@ -3176,7 +3232,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         oalias = orders.alias("o1")
@@ -3202,7 +3258,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
                     q.options(
                         contains_eager("orders", alias="o1"),
                         contains_eager("orders.items", alias="i1"),
-                    ).instances(query.execute())
+                    ).instances(sess.connection().execute(query))
                 )
             assert self.static.user_order_result == result
 
@@ -3217,7 +3273,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         oalias = orders.alias("o1")
@@ -3245,7 +3301,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
                     q.options(
                         contains_eager("orders", alias=oalias),
                         contains_eager("orders.items", alias=ialias),
-                    ).instances(query.execute())
+                    ).instances(sess.connection().execute(query))
                 )
             assert self.static.user_order_result == result
 
@@ -3268,7 +3324,7 @@ class DistinctOrderByImplicitTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_roundtrip_one(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         with testing.expect_deprecated_20(join_strings_dep):
             q = (
                 sess.query(User)
@@ -3284,7 +3340,7 @@ class DistinctOrderByImplicitTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_roundtrip_two(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         with testing.expect_deprecated_20(join_strings_dep):
             q = (
                 sess.query(User)
@@ -3300,7 +3356,7 @@ class DistinctOrderByImplicitTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_roundtrip_three(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = (
             sess.query(User.id, User.name.label("foo"), Address.id)
@@ -3331,7 +3387,7 @@ class DistinctOrderByImplicitTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_sql_one(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = (
             sess.query(User.id, User.name.label("foo"), Address.id)
@@ -3360,7 +3416,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
     def test_on_bulk_update_hook(self):
         User, users = self.classes.User, self.tables.users
 
-        sess = Session()
+        sess = fixture_session()
         canary = Mock()
 
         event.listen(sess, "after_bulk_update", canary.after_bulk_update)
@@ -3390,7 +3446,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
     def test_on_bulk_delete_hook(self):
         User, users = self.classes.User, self.tables.users
 
-        sess = Session()
+        sess = fixture_session()
         canary = Mock()
 
         event.listen(sess, "after_bulk_delete", canary.after_bulk_delete)
@@ -3438,7 +3494,7 @@ class ImmediateTest(_fixtures.FixtureTest):
     def test_value(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated(r"Query.value\(\) is deprecated"):
             eq_(sess.query(User).filter_by(id=7).value(User.id), 7)
@@ -3457,7 +3513,7 @@ class ImmediateTest(_fixtures.FixtureTest):
     def test_value_cancels_loader_opts(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = (
             sess.query(User)
@@ -3479,7 +3535,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated(r"Query.values?\(\) is deprecated"):
             assert list(sess.query(User).values()) == list()
@@ -3587,7 +3643,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
     def test_values_specific_order_by(self):
         users, User = self.tables.users, self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated(r"Query.values?\(\) is deprecated"):
             assert list(sess.query(User).values()) == list()
@@ -3640,7 +3696,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
 
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User)
         with testing.expect_deprecated(r"Query.values?\(\) is deprecated"):
@@ -3697,7 +3753,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.Order,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         OrderAlias = aliased(Order)
 
         with testing.expect_deprecated_20(join_strings_dep):
@@ -3784,7 +3840,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.Order,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         # no arg error
         with testing.expect_deprecated_20(join_aliased_dep):
             (
@@ -3806,7 +3862,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         # test a basic aliasized path
         with testing.expect_deprecated(join_aliased_dep, join_strings_dep):
@@ -3892,7 +3948,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_overlapping_paths_two(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         # test overlapping paths.   User->orders is used by both joins, but
         # rendered once.
@@ -3925,7 +3981,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
 
             with testing.expect_deprecated_20(*warnings):
                 result = (
-                    create_session()
+                    fixture_session()
                     .query(User)
                     .join("orders", "items", aliased=aliased_)
                     .filter_by(id=3)
@@ -3938,7 +3994,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_overlapping_paths_multilevel(self):
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
 
         with testing.expect_deprecated_20(join_strings_dep, join_chain_dep):
             q = (
@@ -3966,7 +4022,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.Order,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         for oalias, ialias in [
             (True, True),
@@ -4030,7 +4086,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated(join_tuple_form):
             q = (
@@ -4058,7 +4114,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated_20(join_tuple_form):
             q = (
@@ -4087,7 +4143,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         # the old "backwards" form
         with testing.expect_deprecated_20(join_tuple_form, join_strings_dep):
@@ -4115,7 +4171,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated_20(join_strings_dep):
             q = (
@@ -4135,7 +4191,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             "User", "Order", "Item", "Keyword"
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         # ensure when the tokens are broken up that from_joinpoint
         # is set between them
@@ -4163,7 +4219,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_single_name(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated_20(join_strings_dep):
             self.assert_compile(
@@ -4213,7 +4269,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             User,
         ) = (self.classes.Order, self.classes.User)
 
-        sess = create_session()
+        sess = fixture_session()
         with testing.expect_deprecated_20(join_chain_dep):
             self.assert_compile(
                 sess.query(User).join(User.orders, Order.items),
@@ -4228,7 +4284,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_single_prop_7(self):
         Order, User = (self.classes.Order, self.classes.User)
 
-        sess = create_session()
+        sess = fixture_session()
         # this query is somewhat nonsensical.  the old system didn't render a
         # correct query for this. In this case its the most faithful to what
         # was asked - there's no linkage between User.orders and "oalias",
@@ -4251,7 +4307,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             User,
         ) = (self.classes.Order, self.classes.User)
 
-        sess = create_session()
+        sess = fixture_session()
         # same as before using an aliased() for User as well
         ualias = aliased(User)
         oalias = aliased(Order)
@@ -4270,7 +4326,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_single_prop_10(self):
         User, Address = (self.classes.User, self.classes.Address)
 
-        sess = create_session()
+        sess = fixture_session()
         with testing.expect_deprecated_20(join_aliased_dep):
             self.assert_compile(
                 sess.query(User)
@@ -4289,7 +4345,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         with testing.expect_deprecated_20(join_aliased_dep, join_chain_dep):
             self.assert_compile(
                 sess.query(User)
@@ -4311,7 +4367,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated_20(join_chain_dep, join_aliased_dep):
             self.assert_compile(
@@ -4339,7 +4395,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         # this is now a very weird test, nobody should really
         # be using the aliased flag in this way.
@@ -4404,7 +4460,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
 
         with testing.expect_deprecated_20(join_strings_dep, join_chain_dep):
             result = (
-                create_session()
+                fixture_session()
                 .query(User)
                 .select_from(users.join(oalias))
                 .filter(
@@ -4418,7 +4474,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
 
         with testing.expect_deprecated_20(join_strings_dep, join_chain_dep):
             result = (
-                create_session()
+                fixture_session()
                 .query(User)
                 .select_from(users.join(oalias))
                 .filter(
@@ -4444,7 +4500,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             # id 1 (order 3, owned by jack)
             with testing.expect_deprecated_20(*warnings):
                 result = (
-                    create_session()
+                    fixture_session()
                     .query(User)
                     .join("orders", "items", aliased=aliased_)
                     .filter_by(id=3)
@@ -4457,7 +4513,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
 
             with testing.expect_deprecated_20(*warnings):
                 result = (
-                    create_session()
+                    fixture_session()
                     .query(User)
                     .join("orders", "items", aliased=aliased_, isouter=True)
                     .filter_by(id=3)
@@ -4470,7 +4526,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
 
             with testing.expect_deprecated_20(*warnings):
                 result = (
-                    create_session()
+                    fixture_session()
                     .query(User)
                     .outerjoin("orders", "items", aliased=aliased_)
                     .filter_by(id=3)
@@ -4540,7 +4596,7 @@ class AliasFromCorrectLeftTest(
     def test_join_prop_to_string(self):
         A, B, X = self.classes("A", "B", "X")
 
-        s = Session()
+        s = fixture_session()
 
         with testing.expect_deprecated_20(join_strings_dep):
             q = s.query(B).join(B.a_list, "x_list").filter(X.name == "x1")
@@ -4562,7 +4618,7 @@ class AliasFromCorrectLeftTest(
     def test_join_prop_to_prop(self):
         A, B, X = self.classes("A", "B", "X")
 
-        s = Session()
+        s = fixture_session()
 
         # B -> A, but both are Object.  So when we say A.x_list, make sure
         # we pick the correct right side
@@ -4629,7 +4685,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def insert_data(cls, connection):
         Node = cls.classes.Node
 
-        sess = create_session(connection)
+        sess = Session(connection)
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -4643,7 +4699,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_join_1(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated_20(join_strings_dep, join_aliased_dep):
             node = (
@@ -4656,7 +4712,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_join_2(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
         with testing.expect_deprecated_20(join_aliased_dep):
             ret = (
                 sess.query(Node.data)
@@ -4668,7 +4724,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_join_3_filter_by(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
         with testing.expect_deprecated_20(
             join_strings_dep, join_aliased_dep, join_chain_dep
         ):
@@ -4690,7 +4746,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_join_3_filter(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
         with testing.expect_deprecated_20(
             join_strings_dep, join_aliased_dep, join_chain_dep
         ):
@@ -4712,7 +4768,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_join_4_filter_by(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated_20(join_strings_dep, join_aliased_dep):
             q = (
@@ -4739,7 +4795,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_join_4_filter(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated_20(join_strings_dep, join_aliased_dep):
             q = (
@@ -4772,7 +4828,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
         nalias = aliased(
             Node, sess.query(Node).filter_by(data="n1").subquery()
         )
@@ -4811,7 +4867,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_string_or_prop_aliased_two(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
         nalias = aliased(
             Node, sess.query(Node).filter_by(data="n1").subquery()
         )
@@ -4880,7 +4936,7 @@ class InheritedJoinTest(_poly_fixtures._Polymorphic, AssertsCompiledSQL):
             self.classes.Engineer,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         mach_alias = aliased(Machine, machines.select().subquery())
 
@@ -4913,7 +4969,7 @@ class InheritedJoinTest(_poly_fixtures._Polymorphic, AssertsCompiledSQL):
             self.classes.Paperwork,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated_20(join_strings_dep, w_polymorphic_dep):
             self.assert_compile(
@@ -4945,7 +5001,7 @@ class InheritedJoinTest(_poly_fixtures._Polymorphic, AssertsCompiledSQL):
             self.classes.Paperwork,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         with testing.expect_deprecated_20(
             join_strings_dep, w_polymorphic_dep, join_aliased_dep
@@ -5002,7 +5058,7 @@ class JoinFromSelectableTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_mapped_to_select_implicit_left_w_aliased(self):
         T1, T2 = self.classes.T1, self.classes.T2
 
-        sess = Session()
+        sess = fixture_session()
         subq = (
             sess.query(T2.t1_id, func.count(T2.id).label("count"))
             .group_by(T2.t1_id)
@@ -5082,7 +5138,7 @@ class MultiplePathTest(fixtures.MappedTest, AssertsCompiledSQL):
 
         with testing.expect_deprecated_20(join_strings_dep):
             q = (
-                create_session()
+                fixture_session()
                 .query(T1)
                 .join("t2s_1")
                 .filter(t2.c.id == 5)
@@ -5099,3 +5155,79 @@ class MultiplePathTest(fixtures.MappedTest, AssertsCompiledSQL):
             "WHERE t2.id = :id_1",
             use_default_dialect=True,
         )
+
+
+class BindSensitiveStringifyTest(fixtures.TestBase):
+    def _fixture(self):
+        # building a totally separate metadata /mapping here
+        # because we need to control if the MetaData is bound or not
+
+        class User(object):
+            pass
+
+        m = MetaData()
+        user_table = Table(
+            "users",
+            m,
+            Column("id", Integer, primary_key=True),
+            Column("name", String(50)),
+        )
+
+        mapper(User, user_table)
+        return User
+
+    def _dialect_fixture(self):
+        class MyDialect(default.DefaultDialect):
+            default_paramstyle = "qmark"
+
+        from sqlalchemy.engine import base
+
+        return base.Engine(mock.Mock(), MyDialect(), mock.Mock())
+
+    def _test(self, bound_session, session_present, expect_bound):
+        if bound_session:
+            eng = self._dialect_fixture()
+        else:
+            eng = None
+
+        User = self._fixture()
+
+        s = Session(eng if bound_session else None)
+        q = s.query(User).filter(User.id == 7)
+        if not session_present:
+            q = q.with_session(None)
+
+        eq_ignore_whitespace(
+            str(q),
+            "SELECT users.id AS users_id, users.name AS users_name "
+            "FROM users WHERE users.id = ?"
+            if expect_bound
+            else "SELECT users.id AS users_id, users.name AS users_name "
+            "FROM users WHERE users.id = :id_1",
+        )
+
+    def test_query_bound_session(self):
+        self._test(True, True, True)
+
+    def test_query_no_session(self):
+        self._test(False, False, False)
+
+    def test_query_unbound_session(self):
+        self._test(False, True, False)
+
+
+class GetBindTest(_GetBindTest):
+    @classmethod
+    def define_tables(cls, metadata):
+        super(GetBindTest, cls).define_tables(metadata)
+        metadata.bind = testing.db
+
+    def test_fallback_table_metadata(self):
+        session = self._fixture({})
+        is_(session.get_bind(self.classes.BaseClass), testing.db)
+
+    def test_bind_base_table_concrete_sub_class(self):
+        base_class_bind = Mock()
+        session = self._fixture({self.tables.base_table: base_class_bind})
+
+        is_(session.get_bind(self.classes.ConcreteSubClass), testing.db)
index 5f18b9bce9f1c08daf90389a5b27a8340a8c84e0..942e8383a5a13cdc5dade5083fb51b138b55d4c9 100644 (file)
@@ -9,11 +9,9 @@ from sqlalchemy import testing
 from sqlalchemy.orm import attributes
 from sqlalchemy.orm import backref
 from sqlalchemy.orm import configure_mappers
-from sqlalchemy.orm import create_session
 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
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import AssertsCompiledSQL
@@ -21,6 +19,7 @@ from sqlalchemy.testing import eq_
 from sqlalchemy.testing import expect_raises_message
 from sqlalchemy.testing import is_
 from sqlalchemy.testing.assertsql import CompiledSQL
+from sqlalchemy.testing.fixtures import fixture_session
 from test.orm import _fixtures
 
 
@@ -126,7 +125,7 @@ class _DynamicFixture(object):
 class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
     def test_basic(self):
         User, Address = self._user_address_fixture()
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         eq_(
@@ -152,7 +151,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_slice_access(self):
         User, Address = self._user_address_fixture()
-        sess = create_session()
+        sess = fixture_session()
         u1 = sess.get(User, 8)
 
         eq_(u1.addresses.limit(1).one(), Address(id=2))
@@ -162,7 +161,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_negative_slice_access_raises(self):
         User, Address = self._user_address_fixture()
-        sess = create_session(testing.db, future=True)
+        sess = fixture_session(future=True)
         u1 = sess.get(User, 8)
 
         with expect_raises_message(
@@ -194,7 +193,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
         would render, without any _clones called."""
 
         User, Address = self._user_address_fixture()
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         u = q.filter(User.id == 7).first()
@@ -208,7 +207,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_detached_raise(self):
         User, Address = self._user_address_fixture()
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).get(8)
         sess.expunge(u)
 
@@ -274,7 +273,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_order_by(self):
         User, Address = self._user_address_fixture()
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).get(8)
         eq_(
             list(u.addresses.order_by(desc(Address.email_address))),
@@ -291,7 +290,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
             addresses_args={"order_by": addresses.c.email_address.desc()}
         )
 
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).get(8)
         eq_(
             list(u.addresses),
@@ -326,7 +325,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_count(self):
         User, Address = self._user_address_fixture()
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).first()
         eq_(u.addresses.count(), 1)
 
@@ -349,7 +348,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
         )
         mapper(User, users)
 
-        sess = create_session()
+        sess = fixture_session()
         ad = sess.query(Address).get(1)
 
         def go():
@@ -362,7 +361,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_no_count(self):
         User, Address = self._user_address_fixture()
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         # dynamic collection cannot implement __len__() (at least one that
@@ -400,7 +399,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
             items_args={"backref": backref("orders", lazy="dynamic")}
         )
 
-        sess = create_session()
+        sess = fixture_session()
         o1 = Order(id=15, description="order 10")
         i1 = Item(id=10, description="item 8")
         o1.items.append(i1)
@@ -439,7 +438,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
         )
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
         o = sess.query(Order).first()
 
         self.assert_compile(
@@ -477,7 +476,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
         )
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = sess.query(User).first()
 
         self.assert_compile(
@@ -529,7 +528,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
             properties={"item_keywords": relationship(ItemKeyword)},
         )
 
-        sess = create_session()
+        sess = fixture_session()
         order = sess.query(Order).first()
 
         self.assert_compile(
@@ -572,14 +571,14 @@ class UOWTest(
         addresses = self.tables.addresses
         User, Address = self._user_address_fixture()
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(name="jack")
         a1 = Address(email_address="foo")
         sess.add_all([u1, a1])
         sess.flush()
 
         eq_(
-            testing.db.scalar(
+            sess.connection().scalar(
                 select(func.count(cast(1, Integer))).where(
                     addresses.c.user_id != None
                 )
@@ -591,16 +590,18 @@ class UOWTest(
         sess.flush()
 
         eq_(
-            testing.db.execute(
+            sess.connection()
+            .execute(
                 select(addresses).where(addresses.c.user_id != None)  # noqa
-            ).fetchall(),
+            )
+            .fetchall(),
             [(a1.id, u1.id, "foo")],
         )
 
         u1.addresses.remove(a1)
         sess.flush()
         eq_(
-            testing.db.scalar(
+            sess.connection().scalar(
                 select(func.count(cast(1, Integer))).where(
                     addresses.c.user_id != None
                 )
@@ -611,9 +612,11 @@ class UOWTest(
         u1.addresses.append(a1)
         sess.flush()
         eq_(
-            testing.db.execute(
+            sess.connection()
+            .execute(
                 select(addresses).where(addresses.c.user_id != None)  # noqa
-            ).fetchall(),
+            )
+            .fetchall(),
             [(a1.id, u1.id, "foo")],
         )
 
@@ -622,9 +625,11 @@ class UOWTest(
         u1.addresses.append(a2)
         sess.flush()
         eq_(
-            testing.db.execute(
+            sess.connection()
+            .execute(
                 select(addresses).where(addresses.c.user_id != None)  # noqa
-            ).fetchall(),
+            )
+            .fetchall(),
             [(a2.id, u1.id, "bar")],
         )
 
@@ -633,7 +638,7 @@ class UOWTest(
         User, Address = self._user_address_fixture(
             addresses_args={"order_by": addresses.c.email_address}
         )
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         u1 = User(name="jack")
         a1 = Address(email_address="a1")
         a2 = Address(email_address="a2")
@@ -669,7 +674,7 @@ class UOWTest(
         User, Address = self._user_address_fixture(
             addresses_args={"order_by": addresses.c.email_address}
         )
-        sess = create_session(autoflush=True, autocommit=False)
+        sess = fixture_session(autoflush=True, autocommit=False)
         u1 = User(name="jack")
         a1 = Address(email_address="a1")
         a2 = Address(email_address="a2")
@@ -691,7 +696,7 @@ class UOWTest(
         # when flushing an append
         User, Address = self._user_address_fixture()
 
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="jack", addresses=[Address(email_address="a1")])
         sess.add(u1)
         sess.commit()
@@ -721,7 +726,7 @@ class UOWTest(
         # when flushing a remove
         User, Address = self._user_address_fixture()
 
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="jack", addresses=[Address(email_address="a1")])
         a2 = Address(email_address="a2")
         u1.addresses.append(a2)
@@ -757,7 +762,7 @@ class UOWTest(
 
     def test_rollback(self):
         User, Address = self._user_address_fixture()
-        sess = create_session(
+        sess = fixture_session(
             expire_on_commit=False, autocommit=False, autoflush=True
         )
         u1 = User(name="jack")
@@ -786,7 +791,7 @@ class UOWTest(
             }
         )
 
-        sess = create_session(autoflush=True, autocommit=False)
+        sess = fixture_session(autoflush=True, autocommit=False)
         u = User(name="ed")
         u.addresses.extend(
             [Address(email_address=letter) for letter in "abcdef"]
@@ -854,7 +859,7 @@ class UOWTest(
             },
         )
 
-        sess = Session()
+        sess = fixture_session()
         n2, n3 = Node(), Node()
         n1 = Node(children=[n2, n3])
         sess.add(n1)
@@ -872,7 +877,7 @@ class UOWTest(
             }
         )
 
-        sess = create_session(autoflush=True, autocommit=False)
+        sess = fixture_session(autoflush=True, autocommit=False)
         u = User(name="ed")
         u.addresses.extend(
             [Address(email_address=letter) for letter in "abcdef"]
@@ -893,7 +898,7 @@ class UOWTest(
         User, Address = self._user_address_fixture(
             addresses_args={"backref": "user"}
         )
-        sess = create_session(autoflush=autoflush, autocommit=False)
+        sess = fixture_session(autoflush=autoflush, autocommit=False)
 
         u = User(name="buffy")
 
@@ -948,29 +953,28 @@ class UOWTest(
             addresses_args={"backref": "user"}
         )
 
-        session = create_session()
-        user = User()
-        user.name = "joe"
-        user.fullname = "Joe User"
-        user.password = "Joe's secret"
-        address = Address()
-        address.email_address = "joe@joesdomain.example"
-        address.user = user
-        session.add(user)
-        session.flush()
-        session.expunge_all()
+        with fixture_session() as session:
+            user = User()
+            user.name = "joe"
+            user.fullname = "Joe User"
+            user.password = "Joe's secret"
+            address = Address()
+            address.email_address = "joe@joesdomain.example"
+            address.user = user
+            session.add(user)
+            session.commit()
 
         def query1():
-            session = create_session(testing.db)
+            session = fixture_session()
             user = session.query(User).first()
             return user.addresses.all()
 
         def query2():
-            session = create_session(testing.db)
+            session = fixture_session()
             return session.query(User).first().addresses.all()
 
         def query3():
-            session = create_session(testing.db)
+            session = fixture_session()
             return session.query(User).first().addresses.all()
 
         eq_(query1(), [Address(email_address="joe@joesdomain.example")])
@@ -997,7 +1001,7 @@ class HistoryTest(_DynamicFixture, _fixtures.FixtureTest):
 
         u1 = User(name="u1")
         a1 = Address(email_address="a1")
-        s = Session(autoflush=autoflush)
+        s = fixture_session(autoflush=autoflush)
         s.add(u1)
         s.flush()
         return u1, a1, s
@@ -1007,7 +1011,7 @@ class HistoryTest(_DynamicFixture, _fixtures.FixtureTest):
 
         o1 = Order()
         i1 = Item(description="i1")
-        s = Session(autoflush=autoflush)
+        s = fixture_session(autoflush=autoflush)
         s.add(o1)
         s.flush()
         return o1, i1, s
index 7bc82b2a3ac37e53c24d284d7813196d253cb3be..4498fc1ff92f6ef3754fe705666527b865279df6 100644 (file)
@@ -17,7 +17,6 @@ from sqlalchemy.orm import backref
 from sqlalchemy.orm import close_all_sessions
 from sqlalchemy.orm import column_property
 from sqlalchemy.orm import contains_eager
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import defaultload
 from sqlalchemy.orm import deferred
 from sqlalchemy.orm import joinedload
@@ -38,6 +37,7 @@ from sqlalchemy.testing import in_
 from sqlalchemy.testing import is_
 from sqlalchemy.testing import is_not
 from sqlalchemy.testing.assertsql import CompiledSQL
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from sqlalchemy.util import OrderedDict as odict
@@ -68,7 +68,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         eq_(
@@ -91,7 +91,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
 
         m = mapper(User, users)
-        sess = create_session()
+        sess = fixture_session()
         sess.query(User).all()
         m.add_property("addresses", relationship(mapper(Address, addresses)))
 
@@ -136,7 +136,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         user = sess.query(User).get(7)
         assert getattr(User, "addresses").hasparent(
             sa.orm.attributes.instance_state(user.addresses[0]),
@@ -165,7 +165,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             },
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         eq_(
             [
                 User(id=7, addresses=[Address(id=1)]),
@@ -202,7 +202,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             },
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         eq_(
             [
                 User(id=7, addresses=[Address(id=1)]),
@@ -242,7 +242,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             ),
         )
 
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         result = (
             q.filter(User.id == Address.user_id)
             .order_by(Address.email_address)
@@ -285,7 +285,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             ),
         )
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             [
                 User(id=7, addresses=[Address(id=1)]),
@@ -318,7 +318,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         mapper(Address, addresses)
         mapper(User, users, properties=dict(addresses=relationship(Address)))
 
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(User)
             .join("addresses")
@@ -369,7 +369,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         mapper(User, users)
 
-        sess = create_session()
+        sess = fixture_session()
 
         for q in [
             sess.query(Address)
@@ -559,7 +559,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 5,
             ),
         ]:
-            sess = create_session()
+            sess = fixture_session()
 
             def go():
                 eq_(
@@ -585,7 +585,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             properties={"addresses": relationship(Address, lazy="dynamic")},
         )
         mapper(Address, addresses)
-        sess = create_session()
+        sess = fixture_session()
         assert_raises_message(
             sa.exc.InvalidRequestError,
             "User.addresses' does not support object "
@@ -616,7 +616,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             ),
         )
 
-        q = create_session().query(Item).order_by(Item.id)
+        q = fixture_session().query(Item).order_by(Item.id)
 
         def go():
             eq_(self.static.item_keyword_result, q.all())
@@ -662,7 +662,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             ),
         )
-        q = create_session().query(Item)
+        q = fixture_session().query(Item)
 
         def go():
             eq_(
@@ -704,7 +704,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         eq_(sa.orm.class_mapper(User).get_property("addresses").lazy, "joined")
         eq_(sa.orm.class_mapper(Address).get_property("user").lazy, "joined")
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             self.static.user_address_result,
             sess.query(User).order_by(User.id).all(),
@@ -926,7 +926,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         User, Address, Order, Item = self.classes(
             "User", "Address", "Order", "Item"
         )
-        q = create_session().query(User).order_by(User.id)
+        q = fixture_session().query(User).order_by(User.id)
 
         def items(*ids):
             if no_items:
@@ -993,14 +993,14 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         mapper(Address, addresses)
         mapper(Order, orders)
 
-        self.allusers = create_session().query(User).all()
+        self.allusers = fixture_session().query(User).all()
 
         # using a textual select, the columns will be 'id' and 'name'.  the
         # eager loaders have aliases which should not hit on those columns,
         # they should be required to locate only their aliased/fully table
         # qualified column name.
         noeagers = (
-            create_session()
+            fixture_session()
             .query(User)
             .from_statement(text("select * from users"))
             .all()
@@ -1061,7 +1061,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         result = q.order_by(User.id).limit(2).offset(1).all()
@@ -1098,7 +1098,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         def go():
@@ -1134,7 +1134,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             },
         )
 
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         eq_(
             [
                 User(id=7, addresses=[Address(id=1)]),
@@ -1175,7 +1175,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Item)
         result = (
             q.filter(
@@ -1240,7 +1240,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 ),
             ),
         )
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User)
 
@@ -1316,7 +1316,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         mapper(Order, orders)
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(User).first(),
             User(
@@ -1369,7 +1369,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = sess.query(User).filter(User.id == 8).one()
 
         def go():
@@ -1413,7 +1413,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         class MyBogusOption(MapperOption):
             propagate_to_loaders = True
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = (
             sess.query(User)
             .options(MyBogusOption())
@@ -1485,7 +1485,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         mapper(Address, addresses)
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(User).options(joinedload(User.orders)).limit(10),
@@ -1641,7 +1641,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             ),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
 
         def go():
             result = q.filter(users.c.id == 7).all()
@@ -1666,7 +1666,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             ),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         q = q.filter(users.c.id == 7).limit(1)
 
         self.assert_compile(
@@ -1697,7 +1697,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 user=relationship(mapper(User, users), lazy="joined")
             ),
         )
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Address)
 
         def go():
@@ -1737,7 +1737,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             ),
         )
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             o1 = (
@@ -1795,7 +1795,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             ),
         )
 
-        q = create_session().query(User)
+        q = fixture_session().query(User)
 
         result = q.filter(text("users.id in (7, 8, 9)")).order_by(
             text("users.id")
@@ -1838,7 +1838,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             },
         )
 
-        q = create_session().query(User)
+        q = fixture_session().query(User)
 
         def go():
             eq_(
@@ -1878,7 +1878,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             properties={"order": relationship(Order, uselist=False)},
         )
         mapper(Order, orders)
-        s = create_session()
+        s = fixture_session()
         assert_raises(
             sa.exc.SAWarning, s.query(User).options(joinedload(User.order)).all
         )
@@ -1931,7 +1931,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 orders=relationship(Order, lazy=False, order_by=orders.c.id),
             ),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
 
         def go():
             eq_(self.static.user_all_result, q.order_by(User.id).all())
@@ -1959,7 +1959,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         mapper(User, users)
         mapper(Item, items)
 
-        q = create_session().query(Order)
+        q = fixture_session().query(Order)
         eq_(
             [Order(id=3, user=User(id=7)), Order(id=4, user=User(id=9))],
             q.all(),
@@ -1992,7 +1992,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             ),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         result = (
             q.filter(addresses.c.email_address == "ed@lala.com")
             .filter(Address.user_id == User.id)
@@ -2020,7 +2020,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             ),
         )
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             [
                 User(id=7, addresses=[Address(id=1)]),
@@ -2079,7 +2079,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User),
             "SELECT users.id AS users_id, users.name AS users_name, "
@@ -2171,7 +2171,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User),
             "SELECT users.id AS users_id, users.name AS users_name, "
@@ -2286,7 +2286,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User).options(
             joinedload("orders", innerjoin=False).joinedload(
                 "items", innerjoin=True
@@ -2361,7 +2361,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         mapper(Order, orders)
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User).options(
             joinedload("orders"), joinedload("addresses", innerjoin="unnested")
         )
@@ -2402,7 +2402,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         mapper(Order, orders)
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User).options(
             joinedload("orders"), joinedload("addresses", innerjoin=True)
         )
@@ -2478,7 +2478,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         mapper(Keyword, keywords)
 
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(User)
             .join(User.orders)
@@ -2549,7 +2549,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
 
         # joining from user, its all LEFT OUTER JOINs
         self.assert_compile(
@@ -2610,7 +2610,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(User),
@@ -2662,7 +2662,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             ),
         )
         mapper(Item, items)
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User).options(joinedload(User.orders, innerjoin=True)),
             "SELECT users.id AS users_id, users.name AS users_name, "
@@ -2782,7 +2782,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
 
         if use_load:
             opt = Load(User).defaultload("orders").lazyload("*")
@@ -2833,7 +2833,7 @@ class SelectUniqueTest(_fixtures.FixtureTest):
             .order_by(Address.id)
         )
 
-        s = create_session()
+        s = fixture_session()
         result = s.execute(stmt)
 
         eq_(result.scalars().all(), self.static.address_user_result)
@@ -2842,7 +2842,7 @@ class SelectUniqueTest(_fixtures.FixtureTest):
         User = self.classes.User
 
         stmt = select(User).options(joinedload(User.addresses))
-        s = create_session()
+        s = fixture_session()
         result = s.execute(stmt)
 
         with expect_raises_message(
@@ -2857,7 +2857,7 @@ class SelectUniqueTest(_fixtures.FixtureTest):
         stmt = (
             select(User).options(joinedload(User.addresses)).order_by(User.id)
         )
-        s = create_session()
+        s = fixture_session()
         result = s.execute(stmt)
 
         eq_(
@@ -2871,7 +2871,7 @@ class SelectUniqueTest(_fixtures.FixtureTest):
         stmt = (
             select(User).options(joinedload(User.addresses)).order_by(User.id)
         )
-        s = create_session()
+        s = fixture_session()
         result = s.execute(stmt)
 
         eq_(result.scalars().unique().all(), self.static.user_address_result)
@@ -2886,7 +2886,7 @@ class SelectUniqueTest(_fixtures.FixtureTest):
             .options(joinedload(User.addresses))
             .order_by(User.id, Address.id)
         )
-        s = create_session()
+        s = fixture_session()
         result = s.execute(stmt)
 
         eq_(
@@ -2908,7 +2908,7 @@ class SelectUniqueTest(_fixtures.FixtureTest):
             .options(joinedload(User.addresses))
             .order_by(User.id)
         )
-        s = create_session()
+        s = fixture_session()
         result = s.execute(stmt)
 
         eq_(
@@ -3119,7 +3119,7 @@ class InnerJoinSplicingTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
             self.classes.C2,
         )
 
-        s = Session()
+        s = fixture_session()
 
         q = s.query(A).options(
             joinedload(A.bs, innerjoin=False)
@@ -3153,7 +3153,7 @@ class InnerJoinSplicingTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
         # test #3447
         A = self.classes.A
 
-        s = Session()
+        s = fixture_session()
 
         q = s.query(A).options(
             joinedload("bs"),
@@ -3181,7 +3181,7 @@ class InnerJoinSplicingTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
     def test_multiple_splice_points(self):
         A = self.classes.A
 
-        s = Session()
+        s = fixture_session()
 
         q = s.query(A).options(
             joinedload("bs", innerjoin=False),
@@ -3229,7 +3229,7 @@ class InnerJoinSplicingTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
         a_mapper = inspect(A)
         a_mapper.add_property("bs_np", relationship(b_np, viewonly=True))
 
-        s = Session()
+        s = fixture_session()
 
         q = s.query(A).options(joinedload("bs_np", innerjoin=False))
         self.assert_compile(
@@ -3345,7 +3345,7 @@ class InnerJoinSplicingWSecondaryTest(
     def test_joined_across(self):
         A = self.classes.A
 
-        s = Session()
+        s = fixture_session()
         q = s.query(A).options(
             joinedload("b")
             .joinedload("c", innerjoin=True)
@@ -3407,7 +3407,7 @@ class SubqueryAliasingTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
 
         self._fixture({"summation": column_property(cp.scalar_subquery())})
         self.assert_compile(
-            create_session()
+            fixture_session()
             .query(A)
             .options(joinedload("bs"))
             .order_by(A.summation)
@@ -3430,7 +3430,7 @@ class SubqueryAliasingTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
 
         self._fixture({"summation": column_property(cp.scalar_subquery())})
         self.assert_compile(
-            create_session()
+            fixture_session()
             .query(A)
             .options(joinedload("bs"))
             .order_by(A.summation.desc())
@@ -3455,7 +3455,7 @@ class SubqueryAliasingTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
 
         self._fixture({"summation": column_property(cp.scalar_subquery())})
         self.assert_compile(
-            create_session()
+            fixture_session()
             .query(A)
             .options(joinedload("bs"))
             .order_by(A.summation)
@@ -3484,7 +3484,7 @@ class SubqueryAliasingTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
         # the removal of a separate _make_proxy() from ScalarSelect
         # fixed that.
         self.assert_compile(
-            create_session()
+            fixture_session()
             .query(A)
             .options(joinedload("bs"))
             .order_by(cp)
@@ -3511,7 +3511,7 @@ class SubqueryAliasingTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
             .label("foo")
         )
         self.assert_compile(
-            create_session()
+            fixture_session()
             .query(A)
             .options(joinedload("bs"))
             .order_by(cp)
@@ -3540,7 +3540,7 @@ class SubqueryAliasingTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
         # TODO: there is no test in Core that asserts what is happening
         # here as far as the label generation for the ORDER BY
         self.assert_compile(
-            create_session()
+            fixture_session()
             .query(A)
             .options(joinedload("bs"))
             .order_by(~cp)
@@ -3581,7 +3581,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest):
         )
         mapper(Dingaling, self.tables.dingalings)
 
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
         return User, Address, Dingaling, sess
 
     def _collection_to_collection_fixture(self):
@@ -3602,7 +3602,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest):
         )
         mapper(Item, self.tables.items)
 
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
         return User, Order, Item, sess
 
     def _eager_config_fixture(self):
@@ -3613,7 +3613,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest):
             properties={"addresses": relationship(Address, lazy="joined")},
         )
         mapper(Address, self.tables.addresses)
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
         return User, Address, sess
 
     def test_runs_query_on_refresh(self):
@@ -3804,7 +3804,7 @@ class AddEntityTest(_fixtures.FixtureTest):
         )
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
         oalias = sa.orm.aliased(Order)
 
         def go():
@@ -3861,7 +3861,7 @@ class AddEntityTest(_fixtures.FixtureTest):
         )
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
 
         oalias = sa.orm.aliased(Order)
 
@@ -3958,7 +3958,7 @@ class OrderBySecondaryTest(fixtures.MappedTest):
         )
         mapper(B, b)
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(A).all(),
             [
@@ -3997,7 +3997,7 @@ class SelfReferentialEagerTest(fixtures.MappedTest):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -4073,7 +4073,7 @@ class SelfReferentialEagerTest(fixtures.MappedTest):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -4121,7 +4121,7 @@ class SelfReferentialEagerTest(fixtures.MappedTest):
                 "data": deferred(nodes.c.data),
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -4178,7 +4178,7 @@ class SelfReferentialEagerTest(fixtures.MappedTest):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -4249,7 +4249,7 @@ class SelfReferentialEagerTest(fixtures.MappedTest):
             nodes,
             properties={"children": relationship(Node, lazy="joined")},
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -4372,7 +4372,7 @@ class MixedSelfReferentialEagerTest(fixtures.MappedTest):
     def test_eager_load(self):
         A, B = self.classes.A, self.classes.B
 
-        session = create_session()
+        session = fixture_session()
 
         def go():
             eq_(
@@ -4451,7 +4451,7 @@ class SelfReferentialM2MEagerTest(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         w1 = Widget(name="w1")
         w2 = Widget(name="w2")
         w1.children.append(w2)
@@ -4540,7 +4540,7 @@ class MixedEntitiesTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         # two FROM clauses
         def go():
@@ -4603,7 +4603,7 @@ class MixedEntitiesTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         # two FROM clauses where there's a join on each one
         def go():
@@ -4711,7 +4711,7 @@ class MixedEntitiesTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         oalias = sa.orm.aliased(Order)
 
@@ -4748,7 +4748,7 @@ class MixedEntitiesTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         oalias = sa.orm.aliased(Order)
 
@@ -4780,7 +4780,7 @@ class MixedEntitiesTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
     def test_aliased_entity_three(self):
         Order, User = (self.classes.Order, self.classes.User)
 
-        sess = create_session()
+        sess = fixture_session()
 
         oalias = sa.orm.aliased(Order)
 
@@ -4894,7 +4894,7 @@ class SubqueryTest(fixtures.MappedTest):
             },
         )
 
-        session = create_session()
+        session = fixture_session()
         session.add(
             User(
                 name="joe",
@@ -5088,7 +5088,7 @@ class CorrelatedSubqueryTest(fixtures.MappedTest):
                 },
             )
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -5105,7 +5105,7 @@ class CorrelatedSubqueryTest(fixtures.MappedTest):
 
         self.assert_sql_count(testing.db, go, 1)
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -5115,7 +5115,7 @@ class CorrelatedSubqueryTest(fixtures.MappedTest):
 
         self.assert_sql_count(testing.db, go, 2)
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -5128,7 +5128,7 @@ class CorrelatedSubqueryTest(fixtures.MappedTest):
 
         self.assert_sql_count(testing.db, go, 1)
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -5199,7 +5199,7 @@ class CyclicalInheritingEagerTestOne(fixtures.MappedTest):
         mapper(SubT2, None, inherits=T2, polymorphic_identity="subt2")
 
         # testing a particular endless loop condition in eager load setup
-        create_session().query(SubT).all()
+        fixture_session().query(SubT).all()
 
 
 class CyclicalInheritingEagerTestTwo(
@@ -5231,7 +5231,7 @@ class CyclicalInheritingEagerTestTwo(
 
     def test_from_subclass(self):
         Director = self.classes.Director
-        s = create_session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(Director).options(joinedload("*")),
@@ -5298,7 +5298,7 @@ class CyclicalInheritingEagerTestThree(
 
     def test_gen_query_nodepth(self):
         PersistentObject = self.classes.PersistentObject
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(PersistentObject),
             "SELECT persistent.id AS persistent_id, "
@@ -5311,7 +5311,7 @@ class CyclicalInheritingEagerTestThree(
     def test_gen_query_depth(self):
         PersistentObject = self.classes.PersistentObject
         Director = self.classes.Director
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(PersistentObject).options(joinedload(Director.other)),
             "SELECT persistent.id AS persistent_id, "
@@ -5374,7 +5374,7 @@ class EnsureColumnsAddedTest(
     def test_joinedload_defered_pk_limit_o2m(self):
         Parent = self.classes.Parent
 
-        s = Session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(Parent)
@@ -5394,7 +5394,7 @@ class EnsureColumnsAddedTest(
     def test_joinedload_defered_pk_limit_m2m(self):
         Parent = self.classes.Parent
 
-        s = Session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(Parent)
@@ -5416,7 +5416,7 @@ class EnsureColumnsAddedTest(
     def test_joinedload_defered_pk_o2m(self):
         Parent = self.classes.Parent
 
-        s = Session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(Parent).options(
@@ -5432,7 +5432,7 @@ class EnsureColumnsAddedTest(
     def test_joinedload_defered_pk_m2m(self):
         Parent = self.classes.Parent
 
-        s = Session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(Parent).options(
@@ -5492,7 +5492,7 @@ class EntityViaMultiplePathTestOne(fixtures.DeclarativeMappedTest):
     def test_multi_path_load(self):
         A, B, C, D = self.classes("A", "B", "C", "D")
 
-        s = Session()
+        s = fixture_session()
 
         c = C(d=D())
 
@@ -5521,7 +5521,7 @@ class EntityViaMultiplePathTestOne(fixtures.DeclarativeMappedTest):
     def test_multi_path_load_of_type(self):
         A, B, C, D = self.classes("A", "B", "C", "D")
 
-        s = Session()
+        s = fixture_session()
 
         c = C(d=D())
 
@@ -5593,7 +5593,7 @@ class EntityViaMultiplePathTestTwo(fixtures.DeclarativeMappedTest):
     def test_multi_path_load_legacy_join_style(self):
         User, LD, A, LDA = self.classes("User", "LD", "A", "LDA")
 
-        s = Session()
+        s = fixture_session()
 
         u0 = User(data=42)
         l0 = LD(user=u0)
@@ -5624,7 +5624,7 @@ class EntityViaMultiplePathTestTwo(fixtures.DeclarativeMappedTest):
     def test_multi_path_load_of_type(self):
         User, LD, A, LDA = self.classes("User", "LD", "A", "LDA")
 
-        s = Session()
+        s = fixture_session()
 
         u0 = User(data=42)
         l0 = LD(user=u0)
@@ -5696,7 +5696,7 @@ class LazyLoadOptSpecificityTest(fixtures.DeclarativeMappedTest):
 
     def test_string_options_aliased_whatever(self):
         A, B, C = self.classes("A", "B", "C")
-        s = Session()
+        s = fixture_session()
         aa = aliased(A)
         q = (
             s.query(aa, A)
@@ -5709,7 +5709,7 @@ class LazyLoadOptSpecificityTest(fixtures.DeclarativeMappedTest):
 
     def test_string_options_unaliased_whatever(self):
         A, B, C = self.classes("A", "B", "C")
-        s = Session()
+        s = fixture_session()
         aa = aliased(A)
         q = (
             s.query(A, aa)
@@ -5722,7 +5722,7 @@ class LazyLoadOptSpecificityTest(fixtures.DeclarativeMappedTest):
 
     def test_lazyload_aliased_abs_bcs_one(self):
         A, B, C = self.classes("A", "B", "C")
-        s = Session()
+        s = fixture_session()
         aa = aliased(A)
         q = (
             s.query(aa, A)
@@ -5735,7 +5735,7 @@ class LazyLoadOptSpecificityTest(fixtures.DeclarativeMappedTest):
 
     def test_lazyload_aliased_abs_bcs_two(self):
         A, B, C = self.classes("A", "B", "C")
-        s = Session()
+        s = fixture_session()
         aa = aliased(A)
         q = (
             s.query(aa, A)
@@ -5748,7 +5748,7 @@ class LazyLoadOptSpecificityTest(fixtures.DeclarativeMappedTest):
 
     def test_pathed_lazyload_aliased_abs_bcs(self):
         A, B, C = self.classes("A", "B", "C")
-        s = Session()
+        s = fixture_session()
         aa = aliased(A)
         opt = Load(A).joinedload(A.bs).joinedload(B.cs)
 
@@ -5763,7 +5763,7 @@ class LazyLoadOptSpecificityTest(fixtures.DeclarativeMappedTest):
 
     def test_pathed_lazyload_plus_joined_aliased_abs_bcs(self):
         A, B, C = self.classes("A", "B", "C")
-        s = Session()
+        s = fixture_session()
         aa = aliased(A)
         opt = Load(aa).defaultload(aa.bs).joinedload(B.cs)
 
@@ -5778,7 +5778,7 @@ class LazyLoadOptSpecificityTest(fixtures.DeclarativeMappedTest):
 
     def test_pathed_joinedload_aliased_abs_bcs(self):
         A, B, C = self.classes("A", "B", "C")
-        s = Session()
+        s = fixture_session()
         aa = aliased(A)
         opt = Load(aa).joinedload(aa.bs).joinedload(B.cs)
 
@@ -5793,7 +5793,7 @@ class LazyLoadOptSpecificityTest(fixtures.DeclarativeMappedTest):
 
     def test_lazyload_plus_joined_aliased_abs_bcs(self):
         A, B, C = self.classes("A", "B", "C")
-        s = Session()
+        s = fixture_session()
         aa = aliased(A)
         q = (
             s.query(aa, A)
@@ -5806,7 +5806,7 @@ class LazyLoadOptSpecificityTest(fixtures.DeclarativeMappedTest):
 
     def test_joinedload_aliased_abs_bcs(self):
         A, B, C = self.classes("A", "B", "C")
-        s = Session()
+        s = fixture_session()
         aa = aliased(A)
         q = (
             s.query(aa, A)
@@ -5819,7 +5819,7 @@ class LazyLoadOptSpecificityTest(fixtures.DeclarativeMappedTest):
 
     def test_lazyload_unaliased_abs_bcs_one(self):
         A, B, C = self.classes("A", "B", "C")
-        s = Session()
+        s = fixture_session()
         aa = aliased(A)
         q = (
             s.query(A, aa)
@@ -5832,7 +5832,7 @@ class LazyLoadOptSpecificityTest(fixtures.DeclarativeMappedTest):
 
     def test_lazyload_unaliased_abs_bcs_two(self):
         A, B, C = self.classes("A", "B", "C")
-        s = Session()
+        s = fixture_session()
         aa = aliased(A)
         q = (
             s.query(A, aa)
@@ -5845,7 +5845,7 @@ class LazyLoadOptSpecificityTest(fixtures.DeclarativeMappedTest):
 
     def test_lazyload_plus_joined_unaliased_abs_bcs(self):
         A, B, C = self.classes("A", "B", "C")
-        s = Session()
+        s = fixture_session()
         aa = aliased(A)
         q = (
             s.query(A, aa)
@@ -5858,7 +5858,7 @@ class LazyLoadOptSpecificityTest(fixtures.DeclarativeMappedTest):
 
     def test_joinedload_unaliased_abs_bcs(self):
         A, B, C = self.classes("A", "B", "C")
-        s = Session()
+        s = fixture_session()
         aa = aliased(A)
         q = (
             s.query(A, aa)
@@ -5886,7 +5886,7 @@ class EntityViaMultiplePathTestThree(fixtures.DeclarativeMappedTest):
 
     def test_multi_path_load_lazy_none(self):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         s.add_all(
             [
                 A(id=1, parent_id=None),
@@ -5986,7 +5986,7 @@ class DeepOptionsTest(_fixtures.FixtureTest):
     def test_deep_options_1(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         # joinedload nothing.
         u = sess.query(User).order_by(User.id).all()
@@ -6001,7 +6001,7 @@ class DeepOptionsTest(_fixtures.FixtureTest):
 
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         result = (
             sess.query(User)
@@ -6018,7 +6018,7 @@ class DeepOptionsTest(_fixtures.FixtureTest):
 
         self.sql_count_(0, go)
 
-        sess = create_session()
+        sess = fixture_session()
 
         result = (
             sess.query(User).options(
@@ -6036,7 +6036,7 @@ class DeepOptionsTest(_fixtures.FixtureTest):
     def test_deep_options_3(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         # same thing, with separate options calls
         q2 = (
@@ -6060,7 +6060,7 @@ class DeepOptionsTest(_fixtures.FixtureTest):
             self.classes.Order,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         assert_raises_message(
             sa.exc.ArgumentError,
@@ -6088,7 +6088,7 @@ class DeepOptionsTest(_fixtures.FixtureTest):
 
         self.sql_count_(2, go)
 
-        sess = create_session()
+        sess = fixture_session()
         q3 = (
             sess.query(User)
             .order_by(User.id)
@@ -6220,7 +6220,7 @@ class SecondaryOptionsTest(fixtures.MappedTest):
     def test_contains_eager(self):
         Child1, Related = self.classes.Child1, self.classes.Related
 
-        sess = create_session()
+        sess = fixture_session()
 
         child1s = (
             sess.query(Child1)
@@ -6258,7 +6258,7 @@ class SecondaryOptionsTest(fixtures.MappedTest):
     def test_joinedload_on_other(self):
         Child1, Related = self.classes.Child1, self.classes.Related
 
-        sess = create_session()
+        sess = fixture_session()
 
         child1s = (
             sess.query(Child1)
@@ -6300,7 +6300,7 @@ class SecondaryOptionsTest(fixtures.MappedTest):
             self.classes.Related,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         child1s = (
             sess.query(Child1)
index ec843d1c5cc4e230fde3868512b371ffd84199dc..db56eeb833fab1dd70bda29b6521ace0db48e858 100644 (file)
@@ -13,12 +13,12 @@ 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.orm import Session
 from sqlalchemy.testing import assert_raises
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import expect_warnings
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -290,7 +290,7 @@ class M2OEvaluateTest(fixtures.DeclarativeMappedTest):
     def test_delete_not_expired(self):
         Parent, Child = self.classes("Parent", "Child")
 
-        session = Session(expire_on_commit=False)
+        session = fixture_session(expire_on_commit=False)
 
         p = Parent(id=1)
         session.add(p)
@@ -307,7 +307,7 @@ class M2OEvaluateTest(fixtures.DeclarativeMappedTest):
     def test_delete_expired(self):
         Parent, Child = self.classes("Parent", "Child")
 
-        session = Session()
+        session = fixture_session()
 
         p = Parent(id=1)
         session.add(p)
index fb05f6601c817b66008eb7600c5d70f353e1f803..1c918a88cd09aa9b75b2ce8ad7a020742510d7a8 100644 (file)
@@ -13,7 +13,6 @@ from sqlalchemy.ext.declarative import declarative_base
 from sqlalchemy.orm import attributes
 from sqlalchemy.orm import class_mapper
 from sqlalchemy.orm import configure_mappers
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import deferred
 from sqlalchemy.orm import events
 from sqlalchemy.orm import EXT_SKIP
@@ -35,6 +34,7 @@ from sqlalchemy.testing import expect_warnings
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_not
 from sqlalchemy.testing.assertsql import CompiledSQL
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.mock import ANY
 from sqlalchemy.testing.mock import call
 from sqlalchemy.testing.mock import Mock
@@ -676,7 +676,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest):
         canary = self.listen_all(User)
         named_canary = self.listen_all(User, named=True)
 
-        sess = create_session()
+        sess = fixture_session()
         u = User(name="u1")
         sess.add(u)
         sess.flush()
@@ -769,13 +769,13 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest):
 
         event.listen(mapper, "load", load)
 
-        s = Session()
+        s = fixture_session()
         u = User(name="u1")
         s.add(u)
         s.commit()
-        s = Session()
+        s = fixture_session()
         u2 = s.merge(u)
-        s = Session()
+        s = fixture_session()
         u2 = s.merge(User(name="u2"))  # noqa
         s.commit()
         s.query(User).order_by(User.id).first()
@@ -803,7 +803,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest):
         canary2 = self.listen_all(User)
         canary3 = self.listen_all(AdminUser)
 
-        sess = create_session()
+        sess = fixture_session()
         am = AdminUser(name="au1", email_address="au1@e1")
         sess.add(am)
         sess.flush()
@@ -871,7 +871,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest):
         )
         canary3 = self.listen_all(AdminUser)
 
-        sess = create_session()
+        sess = fixture_session()
         am = AdminUser(name="au1", email_address="au1@e1")
         sess.add(am)
         sess.flush()
@@ -942,7 +942,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest):
         canary1 = self.listen_all(Item)
         canary2 = self.listen_all(Keyword)
 
-        sess = create_session()
+        sess = fixture_session()
         i1 = Item(description="i1")
         k1 = Keyword(name="k1")
         sess.add(i1)
@@ -998,7 +998,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest):
         event.listen(mapper, "before_configured", m1)
         event.listen(mapper, "after_configured", m2)
 
-        s = Session()
+        s = fixture_session()
         s.query(User)
 
         eq_(m1.mock_calls, [call()])
@@ -1117,7 +1117,7 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest):
         # fails by default because Mammal needs to be configured, and cannot
         # be:
         def probe():
-            s = Session()
+            s = fixture_session()
             s.query(User)
 
         assert_raises(sa.exc.InvalidRequestError, probe)
@@ -1181,7 +1181,7 @@ class RestoreLoadContextTest(fixtures.DeclarativeMappedTest):
     @_combinations
     def test_warning(self, target, event_name, fn):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         target = testing.util.resolve_lambda(target, A=A, session=s)
         event.listen(target, event_name, fn)
 
@@ -1205,7 +1205,7 @@ class RestoreLoadContextTest(fixtures.DeclarativeMappedTest):
     @_combinations
     def test_flag_resolves_existing(self, target, event_name, fn):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         target = testing.util.resolve_lambda(target, A=A, session=s)
 
         a1 = s.query(A).all()[0]
@@ -1244,7 +1244,7 @@ class RestoreLoadContextTest(fixtures.DeclarativeMappedTest):
     @_combinations
     def test_flag_resolves(self, target, event_name, fn):
         A = self.classes.A
-        s = Session()
+        s = fixture_session()
         target = testing.util.resolve_lambda(target, A=A, session=s)
         event.listen(target, event_name, fn, restore_load_context=True)
 
@@ -1681,7 +1681,7 @@ class LoadTest(_fixtures.FixtureTest):
 
         canary = self._fixture()
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -1696,7 +1696,7 @@ class LoadTest(_fixtures.FixtureTest):
 
         canary = self._fixture()
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -1828,7 +1828,7 @@ class RefreshTest(_fixtures.FixtureTest):
 
         canary = self._fixture()
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -1855,7 +1855,7 @@ class RefreshTest(_fixtures.FixtureTest):
         def canary2(obj, context, props):
             obj.name = "refreshed name!"
 
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         sess.add(u1)
         sess.commit()
@@ -1877,7 +1877,7 @@ class RefreshTest(_fixtures.FixtureTest):
 
         canary = self._fixture()
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -1891,7 +1891,7 @@ class RefreshTest(_fixtures.FixtureTest):
 
         canary = self._fixture()
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -1905,7 +1905,7 @@ class RefreshTest(_fixtures.FixtureTest):
 
         canary = self._fixture()
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -1920,7 +1920,7 @@ class RefreshTest(_fixtures.FixtureTest):
 
         canary = self._fixture()
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -1934,7 +1934,7 @@ class RefreshTest(_fixtures.FixtureTest):
 
         canary = self._fixture()
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -1949,7 +1949,7 @@ class RefreshTest(_fixtures.FixtureTest):
 
         canary = self._fixture()
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -1968,7 +1968,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
 
         event.listen(Session, "before_flush", my_listener)
 
-        s = Session()
+        s = fixture_session()
         assert my_listener in s.dispatch.before_flush
 
     def test_sessionmaker_listen(self):
@@ -2001,7 +2001,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
         def my_listener_one(*arg, **kw):
             pass
 
-        scope = scoped_session(lambda: Session())
+        scope = scoped_session(lambda: fixture_session())
 
         assert_raises_message(
             sa.exc.ArgumentError,
@@ -2021,7 +2021,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
 
         class NotASession(object):
             def __call__(self):
-                return Session()
+                return fixture_session()
 
         scope = scoped_session(NotASession)
 
@@ -2055,7 +2055,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
 
             return go
 
-        sess = Session(**kw)
+        sess = fixture_session(**kw)
 
         for evt in [
             "after_transaction_create",
@@ -2152,7 +2152,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
         User, users = self.classes.User, self.tables.users
         mapper(User, users)
 
-        sess = Session()
+        sess = fixture_session()
 
         assertions = []
 
@@ -2227,7 +2227,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
 
     def test_state_before_attach(self):
         User, users = self.classes.User, self.tables.users
-        sess = Session()
+        sess = fixture_session()
 
         @event.listens_for(sess, "before_attach")
         def listener(session, inst):
@@ -2246,7 +2246,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
 
     def test_state_after_attach(self):
         User, users = self.classes.User, self.tables.users
-        sess = Session()
+        sess = fixture_session()
 
         @event.listens_for(sess, "after_attach")
         def listener(session, inst):
@@ -2279,7 +2279,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
     def test_on_bulk_update_hook(self):
         User, users = self.classes.User, self.tables.users
 
-        sess = Session()
+        sess = fixture_session()
         canary = Mock()
 
         event.listen(sess, "after_begin", canary.after_begin)
@@ -2299,7 +2299,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
     def test_on_bulk_delete_hook(self):
         User, users = self.classes.User, self.tables.users
 
-        sess = Session()
+        sess = fixture_session()
         canary = Mock()
 
         event.listen(sess, "after_begin", canary.after_begin)
@@ -2317,7 +2317,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
         eq_(upd.result.rowcount, 0)
 
     def test_connection_emits_after_begin(self):
-        sess, canary = self._listener_fixture(bind=testing.db)
+        sess, canary = self._listener_fixture()
         sess.connection()
         # changed due to #5074
         eq_(canary, ["after_transaction_create", "after_begin"])
@@ -2331,7 +2331,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
         def before_flush(session, flush_context, objects):
             session.flush()
 
-        sess = Session()
+        sess = fixture_session()
         event.listen(sess, "before_flush", before_flush)
         sess.add(User(name="foo"))
         assert_raises_message(
@@ -2356,7 +2356,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
                     )
                     session.delete(x)
 
-        sess = Session()
+        sess = fixture_session()
         event.listen(sess, "before_flush", before_flush)
 
         u = User(name="u1")
@@ -2400,7 +2400,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
             for obj in list(session.identity_map.values()):
                 obj.name += " modified"
 
-        sess = Session(autoflush=True)
+        sess = fixture_session(autoflush=True)
         event.listen(sess, "before_flush", before_flush)
 
         u = User(name="u1")
@@ -2421,7 +2421,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
 
         mapper(User, users)
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
 
@@ -2443,7 +2443,7 @@ class SessionEventsTest(_RemoveListeners, _fixtures.FixtureTest):
 
         mapper(User, users)
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
 
@@ -2484,7 +2484,7 @@ class SessionLifecycleEventsTest(_RemoveListeners, _fixtures.FixtureTest):
 
         listener = Mock()
 
-        sess = Session()
+        sess = fixture_session()
 
         def start_events():
             event.listen(
@@ -3027,7 +3027,7 @@ class QueryEventsTest(
             return query
 
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
 
         q = s.query(User).filter_by(id=7)
         self.assert_compile(
@@ -3046,7 +3046,7 @@ class QueryEventsTest(
             counter[0] += 1
 
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
 
         q = s.query(User).filter_by(id=7)
         str(q)
@@ -3060,7 +3060,7 @@ class QueryEventsTest(
         def fn(query):
             return query.add_columns(User.name)
 
-        s = Session()
+        s = fixture_session()
 
         q = s.query(User.id).filter_by(id=7)
         self.assert_compile(
@@ -3088,7 +3088,7 @@ class QueryEventsTest(
             return query
 
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
 
         with self.sql_execution_asserter() as asserter:
             s.query(User).filter_by(id=7).update({"name": "ed"})
@@ -3112,7 +3112,7 @@ class QueryEventsTest(
             return query
 
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
 
         # note this deletes no rows
         with self.sql_execution_asserter() as asserter:
@@ -3140,7 +3140,7 @@ class QueryEventsTest(
         ):
             opts.update(context.execution_options)
 
-        sess = create_session(bind=testing.db, autocommit=False)
+        sess = fixture_session(autocommit=False)
         sess.query(User).first()
         eq_(opts["my_option"], True)
 
@@ -3185,7 +3185,7 @@ class RefreshFlushInReturningTest(fixtures.MappedTest):
         mock = Mock()
         event.listen(Thing, "refresh_flush", mock)
         t1 = Thing()
-        s = Session()
+        s = fixture_session()
         s.add(t1)
         s.flush()
 
index 5abaa03db51d25f1c7531314ce7b6f109a108cd5..5771ee5385daa1a5e3ec2033c797ae69b5f81eb4 100644 (file)
@@ -25,7 +25,7 @@ from sqlalchemy.testing import assert_raises
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from sqlalchemy.testing.util import gc_collect
@@ -48,7 +48,7 @@ class ExpireTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         u = sess.query(User).get(7)
         assert len(u.addresses) == 1
         u.name = "foo"
@@ -89,7 +89,7 @@ class ExpireTest(_fixtures.FixtureTest):
         mapper(User, users)
         mapper(Address, addresses, properties={"user": relationship(User)})
 
-        s = Session()
+        s = fixture_session()
 
         a1 = s.query(Address).get(2)
         u1 = s.query(User).get(7)
@@ -104,7 +104,7 @@ class ExpireTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        s = create_session()
+        s = fixture_session()
         u = s.query(User).get(7)
         s.expunge_all()
 
@@ -119,7 +119,7 @@ class ExpireTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        s = create_session(autocommit=False)
+        s = fixture_session(autocommit=False)
         u = s.query(User).get(10)
         s.expire_all()
 
@@ -142,7 +142,7 @@ class ExpireTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        s = create_session(autocommit=False)
+        s = fixture_session(autocommit=False)
         u = s.query(User).get(10)
 
         s.expire_all()
@@ -157,7 +157,7 @@ class ExpireTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        s = create_session(autocommit=False)
+        s = fixture_session(autocommit=False)
         u = s.query(User).get(10)
         s.expire_all()
 
@@ -178,7 +178,7 @@ class ExpireTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        s = create_session(autocommit=False)
+        s = fixture_session(autocommit=False)
         u = s.query(User).get(10)
         s.expire_all()
         s.execute(users.delete().where(User.id == 10))
@@ -206,7 +206,7 @@ class ExpireTest(_fixtures.FixtureTest):
             properties={"description": deferred(orders.c.description)},
         )
 
-        s = create_session()
+        s = fixture_session()
         o1 = s.query(Order).first()
         assert "description" not in o1.__dict__
         s.expire(o1)
@@ -233,7 +233,7 @@ class ExpireTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users, properties={"name": deferred(users.c.name)})
-        s = create_session(autocommit=False)
+        s = fixture_session(autocommit=False)
         u = s.query(User).get(10)
 
         assert "name" not in u.__dict__
@@ -265,7 +265,7 @@ class ExpireTest(_fixtures.FixtureTest):
             },
         )
         mapper(Address, addresses)
-        s = create_session(autoflush=True, autocommit=False)
+        s = fixture_session(autoflush=True, autocommit=False)
         u = s.query(User).get(8)
         adlist = u.addresses
         eq_(
@@ -309,7 +309,7 @@ class ExpireTest(_fixtures.FixtureTest):
             },
         )
         mapper(Address, addresses)
-        s = create_session(autoflush=True, autocommit=False)
+        s = fixture_session(autoflush=True, autocommit=False)
         u = s.query(User).get(8)
         assert_raises_message(
             sa_exc.InvalidRequestError,
@@ -323,7 +323,7 @@ class ExpireTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        s = create_session()
+        s = fixture_session()
         u = s.query(User).get(7)
         s.expire(u)
         s.refresh(u)
@@ -339,7 +339,7 @@ class ExpireTest(_fixtures.FixtureTest):
 
         mapper(User, users)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         u = sess.query(User).get(7)
 
         sess.expire(u, attribute_names=["name"])
@@ -356,7 +356,7 @@ class ExpireTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).get(7)
 
         sess.expire(u, attribute_names=["name"])
@@ -369,7 +369,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)
-        sess = create_session()
+        sess = fixture_session()
         u = User(id=15)
         sess.add(u)
         assert_raises(sa_exc.InvalidRequestError, sess.expire, u, ["name"])
@@ -382,7 +382,7 @@ class ExpireTest(_fixtures.FixtureTest):
         # 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)
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         u = sess.query(User).get(7)
 
         sess.expire(u, attribute_names=["name"])
@@ -398,7 +398,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)
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).get(7)
 
         sess.expire(u, attribute_names=["name", "id"])
@@ -415,7 +415,7 @@ class ExpireTest(_fixtures.FixtureTest):
         Order, orders = self.classes.Order, self.tables.orders
 
         mapper(Order, orders)
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         o = sess.query(Order).get(3)
         sess.expire(o)
 
@@ -467,7 +467,7 @@ class ExpireTest(_fixtures.FixtureTest):
 
         mapper(Order, orders)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         o = sess.query(Order).get(3)
         sess.expire(o)
 
@@ -501,7 +501,7 @@ class ExpireTest(_fixtures.FixtureTest):
             },
         )
         mapper(Address, addresses)
-        s = create_session()
+        s = fixture_session(autoflush=False)
         u = s.query(User).get(8)
         assert u.addresses[0].email_address == "ed@wood.com"
 
@@ -527,7 +527,7 @@ class ExpireTest(_fixtures.FixtureTest):
             },
         )
         mapper(Address, addresses)
-        s = create_session()
+        s = fixture_session(autoflush=False)
         u = s.query(User).get(8)
         assert u.addresses[0].email_address == "ed@wood.com"
 
@@ -565,7 +565,7 @@ class ExpireTest(_fixtures.FixtureTest):
             properties={"addresses": relationship(Address, cascade=cascade)},
         )
         mapper(Address, addresses)
-        s = create_session()
+        s = fixture_session(autoflush=False)
 
         u = s.query(User).get(8)
         a = Address(id=12, email_address="foobar")
@@ -598,7 +598,7 @@ class ExpireTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).get(7)
 
         sess.expire(u)
@@ -633,7 +633,7 @@ class ExpireTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).get(7)
 
         sess.expire(u)
@@ -681,7 +681,7 @@ class ExpireTest(_fixtures.FixtureTest):
             },
         )
         mapper(Address, addresses)
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         u = sess.query(User).get(8)
         sess.expire(u, ["name", "addresses"])
         u.addresses
@@ -711,7 +711,7 @@ class ExpireTest(_fixtures.FixtureTest):
             },
         )
         mapper(Address, addresses)
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).get(8)
         sess.expire(u)
         u.id
@@ -736,7 +736,7 @@ class ExpireTest(_fixtures.FixtureTest):
             properties={"addresses": relationship(Address, backref="user")},
         )
         mapper(Address, addresses)
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).options(joinedload(User.addresses)).get(8)
         sess.expire(u)
         u.id
@@ -761,7 +761,7 @@ class ExpireTest(_fixtures.FixtureTest):
             },
         )
         mapper(Address, addresses)
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).get(8)
         sess.expire(u)
 
@@ -780,7 +780,7 @@ class ExpireTest(_fixtures.FixtureTest):
 
         mapper(User, users, properties={"uname": sa.orm.synonym("name")})
 
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).get(7)
         assert "name" in u.__dict__
         assert u.uname == u.name
@@ -804,7 +804,7 @@ class ExpireTest(_fixtures.FixtureTest):
 
         mapper(Order, orders)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         o = sess.query(Order).get(3)
 
         sess.expire(o, attribute_names=["description"])
@@ -873,7 +873,7 @@ class ExpireTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         u = sess.query(User).get(8)
 
         sess.expire(u, ["name", "addresses"])
@@ -935,7 +935,7 @@ class ExpireTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         u = sess.query(User).get(8)
 
         sess.expire(u, ["name", "addresses"])
@@ -989,7 +989,7 @@ class ExpireTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         u = sess.query(User).get(8)
         assert "name" in u.__dict__
         u.addresses
@@ -1016,7 +1016,7 @@ class ExpireTest(_fixtures.FixtureTest):
             properties={"description": sa.orm.deferred(orders.c.description)},
         )
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         o = sess.query(Order).get(3)
         sess.expire(o, ["description", "isopen"])
         assert "isopen" not in o.__dict__
@@ -1104,7 +1104,7 @@ class ExpireTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         u = sess.query(User).get(8)
         assert len(u.addresses) == 3
         sess.expire(u)
@@ -1136,7 +1136,7 @@ class ExpireTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         userlist = sess.query(User).order_by(User.id).all()
         eq_(self.static.user_address_result, userlist)
         eq_(len(list(sess)), 9)
@@ -1158,7 +1158,7 @@ class ExpireTest(_fixtures.FixtureTest):
 
         mapper(User, users)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
 
         # deferred attribute option, gets the LoadDeferredColumns
         # callable
@@ -1208,7 +1208,7 @@ class ExpireTest(_fixtures.FixtureTest):
 
         mapper(User, users, properties={"name": deferred(users.c.name)})
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         u1 = sess.query(User).options(undefer(User.name)).first()
         assert "name" not in attributes.instance_state(u1).callables
 
@@ -1262,7 +1262,7 @@ class ExpireTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         u1 = sess.query(User).options(lazyload(User.addresses)).first()
         assert isinstance(
             attributes.instance_state(u1).callables["addresses"],
@@ -1308,7 +1308,7 @@ class ExpireTest(_fixtures.FixtureTest):
             properties={"description": deferred(orders.c.description)},
         )
 
-        s = Session()
+        s = fixture_session()
         item = Order(id=1)
 
         make_transient_to_detached(item)
@@ -1324,7 +1324,7 @@ class ExpireTest(_fixtures.FixtureTest):
             properties={"description": deferred(orders.c.description)},
         )
 
-        s = Session()
+        s = fixture_session()
 
         item = s.query(Order).first()
         s.expire(item)
@@ -1339,7 +1339,7 @@ class ExpireTest(_fixtures.FixtureTest):
             properties={"description": deferred(orders.c.description)},
         )
 
-        s = Session()
+        s = fixture_session()
 
         item = s.query(Order).first()
         s.expire(item, ["isopen", "description"])
@@ -1431,7 +1431,7 @@ class PolymorphicExpireTest(fixtures.MappedTest):
             self.classes.Engineer,
         )
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         [p1, e1, e2] = sess.query(Person).order_by(people.c.person_id).all()
 
         sess.expire(p1)
@@ -1473,7 +1473,7 @@ class PolymorphicExpireTest(fixtures.MappedTest):
     def test_no_instance_key(self):
         Engineer = self.classes.Engineer
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         e1 = sess.query(Engineer).get(2)
 
         sess.expire(e1, attribute_names=["name"])
@@ -1488,7 +1488,7 @@ class PolymorphicExpireTest(fixtures.MappedTest):
 
         # same as test_no_instance_key, but the PK columns
         # are absent.  ensure an error is raised.
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         e1 = sess.query(Engineer).get(2)
 
         sess.expire(e1, attribute_names=["name", "person_id"])
@@ -1520,7 +1520,7 @@ class ExpiredPendingTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         a1 = Address(email_address="a1")
         sess.add(a1)
         sess.flush()
@@ -1608,7 +1608,7 @@ class LifecycleTest(fixtures.MappedTest):
     def test_attr_not_inserted(self):
         Data = self.classes.Data
 
-        sess = create_session()
+        sess = fixture_session()
 
         d1 = Data()
         sess.add(d1)
@@ -1627,7 +1627,7 @@ class LifecycleTest(fixtures.MappedTest):
     def test_attr_not_inserted_expired(self):
         Data = self.classes.Data
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
 
         d1 = Data()
         sess.add(d1)
@@ -1646,7 +1646,7 @@ class LifecycleTest(fixtures.MappedTest):
     def test_attr_not_inserted_fetched(self):
         Data = self.classes.DataFetched
 
-        sess = create_session()
+        sess = fixture_session()
 
         d1 = Data()
         sess.add(d1)
@@ -1667,7 +1667,7 @@ class LifecycleTest(fixtures.MappedTest):
             d1 = Data(data="d1")
             sess.add(d1)
 
-        sess = create_session()
+        sess = fixture_session()
         d1 = sess.query(Data).from_statement(select(Data.id)).first()
 
         # cols not present in the row are implicitly expired
@@ -1720,7 +1720,7 @@ class RefreshTest(_fixtures.FixtureTest):
                 )
             },
         )
-        s = create_session()
+        s = fixture_session(autoflush=False)
         u = s.query(User).get(7)
         u.name = "foo"
         a = Address()
@@ -1755,7 +1755,7 @@ class RefreshTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        s = create_session()
+        s = fixture_session()
         u = s.query(User).get(7)
         s.expunge_all()
         assert_raises_message(
@@ -1771,7 +1771,7 @@ class RefreshTest(_fixtures.FixtureTest):
         mapper(User, users)
         mapper(Address, addresses, properties={"user": relationship(User)})
 
-        s = Session()
+        s = fixture_session()
 
         a1 = s.query(Address).get(2)
         u1 = s.query(User).get(7)
@@ -1786,7 +1786,7 @@ class RefreshTest(_fixtures.FixtureTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        s = create_session()
+        s = fixture_session()
         u = s.query(User).get(7)
         s.expire(u)
         assert "name" not in u.__dict__
@@ -1805,7 +1805,7 @@ class RefreshTest(_fixtures.FixtureTest):
             self.tables.users,
         )
 
-        s = create_session()
+        s = fixture_session()
         mapper(
             User,
             users,
@@ -1840,13 +1840,13 @@ class RefreshTest(_fixtures.FixtureTest):
             },
         )
 
-        s = create_session()
+        s = fixture_session()
         u = s.query(User).get(8)
         assert len(u.addresses) == 3
         s.refresh(u)
         assert len(u.addresses) == 3
 
-        s = create_session()
+        s = fixture_session()
         u = s.query(User).get(8)
         assert len(u.addresses) == 3
         s.expire(u)
@@ -1870,7 +1870,7 @@ class RefreshTest(_fixtures.FixtureTest):
 
         mapper(Dingaling, dingalings)
 
-        s = create_session()
+        s = fixture_session()
         q = (
             s.query(User)
             .filter_by(name="fred")
@@ -1908,7 +1908,7 @@ class RefreshTest(_fixtures.FixtureTest):
             self.classes.User,
         )
 
-        s = create_session()
+        s = fixture_session()
         mapper(Address, addresses)
 
         mapper(
index 055f24b5c1ebc7c7b1822d0a25fed85312000d8b..cc959646644504bc5c06c23d6b2a707c7de09930 100644 (file)
@@ -23,7 +23,6 @@ from sqlalchemy.orm import clear_mappers
 from sqlalchemy.orm import column_property
 from sqlalchemy.orm import configure_mappers
 from sqlalchemy.orm import contains_eager
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import joinedload
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
@@ -37,6 +36,7 @@ from sqlalchemy.testing import AssertsCompiledSQL
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from test.orm import _fixtures
 
@@ -198,7 +198,7 @@ class QueryCorrelatesLikeSelect(QueryTest, AssertsCompiledSQL):
         )
 
     def test_scalar_subquery_query_auto_correlate(self):
-        sess = create_session()
+        sess = fixture_session()
         Address, User = self.classes.Address, self.classes.User
         query = (
             sess.query(func.count(Address.id))
@@ -211,7 +211,7 @@ class QueryCorrelatesLikeSelect(QueryTest, AssertsCompiledSQL):
         )
 
     def test_scalar_subquery_query_explicit_correlate(self):
-        sess = create_session()
+        sess = fixture_session()
         Address, User = self.classes.Address, self.classes.User
         query = (
             sess.query(func.count(Address.id))
@@ -226,7 +226,7 @@ class QueryCorrelatesLikeSelect(QueryTest, AssertsCompiledSQL):
 
     @testing.combinations(False, None)
     def test_scalar_subquery_query_correlate_off(self, value):
-        sess = create_session()
+        sess = fixture_session()
         Address, User = self.classes.Address, self.classes.User
         query = (
             sess.query(func.count(Address.id))
@@ -241,7 +241,7 @@ class QueryCorrelatesLikeSelect(QueryTest, AssertsCompiledSQL):
 
     def test_correlate_to_union(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User)
         q = sess.query(User).union(q)
@@ -312,7 +312,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
     def test_select(self):
         addresses, users = self.tables.addresses, self.tables.users
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(users)
@@ -379,19 +379,19 @@ class EntityFromSubqueryTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
 
         subq = select(User).filter(User.id.in_([8, 9])).subquery()
-        q = create_session().query(aliased(User, subq))
+        q = fixture_session().query(aliased(User, subq))
         eq_(
             [User(id=8), User(id=9)],
             q.all(),
         )
 
         subq = select(User).order_by(User.id).slice(1, 3).subquery()
-        q = create_session().query(aliased(User, subq))
+        q = fixture_session().query(aliased(User, subq))
         eq_([User(id=8), User(id=9)], q.all())
 
         subq = select(User).filter(User.id.in_([8, 9])).subquery()
         u = aliased(User, subq)
-        q = create_session().query(u).order_by(u.id)
+        q = fixture_session().query(u).order_by(u.id)
         eq_(
             [User(id=8)],
             list(q[0:1]),
@@ -405,7 +405,7 @@ class EntityFromSubqueryTest(QueryTest, AssertsCompiledSQL):
         u = aliased(User, stmt)
 
         q = (
-            create_session()
+            fixture_session()
             .query(u)
             .join(u.addresses)
             .add_entity(Address)
@@ -433,7 +433,7 @@ class EntityFromSubqueryTest(QueryTest, AssertsCompiledSQL):
         # there's no reason to do aliased(Address) in this case but we're just
         # testing
         aq = aliased(Address, subq)
-        q = create_session().query(aq.user_id, subq.c.count)
+        q = fixture_session().query(aq.user_id, subq.c.count)
         eq_(
             q.all(),
             [(7, 1), (8, 3), (9, 1)],
@@ -443,7 +443,7 @@ class EntityFromSubqueryTest(QueryTest, AssertsCompiledSQL):
         aq = aliased(Address, subq)
 
         q = (
-            create_session()
+            fixture_session()
             .query(aq.user_id, func.count(aq.id))
             .group_by(aq.user_id)
             .order_by(aq.user_id)
@@ -457,7 +457,7 @@ class EntityFromSubqueryTest(QueryTest, AssertsCompiledSQL):
     def test_error_w_aliased_against_select(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         stmt = select(User.id)
 
@@ -474,7 +474,7 @@ class EntityFromSubqueryTest(QueryTest, AssertsCompiledSQL):
     def test_having(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         stmt = (
             select(User.id)
@@ -496,7 +496,7 @@ class EntityFromSubqueryTest(QueryTest, AssertsCompiledSQL):
 
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         subq = (
             select(User)
@@ -533,7 +533,7 @@ class EntityFromSubqueryTest(QueryTest, AssertsCompiledSQL):
 
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         ualias = aliased(User)
 
@@ -587,7 +587,7 @@ class EntityFromSubqueryTest(QueryTest, AssertsCompiledSQL):
     def test_multiple_entities(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         subq = (
             select(User, Address)
@@ -629,7 +629,7 @@ class EntityFromSubqueryTest(QueryTest, AssertsCompiledSQL):
         )
 
         uq2 = aliased(User, subq2)
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(
             sess.query(uq2.id, subq2.c.foo).all(),
@@ -639,7 +639,7 @@ class EntityFromSubqueryTest(QueryTest, AssertsCompiledSQL):
     def test_multiple_with_column_entities_newstyle(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         q1 = sess.query(User.id)
 
@@ -665,7 +665,7 @@ class ColumnAccessTest(QueryTest, AssertsCompiledSQL):
 
     def test_select_entity_from(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User)
         q = sess.query(User).select_entity_from(q.statement.subquery())
@@ -678,7 +678,7 @@ class ColumnAccessTest(QueryTest, AssertsCompiledSQL):
 
     def test_select_entity_from_no_entities(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
 
         assert_raises_message(
             sa.exc.ArgumentError,
@@ -689,7 +689,7 @@ class ColumnAccessTest(QueryTest, AssertsCompiledSQL):
 
     def test_select_from_no_aliasing(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User)
         q = sess.query(User).select_from(q.statement.subquery())
@@ -704,7 +704,7 @@ class ColumnAccessTest(QueryTest, AssertsCompiledSQL):
         # relies upon _orm_only_from_obj_alias setting
         from sqlalchemy.sql import column
 
-        sess = create_session()
+        sess = fixture_session()
         c1, c2 = column("c1"), column("c2")
         q1 = sess.query(c1, c2).filter(c1 == "dog")
         q2 = sess.query(c1, c2).filter(c1 == "cat")
@@ -806,7 +806,7 @@ class ColumnAccessTest(QueryTest, AssertsCompiledSQL):
 
     def test_anonymous_labeled_expression_oldstyle(self):
         # relies upon _orm_only_from_obj_alias setting
-        sess = create_session()
+        sess = fixture_session()
         c1, c2 = column("c1"), column("c2")
         q1 = sess.query(c1.label("foo"), c2.label("bar")).filter(c1 == "dog")
         q2 = sess.query(c1.label("foo"), c2.label("bar")).filter(c1 == "cat")
@@ -839,7 +839,7 @@ class ColumnAccessTest(QueryTest, AssertsCompiledSQL):
         Address = self.classes.Address
         addresses = self.tables.addresses
 
-        sess = create_session()
+        sess = fixture_session()
         q1 = sess.query(User.id).filter(User.id > 5)
 
         uq = aliased(User, q1.apply_labels().subquery())
@@ -868,7 +868,7 @@ class ColumnAccessTest(QueryTest, AssertsCompiledSQL):
         Address = self.classes.Address
         addresses = self.tables.addresses
 
-        sess = create_session()
+        sess = fixture_session()
         q1 = sess.query(User.id).filter(User.id > 5).apply_labels().subquery()
 
         uq = aliased(User, q1)
@@ -970,7 +970,7 @@ class AddEntityEquivalenceTest(fixtures.MappedTest, AssertsCompiledSQL):
     def insert_data(cls, connection):
         A, C, B = (cls.classes.A, cls.classes.C, cls.classes.B)
 
-        sess = create_session(connection)
+        sess = Session(connection)
         sess.add_all(
             [
                 B(name="b1"),
@@ -984,7 +984,7 @@ class AddEntityEquivalenceTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_add_entity_equivalence(self):
         A, C, B = (self.classes.A, self.classes.C, self.classes.B)
 
-        sess = create_session()
+        sess = fixture_session()
 
         for q in [
             sess.query(A, B).join(A.link),
@@ -1033,7 +1033,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
                 use_labels=True, order_by=[text("ulist.id"), addresses.c.id]
             )
         )
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         def go():
@@ -1062,7 +1062,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
                 use_labels=True, order_by=[text("ulist.id"), addresses.c.id]
             )
         )
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         def go():
@@ -1092,7 +1092,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
                 use_labels=True, order_by=[text("ulist.id"), addresses.c.id]
             )
         )
-        sess = create_session()
+        sess = fixture_session()
 
         # better way.  use select_entity_from()
         def go():
@@ -1113,7 +1113,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.tables.users,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         # same thing, but alias addresses, so that the adapter
         # generated by select_entity_from() is wrapped within
@@ -1141,7 +1141,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
     def test_contains_eager_one(self):
         addresses, User = (self.tables.addresses, self.classes.User)
 
-        sess = create_session()
+        sess = fixture_session()
 
         # test that contains_eager suppresses the normal outer join rendering
         q = (
@@ -1175,7 +1175,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         adalias = addresses.alias()
         q = (
@@ -1197,7 +1197,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         selectquery = users.outerjoin(addresses).select(
             users.c.id < 10,
@@ -1224,7 +1224,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session(testing.db, future=True)
+        sess = fixture_session(future=True)
 
         selectquery = users.outerjoin(addresses).select(
             users.c.id < 10,
@@ -1252,7 +1252,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
     def test_contains_eager_aliased(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         # Aliased object
@@ -1277,7 +1277,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         oalias = orders.alias("o1")
@@ -1315,7 +1315,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.Order,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         # test using Aliased with more than one level deep
@@ -1344,7 +1344,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.Order,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         # test using Aliased with more than one level deep
@@ -1375,7 +1375,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(User)
             .join(User.addresses)
@@ -1423,7 +1423,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         da = aliased(Dingaling, name="foob")
         q = (
             sess.query(User)
@@ -1471,7 +1471,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User)
 
@@ -1584,7 +1584,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
     def test_alias_naming(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         ua = aliased(User, name="foobar")
         q = sess.query(ua)
@@ -1604,7 +1604,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         subq = (
             select(func.count())
@@ -1644,7 +1644,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
     def test_column_queries_one(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(
             sess.query(User.name).all(),
@@ -1657,7 +1657,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         sel = users.select(User.id.in_([7, 8])).alias()
         q = sess.query(User.name)
         q2 = q.select_entity_from(sel).all()
@@ -1669,7 +1669,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(User.name, Address.email_address)
             .filter(User.id == Address.user_id)
@@ -1689,7 +1689,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(User.name, func.count(Address.email_address))
             .outerjoin(User.addresses)
@@ -1705,7 +1705,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(User, func.count(Address.email_address))
             .outerjoin(User.addresses)
@@ -1726,7 +1726,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(func.count(Address.email_address), User)
             .outerjoin(User.addresses)
@@ -1747,7 +1747,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         adalias = aliased(Address)
         eq_(
             sess.query(User, func.count(adalias.email_address))
@@ -1769,7 +1769,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         adalias = aliased(Address)
         eq_(
             sess.query(func.count(adalias.email_address), User)
@@ -1791,7 +1791,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         adalias = aliased(Address)
 
@@ -1823,7 +1823,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         # anon + select from aliasing
         aa = aliased(Address)
@@ -1847,7 +1847,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         adalias = aliased(Address)
 
@@ -1986,7 +1986,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
     def test_column_from_limited_joinedload(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             results = (
@@ -2003,7 +2003,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
     def test_self_referential_from_self(self):
         Order = self.classes.Order
 
-        sess = create_session()
+        sess = fixture_session()
         oalias = aliased(Order)
 
         q1 = (
@@ -2159,7 +2159,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        test_session = create_session()
+        test_session = fixture_session()
 
         (user7, user8, user9, user10) = test_session.query(User).all()
         (
@@ -2179,7 +2179,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             (user10, None),
         ]
 
-        sess = create_session(testing.db, future=True)
+        sess = fixture_session(future=True)
 
         selectquery = users.outerjoin(addresses).select(
             use_labels=True, order_by=[users.c.id, addresses.c.id]
@@ -2235,7 +2235,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         (user7, user8, user9, user10) = sess.query(User).all()
         (address1, address2, address3, address4, address5) = sess.query(
@@ -2272,7 +2272,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
     def test_with_entities(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User).filter(User.id == 7).order_by(User.name)
 
@@ -2292,7 +2292,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
     def test_multi_columns(self):
         users, User = self.tables.users, self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         expected = [(u, u.name) for u in sess.query(User).all()]
 
@@ -2309,7 +2309,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
 
         users, User = self.tables.users, self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(
             sess.query(User.id).add_columns(users).all(),
@@ -2326,7 +2326,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.tables.users,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         (user7, user8, user9, user10) = sess.query(User).all()
         expected = [(user7, 1), (user8, 3), (user9, 1), (user10, 0)]
@@ -2370,7 +2370,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         users = self.tables.users
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User.id, User.name)
         stmt = select(users).order_by(users.c.id)
@@ -2385,7 +2385,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         (user7, user8, user9, user10) = sess.query(User).all()
         expected = [
             (user7, 1, "Name:jack"),
@@ -2396,7 +2396,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
 
         adalias = addresses.alias()
         q = (
-            create_session()
+            fixture_session()
             .query(User)
             .add_columns(func.count(adalias.c.id), ("Name:" + users.c.name))
             .outerjoin(adalias, "addresses")
@@ -2417,7 +2417,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
             .group_by(*[c for c in users.c])
             .order_by(users.c.id)
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         result = (
             q.add_columns(s.selected_columns.count, s.selected_columns.concat)
             .from_statement(s)
@@ -2429,7 +2429,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
 
         # test with select_entity_from()
         q = (
-            create_session()
+            fixture_session()
             .query(User)
             .add_columns(func.count(addresses.c.id), ("Name:" + users.c.name))
             .select_entity_from(users.outerjoin(addresses))
@@ -2441,7 +2441,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
         sess.expunge_all()
 
         q = (
-            create_session()
+            fixture_session()
             .query(User)
             .add_columns(func.count(addresses.c.id), ("Name:" + users.c.name))
             .outerjoin("addresses")
@@ -2453,7 +2453,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
         sess.expunge_all()
 
         q = (
-            create_session()
+            fixture_session()
             .query(User)
             .add_columns(func.count(adalias.c.id), ("Name:" + users.c.name))
             .outerjoin(adalias, "addresses")
@@ -2469,7 +2469,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
 
         ua = aliased(User)
         aa = aliased(Address)
-        s = create_session()
+        s = fixture_session()
         for crit, j, exp in [
             (
                 User.id + Address.id,
@@ -2539,7 +2539,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
     def test_aliased_adapt_on_names(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
         agg_address = sess.query(
             Address.id,
             func.sum(func.length(Address.email_address)).label(
@@ -2597,7 +2597,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
         mapper(Address, addresses)
 
         sel = users.select(users.c.id.in_([7, 8])).alias()
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(
             sess.query(User).select_entity_from(sel).all(),
@@ -2641,7 +2641,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
 
         mapper(User, users)
 
-        sess = create_session()
+        sess = fixture_session()
 
         not_users = table("users", column("id"), column("name"))
         ua = aliased(User, select(not_users).alias(), adapt_on_names=True)
@@ -2659,7 +2659,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
 
         mapper(User, users)
 
-        sess = create_session()
+        sess = fixture_session()
 
         ua = aliased(User)
 
@@ -2676,7 +2676,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
 
         mapper(User, users)
 
-        sess = create_session()
+        sess = fixture_session()
 
         ua = users.alias()
 
@@ -2696,7 +2696,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
 
         mapper(User, users)
 
-        sess = create_session()
+        sess = fixture_session()
 
         sel = sess.query(User).filter(User.id.in_([7, 8])).subquery()
         ualias = aliased(User)
@@ -2772,7 +2772,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
 
         ua = aliased(User)
 
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User).select_from(ua).join(User, ua.name > User.name),
             "SELECT users.id AS users_id, users.name AS users_name "
@@ -2823,7 +2823,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
         mapper(User, users)
 
         sel = users.select(users.c.id.in_([7, 8]))
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(
             sess.query(User).select_entity_from(sel.subquery()).all(),
@@ -2843,7 +2843,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(User).select_from(Address).join("user"),
@@ -2860,7 +2860,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
             properties={"addresses": relationship(mapper(Address, addresses))},
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(User)
@@ -2881,7 +2881,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
             properties={"addresses": relationship(mapper(Address, addresses))},
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(User).select_from(Address).join(User),
@@ -2901,7 +2901,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
         mapper(Address, addresses)
 
         sel = users.select(users.c.id.in_([7, 8]))
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(
             sess.query(User)
@@ -3011,7 +3011,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
         )  # m2m
         mapper(Keyword, keywords)
 
-        sess = create_session()
+        sess = fixture_session()
         sel = users.select(users.c.id.in_([7, 8]))
 
         eq_(
@@ -3073,7 +3073,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
         )  # m2m
         mapper(Keyword, keywords)
 
-        sess = create_session()
+        sess = fixture_session()
 
         sel = users.select(users.c.id.in_([7, 8]))
 
@@ -3188,7 +3188,7 @@ class SelectFromTest(QueryTest, AssertsCompiledSQL):
         mapper(Address, addresses)
 
         sel = users.select(users.c.id.in_([7, 8]))
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -3316,7 +3316,7 @@ class CustomJoinTest(QueryTest):
                 ),
             ),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
 
         eq_(
             q.join("open_orders", "items", aliased=True)
@@ -3389,7 +3389,7 @@ class CustomJoinTest(QueryTest):
                 ),
             ),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
 
         oo = aliased(Order)
         co = aliased(Order)
@@ -3468,7 +3468,7 @@ class ExternalColumnsTest(QueryTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         sess.query(Address).options(joinedload("user")).all()
 
@@ -3633,7 +3633,7 @@ class ExternalColumnsTest(QueryTest):
             Order, orders, properties={"address": relationship(Address)}
         )  # m2o
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             o1 = (
@@ -3645,7 +3645,7 @@ class ExternalColumnsTest(QueryTest):
 
         self.assert_sql_count(testing.db, go, 1)
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             o1 = (
@@ -3683,11 +3683,11 @@ class ExternalColumnsTest(QueryTest):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         a1 = sess.query(Address).first()
         eq_(a1.username, "jack")
 
-        sess = create_session()
+        sess = fixture_session()
         subq = sess.query(Address).subquery()
         aa = aliased(Address, subq)
         a1 = sess.query(aa).first()
@@ -3753,7 +3753,7 @@ class TestOverlyEagerEquivalentCols(fixtures.MappedTest):
 
         mapper(Sub1, sub1)
         mapper(Sub2, sub2)
-        sess = create_session()
+        sess = fixture_session()
 
         s11 = Sub1(data="s11")
         s12 = Sub1(data="s12")
@@ -3802,7 +3802,7 @@ class LabelCollideTest(fixtures.MappedTest):
         s.commit()
 
     def test_overlap_plain(self):
-        s = Session()
+        s = fixture_session()
         row = (
             s.query(self.classes.Foo, self.classes.Bar)
             .join(self.classes.Bar, true())
@@ -3819,7 +3819,7 @@ class LabelCollideTest(fixtures.MappedTest):
         self.assert_sql_count(testing.db, go, 0)
 
     def test_overlap_subquery(self):
-        s = Session()
+        s = fixture_session()
 
         subq = (
             s.query(self.classes.Foo, self.classes.Bar)
index 0bca2f975bc64b8d14665731a6c8cb736465053b..f6f1b5d74f6452cf849958b8185c1d72fa499ce6 100644 (file)
@@ -3,11 +3,11 @@ from sqlalchemy import ForeignKey
 from sqlalchemy import func
 from sqlalchemy import Integer
 from sqlalchemy import testing
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from test.orm import _fixtures
@@ -45,14 +45,14 @@ class GenerativeQueryTest(fixtures.MappedTest):
     def test_selectby(self):
         Foo = self.classes.Foo
 
-        res = create_session().query(Foo).filter_by(range=5)
+        res = fixture_session().query(Foo).filter_by(range=5)
         assert res.order_by(Foo.bar)[0].bar == 5
         assert res.order_by(sa.desc(Foo.bar))[0].bar == 95
 
     def test_slice(self):
         Foo = self.classes.Foo
 
-        sess = create_session()
+        sess = fixture_session()
         query = sess.query(Foo).order_by(Foo.id)
         orig = query.all()
 
@@ -73,7 +73,7 @@ class GenerativeQueryTest(fixtures.MappedTest):
     def test_aggregate(self):
         foo, Foo = self.tables.foo, self.classes.Foo
 
-        sess = create_session()
+        sess = fixture_session()
         query = sess.query(Foo)
         assert query.count() == 100
         assert sess.query(func.min(foo.c.bar)).filter(
@@ -99,7 +99,7 @@ class GenerativeQueryTest(fixtures.MappedTest):
     def test_aggregate_1(self):
         foo = self.tables.foo
 
-        query = create_session().query(func.sum(foo.c.bar))
+        query = fixture_session().query(func.sum(foo.c.bar))
         assert query.filter(foo.c.bar < 30).one() == (435,)
 
     @testing.fails_on("firebird", "FIXME: unknown")
@@ -110,7 +110,7 @@ class GenerativeQueryTest(fixtures.MappedTest):
     def test_aggregate_2(self):
         foo = self.tables.foo
 
-        query = create_session().query(func.avg(foo.c.bar))
+        query = fixture_session().query(func.avg(foo.c.bar))
         avg = query.filter(foo.c.bar < 30).one()[0]
         eq_(float(round(avg, 1)), 14.5)
 
@@ -121,7 +121,7 @@ class GenerativeQueryTest(fixtures.MappedTest):
     def test_aggregate_3(self):
         foo, Foo = self.tables.foo, self.classes.Foo
 
-        query = create_session().query(Foo)
+        query = fixture_session().query(Foo)
 
         avg_f = (
             query.filter(foo.c.bar < 30)
@@ -140,7 +140,7 @@ class GenerativeQueryTest(fixtures.MappedTest):
     def test_filter(self):
         Foo = self.classes.Foo
 
-        query = create_session().query(Foo)
+        query = fixture_session().query(Foo)
         assert query.count() == 100
         assert query.filter(Foo.bar < 30).count() == 30
         res2 = query.filter(Foo.bar < 30).filter(Foo.bar > 10)
@@ -149,20 +149,20 @@ class GenerativeQueryTest(fixtures.MappedTest):
     def test_order_by(self):
         Foo = self.classes.Foo
 
-        query = create_session().query(Foo)
+        query = fixture_session().query(Foo)
         assert query.order_by(Foo.bar)[0].bar == 0
         assert query.order_by(sa.desc(Foo.bar))[0].bar == 99
 
     def test_offset_order_by(self):
         Foo = self.classes.Foo
 
-        query = create_session().query(Foo)
+        query = fixture_session().query(Foo)
         assert list(query.order_by(Foo.bar).offset(10))[0].bar == 10
 
     def test_offset(self):
         Foo = self.classes.Foo
 
-        query = create_session().query(Foo)
+        query = fixture_session().query(Foo)
         assert len(list(query.limit(10))) == 10
 
 
@@ -212,7 +212,7 @@ class GenerativeTest2(fixtures.MappedTest):
             self.tables.table1,
         )
 
-        query = create_session().query(Obj1)
+        query = fixture_session().query(Obj1)
         eq_(query.count(), 4)
 
         res = query.filter(
@@ -264,7 +264,7 @@ class RelationshipsTest(_fixtures.FixtureTest):
 
         User, Address = self.classes.User, self.classes.Address
 
-        session = create_session()
+        session = fixture_session()
         q = (
             session.query(User)
             .join("orders", "addresses")
@@ -281,7 +281,7 @@ class RelationshipsTest(_fixtures.FixtureTest):
             self.classes.Address,
         )
 
-        session = create_session()
+        session = fixture_session()
         q = (
             session.query(User)
             .outerjoin("orders", "addresses")
@@ -298,7 +298,7 @@ class RelationshipsTest(_fixtures.FixtureTest):
             self.classes.Address,
         )
 
-        session = create_session()
+        session = fixture_session()
 
         q = (
             session.query(User)
@@ -317,7 +317,7 @@ class RelationshipsTest(_fixtures.FixtureTest):
             self.tables.addresses,
         )
 
-        session = create_session()
+        session = fixture_session()
 
         sel = users.outerjoin(orders).outerjoin(
             addresses, orders.c.address_id == addresses.c.id
@@ -376,7 +376,7 @@ class CaseSensitiveTest(fixtures.MappedTest):
             self.tables.Table1,
         )
 
-        q = create_session(bind=testing.db).query(Obj1)
+        q = fixture_session().query(Obj1)
         assert q.count() == 4
         res = q.filter(
             sa.and_(Table1.c.ID == Table2.c.T1ID, Table2.c.T1ID == 1)
index ffc41fb86bb4f11efcf47e3f58ec7ad00ef35732..50f57724002813f2156ed8cfe1ed2dd45aaac4c3 100644 (file)
@@ -1,6 +1,5 @@
 """test the current state of the hasparent() flag."""
 
-
 from sqlalchemy import ForeignKey
 from sqlalchemy import Integer
 from sqlalchemy import testing
@@ -8,10 +7,10 @@ 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.orm import Session
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from sqlalchemy.testing.util import gc_collect
@@ -83,7 +82,7 @@ class ParentRemovalTest(fixtures.MappedTest):
     def _fixture(self):
         User, Address = self.classes.User, self.classes.Address
 
-        s = Session()
+        s = fixture_session()
 
         u1 = User()
         a1 = Address()
index 2fdf1afd9cd405656166ec881a3dc1ed457c8477..7efd3436c1197cd23de1d9562a1e1f03a6414246 100644 (file)
@@ -1,10 +1,10 @@
 """basic tests of lazy loaded attributes"""
 
-from sqlalchemy.orm import create_session
 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
 from test.orm import _fixtures
 
 
@@ -22,7 +22,7 @@ class ImmediateTest(_fixtures.FixtureTest):
 
         mapper(Address, addresses)
         mapper(User, users, properties={"addresses": relationship(Address)})
-        sess = create_session()
+        sess = fixture_session()
 
         result = (
             sess.query(User)
@@ -58,7 +58,7 @@ class ImmediateTest(_fixtures.FixtureTest):
             users,
             properties={"addresses": relationship(Address, lazy="immediate")},
         )
-        sess = create_session()
+        sess = fixture_session()
 
         result = sess.query(User).filter(users.c.id == 7).all()
         eq_(len(sess.identity_map), 2)
index 8effb583c5d2d75c329f18cfab83cc25d4c0e4d8..d19d65e22a83493672d3fb532964833a9ce65f83 100644 (file)
@@ -16,6 +16,7 @@ from sqlalchemy.orm.util import identity_key
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import is_
+from sqlalchemy.testing.fixtures import fixture_session
 from test.orm import _fixtures
 
 
@@ -370,7 +371,7 @@ class TestORMInspection(_fixtures.FixtureTest):
     def test_instance_state_scalar_attr_hist(self):
         User = self.classes.User
         u1 = User(name="ed")
-        sess = Session()
+        sess = fixture_session()
         sess.add(u1)
         sess.commit()
         assert "name" not in u1.__dict__
@@ -393,7 +394,7 @@ class TestORMInspection(_fixtures.FixtureTest):
     def test_instance_state_scalar_attr_hist_load(self):
         User = self.classes.User
         u1 = User(name="ed")
-        sess = Session()
+        sess = fixture_session()
         sess.add(u1)
         sess.commit()
         assert "name" not in u1.__dict__
@@ -640,7 +641,7 @@ class %s(SuperCls):
         insp = inspect(u1)
 
         is_(insp.session, None)
-        s = Session()
+        s = fixture_session()
         s.add(u1)
         is_(insp.session, s)
 
index 16ccff936a9e6816874bb80523696852f636a86f..c9b2442be4dec8a98e7e8fa6c7682fb8c9d21959 100644 (file)
@@ -7,7 +7,6 @@ from sqlalchemy import util
 from sqlalchemy.orm import attributes
 from sqlalchemy.orm import class_mapper
 from sqlalchemy.orm import clear_mappers
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import instrumentation
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
@@ -16,6 +15,7 @@ from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import ne_
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -788,7 +788,7 @@ class MiscTest(fixtures.ORMTest):
             a = A()
             b.a = a
 
-            session = create_session()
+            session = fixture_session()
             session.add(b)
             assert a in session, "base is %s" % base
 
@@ -832,7 +832,7 @@ class MiscTest(fixtures.ORMTest):
             b = B()
             b.a = a
 
-            session = create_session()
+            session = fixture_session()
             session.add(a)
             assert b in session, "base: %s" % base
             clear_mappers()
index c2548c8795349c7e673418ce8aef988793d5cc7a..79d3db8f0ba38f37db99db8ec97116117f60c218 100644 (file)
@@ -17,7 +17,6 @@ from sqlalchemy import true
 from sqlalchemy.engine import default
 from sqlalchemy.orm import aliased
 from sqlalchemy.orm import backref
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import join
 from sqlalchemy.orm import joinedload
 from sqlalchemy.orm import mapper
@@ -30,6 +29,7 @@ from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import AssertsCompiledSQL
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from test.orm import _fixtures
 from .inheritance import _poly_fixtures
@@ -44,7 +44,7 @@ class InheritedJoinTest(InheritedTest, AssertsCompiledSQL):
     def test_single_prop(self):
         Company = self.classes.Company
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(Company).join(Company.employees),
@@ -63,7 +63,7 @@ class InheritedJoinTest(InheritedTest, AssertsCompiledSQL):
             self.classes.Engineer,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(Company)
@@ -81,7 +81,7 @@ class InheritedJoinTest(InheritedTest, AssertsCompiledSQL):
     def test_force_via_select_from(self):
         Company, Engineer = self.classes.Company, self.classes.Engineer
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(Company)
@@ -114,7 +114,7 @@ class InheritedJoinTest(InheritedTest, AssertsCompiledSQL):
     def test_single_prop_of_type(self):
         Company, Engineer = self.classes.Company, self.classes.Engineer
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(Company).join(Company.employees.of_type(Engineer)),
@@ -130,7 +130,7 @@ class InheritedJoinTest(InheritedTest, AssertsCompiledSQL):
     def test_explicit_polymorphic_join_one(self):
         Company, Engineer = self.classes.Company, self.classes.Engineer
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(Company)
@@ -149,7 +149,7 @@ class InheritedJoinTest(InheritedTest, AssertsCompiledSQL):
     def test_explicit_polymorphic_join_two(self):
         Company, Engineer = self.classes.Company, self.classes.Engineer
 
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Company)
             .join(Engineer, Company.company_id == Engineer.company_id)
@@ -167,7 +167,7 @@ class InheritedJoinTest(InheritedTest, AssertsCompiledSQL):
 
     def test_auto_aliasing_multi_link(self):
         # test [ticket:2903]
-        sess = create_session()
+        sess = fixture_session()
 
         Company, Engineer, Manager, Boss = (
             self.classes.Company,
@@ -221,7 +221,7 @@ class JoinOnSynonymTest(_fixtures.FixtureTest, AssertsCompiledSQL):
     def test_join_on_synonym(self):
         User = self.classes.User
         self.assert_compile(
-            Session().query(User).join(User.ad_syn),
+            fixture_session().query(User).join(User.ad_syn),
             "SELECT users.id AS users_id, users.name AS users_name "
             "FROM users JOIN addresses ON users.id = addresses.user_id",
         )
@@ -233,7 +233,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_filter_by_from_full_join(self):
         User, Address = self.classes("User", "Address")
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = (
             sess.query(User)
@@ -249,7 +249,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
 
     def test_invalid_kwarg_join(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
         assert_raises_message(
             TypeError,
             "unknown arguments: bar, foob",
@@ -271,7 +271,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(User, literal_column("x")).join(Address),
@@ -288,7 +288,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_left_is_none_and_query_has_no_entities(self):
         Address = self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         assert_raises_message(
             sa_exc.InvalidRequestError,
@@ -301,7 +301,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
 
         self.assert_compile(
-            create_session().query(User).join(User.orders, isouter=True),
+            fixture_session().query(User).join(User.orders, isouter=True),
             "SELECT users.id AS users_id, users.name AS users_name "
             "FROM users LEFT OUTER JOIN orders ON users.id = orders.user_id",
         )
@@ -310,7 +310,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
 
         self.assert_compile(
-            create_session().query(User).outerjoin(User.orders, full=True),
+            fixture_session().query(User).outerjoin(User.orders, full=True),
             "SELECT users.id AS users_id, users.name AS users_name "
             "FROM users FULL OUTER JOIN orders ON users.id = orders.user_id",
         )
@@ -318,7 +318,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_single_prop_1(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User).join(User.orders),
             "SELECT users.id AS users_id, users.name AS users_name "
@@ -328,7 +328,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_single_prop_2(self):
         Order, User = (self.classes.Order, self.classes.User)
 
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User).join(Order.user),
             "SELECT users.id AS users_id, users.name AS users_name "
@@ -338,7 +338,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_single_prop_3(self):
         Order, User = (self.classes.Order, self.classes.User)
 
-        sess = create_session()
+        sess = fixture_session()
         oalias1 = aliased(Order)
 
         self.assert_compile(
@@ -354,7 +354,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             User,
         ) = (self.classes.Order, self.classes.User)
 
-        sess = create_session()
+        sess = fixture_session()
         oalias1 = aliased(Order)
         oalias2 = aliased(Order)
         # another nonsensical query.  (from [ticket:1537]).
@@ -370,7 +370,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_single_prop_6(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         ualias = aliased(User)
         self.assert_compile(
             sess.query(ualias).join(ualias.orders),
@@ -381,7 +381,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_single_prop_9(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         subq = (
             sess.query(User)
@@ -409,7 +409,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         oalias1 = aliased(Order)
         # test #1 for [ticket:1706]
         ualias = aliased(User)
@@ -430,7 +430,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         # test #2 for [ticket:1706]
         ualias = aliased(User)
         ualias2 = aliased(User)
@@ -451,7 +451,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         Order = self.classes.Order
 
-        sess = create_session()
+        sess = fixture_session()
 
         # test overlapping paths.   User->orders is used by both joins, but
         # rendered once.
@@ -475,7 +475,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
         Order = self.classes.Order
         Address = self.classes.Address
 
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(User)
             .join(User.orders)
@@ -501,7 +501,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
 
         Order, User = self.classes.Order, self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         # intentionally join() with a non-existent "left" side
         self.assert_compile(
@@ -516,7 +516,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
         # a more controversial feature.  join from
         # User->Address, but the onclause is Address.user.
 
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(
             sess.query(User)
@@ -554,7 +554,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_multiple_with_aliases(self):
         Order, User = self.classes.Order, self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         ualias = aliased(User)
         oalias1 = aliased(Order)
@@ -577,7 +577,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_select_from_orm_joins(self):
         User, Order = self.classes.User, self.classes.Order
 
-        sess = create_session()
+        sess = fixture_session()
 
         ualias = aliased(User)
         oalias1 = aliased(Order)
@@ -715,7 +715,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_overlapping_backwards_joins(self):
         User, Order = self.classes.User, self.classes.Order
 
-        sess = create_session()
+        sess = fixture_session()
 
         oalias1 = aliased(Order)
         oalias2 = aliased(Order)
@@ -740,7 +740,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(Address, User)
@@ -762,7 +762,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
 
     def test_invalid_join_entity_from_single_from_clause(self):
         Address, Item = (self.classes.Address, self.classes.Item)
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(Address).select_from(Address)
 
@@ -776,7 +776,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
 
     def test_invalid_join_entity_from_no_from_clause(self):
         Address, Item = (self.classes.Address, self.classes.Item)
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(Address)
 
@@ -797,7 +797,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
             self.classes.Item,
         )
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(Address, User).join(Address.dingaling).join(User.orders)
 
@@ -816,7 +816,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
 
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         u1 = aliased(User)
 
@@ -852,7 +852,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
 
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         u1 = aliased(User)
         u2 = aliased(User)
@@ -892,7 +892,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.Dingaling,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(Address, User).join(Address.dingaling).join(User.orders)
 
@@ -948,7 +948,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.Dingaling,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(Order, Dingaling)
 
@@ -1000,7 +1000,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         a1 = aliased(Address)
 
@@ -1043,7 +1043,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         a1 = aliased(Address)
 
@@ -1068,7 +1068,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_pure_expression_error(self):
         addresses, users = self.tables.addresses, self.tables.users
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(users).join(addresses),
@@ -1083,7 +1083,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.Order,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(
             sess.query(User)
@@ -1119,7 +1119,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(
             sess.query(User)
@@ -1176,7 +1176,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_aliased_classes(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         (user7, user8, user9, user10) = sess.query(User).all()
         (address1, address2, address3, address4, address5) = sess.query(
@@ -1248,7 +1248,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_expression_onclauses(self):
         Order, User = self.classes.Order, self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         subq = sess.query(User).subquery()
 
@@ -1281,7 +1281,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_aliased_classes_m2m(self):
         Item, Order = self.classes.Item, self.classes.Order
 
-        sess = create_session()
+        sess = fixture_session()
 
         (order1, order2, order3, order4, order5) = sess.query(Order).all()
         (item1, item2, item3, item4, item5) = sess.query(Item).all()
@@ -1323,7 +1323,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
 
         # test for #1853
 
-        session = create_session()
+        session = fixture_session()
         first = session.query(User)
         second = session.query(User)
         unioned = first.union(second)
@@ -1366,7 +1366,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
 
         # test for #1853
 
-        session = create_session()
+        session = fixture_session()
         first = session.query(User)
         second = session.query(User)
         unioned = first.union(second)
@@ -1415,7 +1415,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
         oalias = orders.alias("oalias")
 
         result = (
-            create_session()
+            fixture_session()
             .query(User)
             .select_from(users.join(oalias))
             .filter(
@@ -1429,7 +1429,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
         assert [User(id=7, name="jack"), User(id=9, name="fred")] == result
 
         result = (
-            create_session()
+            fixture_session()
             .query(User)
             .select_from(users.join(oalias))
             .filter(
@@ -1445,7 +1445,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_aliased_order_by(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         ualias = aliased(User)
         eq_(
@@ -1466,7 +1466,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_plain_table(self):
         addresses, User = self.tables.addresses, self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(
             sess.query(User.name)
@@ -1479,7 +1479,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_no_joinpoint_expr(self):
         User, users = self.classes.User, self.tables.users
 
-        sess = create_session()
+        sess = fixture_session()
 
         # these are consistent regardless of
         # select_from() being present.
@@ -1506,7 +1506,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_on_clause_no_right_side_one(self):
         User = self.classes.User
         Address = self.classes.Address
-        sess = create_session()
+        sess = fixture_session()
 
         # coercions does not catch this due to the
         # legacy=True flag for JoinTargetRole
@@ -1532,7 +1532,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
     def test_on_clause_no_right_side_two(self):
         User = self.classes.User
         Address = self.classes.Address
-        sess = create_session()
+        sess = fixture_session()
 
         assert_raises_message(
             sa_exc.ArgumentError,
@@ -1562,7 +1562,7 @@ class JoinTest(QueryTest, AssertsCompiledSQL):
             self.classes.User,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Item.id)
             .select_from(User)
@@ -1617,7 +1617,7 @@ class JoinFromSelectableTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_select_mapped_to_mapped_explicit_left(self):
         T1, T2 = self.classes.T1, self.classes.T2
 
-        sess = Session()
+        sess = fixture_session()
         subq = (
             sess.query(T2.t1_id, func.count(T2.id).label("count"))
             .group_by(T2.t1_id)
@@ -1638,7 +1638,7 @@ class JoinFromSelectableTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_select_mapped_to_mapped_implicit_left(self):
         T1, T2 = self.classes.T1, self.classes.T2
 
-        sess = Session()
+        sess = fixture_session()
         subq = (
             sess.query(T2.t1_id, func.count(T2.id).label("count"))
             .group_by(T2.t1_id)
@@ -1657,7 +1657,7 @@ class JoinFromSelectableTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_select_mapped_to_select_explicit_left(self):
         T1, T2 = self.classes.T1, self.classes.T2
 
-        sess = Session()
+        sess = fixture_session()
         subq = (
             sess.query(T2.t1_id, func.count(T2.id).label("count"))
             .group_by(T2.t1_id)
@@ -1677,7 +1677,7 @@ class JoinFromSelectableTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_select_mapped_to_select_implicit_left(self):
         T1, T2 = self.classes.T1, self.classes.T2
 
-        sess = Session()
+        sess = fixture_session()
         subq = (
             sess.query(T2.t1_id, func.count(T2.id).label("count"))
             .group_by(T2.t1_id)
@@ -1709,7 +1709,7 @@ class JoinFromSelectableTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_mapped_select_to_mapped_implicit_left(self):
         T1, T2 = self.classes.T1, self.classes.T2
 
-        sess = Session()
+        sess = fixture_session()
         subq = (
             sess.query(T2.t1_id, func.count(T2.id).label("count"))
             .group_by(T2.t1_id)
@@ -1739,7 +1739,7 @@ class JoinFromSelectableTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_mapped_select_to_mapped_explicit_left(self):
         T1, T2 = self.classes.T1, self.classes.T2
 
-        sess = Session()
+        sess = fixture_session()
         subq = (
             sess.query(T2.t1_id, func.count(T2.id).label("count"))
             .group_by(T2.t1_id)
@@ -1759,7 +1759,7 @@ class JoinFromSelectableTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_mapped_select_to_select_explicit_left(self):
         T1, T2 = self.classes.T1, self.classes.T2
 
-        sess = Session()
+        sess = fixture_session()
         subq = (
             sess.query(T2.t1_id, func.count(T2.id).label("count"))
             .group_by(T2.t1_id)
@@ -1780,7 +1780,7 @@ class JoinFromSelectableTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_mapped_select_to_select_implicit_left(self):
         T1, T2 = self.classes.T1, self.classes.T2
 
-        sess = Session()
+        sess = fixture_session()
         subq = (
             sess.query(T2.t1_id, func.count(T2.id).label("count"))
             .group_by(T2.t1_id)
@@ -1866,7 +1866,7 @@ class SelfRefMixedTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_o2m_aliased_plus_o2m(self):
         Node, Sub = self.classes.Node, self.classes.Sub
 
-        sess = create_session()
+        sess = fixture_session()
         n1 = aliased(Node)
 
         self.assert_compile(
@@ -1886,7 +1886,7 @@ class SelfRefMixedTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_m2m_aliased_plus_o2m(self):
         Node, Sub = self.classes.Node, self.classes.Sub
 
-        sess = create_session()
+        sess = fixture_session()
         n1 = aliased(Node)
 
         self.assert_compile(
@@ -1962,7 +1962,7 @@ class CreateJoinsTest(fixtures.ORMTest, AssertsCompiledSQL):
 
     def test_double_level_aliased_exists(self):
         A, B, C, Base = self._inherits_fixture()
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(A).filter(A.b.has(B.c.has(C.id == 5))),
             "SELECT a.id AS a_id, base.id AS base_id, a.b_id AS a_b_id "
@@ -2029,7 +2029,7 @@ class JoinToNonPolyAliasesTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_join_parent_child(self):
         Parent = self.classes.Parent
 
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Parent)
             .join(Parent.npc)
@@ -2045,7 +2045,7 @@ class JoinToNonPolyAliasesTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_join_parent_child_select_from(self):
         Parent = self.classes.Parent
         npc = self.npc
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(npc)
             .select_from(Parent)
@@ -2061,7 +2061,7 @@ class JoinToNonPolyAliasesTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_join_select_parent_child(self):
         Parent = self.classes.Parent
         npc = self.npc
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Parent, npc)
             .join(Parent.npc)
@@ -2120,7 +2120,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def insert_data(cls, connection):
         Node = cls.classes.Node
 
-        sess = create_session(connection)
+        sess = Session(connection)
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -2134,7 +2134,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_join_4_explicit_join(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
 
         na = aliased(Node)
         na2 = aliased(Node)
@@ -2189,7 +2189,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         n1 = aliased(Node)
 
@@ -2266,7 +2266,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_join_to_self_no_aliases_raises(self):
         Node = self.classes.Node
 
-        s = Session()
+        s = fixture_session()
         assert_raises_message(
             sa.exc.InvalidRequestError,
             "Can't construct a join from mapped class Node->nodes to mapped "
@@ -2316,7 +2316,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_explicit_join_4(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
         n1 = aliased(Node)
         n2 = aliased(Node)
 
@@ -2331,7 +2331,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_explicit_join_5(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
         n1 = aliased(Node)
         n2 = aliased(Node)
 
@@ -2346,7 +2346,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_explicit_join_6(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
         n1 = aliased(Node)
 
         node = (
@@ -2359,7 +2359,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_explicit_join_7(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
         n1 = aliased(Node)
         n2 = aliased(Node)
 
@@ -2373,7 +2373,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_explicit_join_8(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
         n1 = aliased(Node)
         n2 = aliased(Node)
 
@@ -2390,7 +2390,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_explicit_join_9(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
         n1 = aliased(Node)
         n2 = aliased(Node)
 
@@ -2406,7 +2406,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def test_explicit_join_10(self):
         Node = self.classes.Node
-        sess = create_session()
+        sess = fixture_session()
         n1 = aliased(Node)
         n2 = aliased(Node)
 
@@ -2427,7 +2427,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_join_to_nonaliased(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         n1 = aliased(Node)
 
@@ -2457,7 +2457,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_multiple_explicit_entities_one(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         parent = aliased(Node)
         grandparent = aliased(Node)
@@ -2475,7 +2475,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_multiple_explicit_entities_two(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         parent = aliased(Node)
         grandparent = aliased(Node)
@@ -2502,7 +2502,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_multiple_explicit_entities_three(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         parent = aliased(Node)
         grandparent = aliased(Node)
@@ -2529,7 +2529,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_multiple_explicit_entities_four(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         parent = aliased(Node)
         grandparent = aliased(Node)
@@ -2548,7 +2548,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_multiple_explicit_entities_five(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         parent = aliased(Node)
         grandparent = aliased(Node)
@@ -2575,7 +2575,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_any(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Node)
             .filter(Node.children.any(Node.data == "n1"))
@@ -2605,7 +2605,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_has(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(
             sess.query(Node)
@@ -2628,7 +2628,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_contains(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         n122 = sess.query(Node).filter(Node.data == "n122").one()
         eq_(
@@ -2645,7 +2645,7 @@ class SelfReferentialTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_eq_ne(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         n12 = sess.query(Node).filter(Node.data == "n12").one()
         eq_(
@@ -2723,7 +2723,7 @@ class SelfReferentialM2MTest(fixtures.MappedTest):
                 )
             },
         )
-        sess = create_session(connection)
+        sess = Session(connection)
         n1 = Node(data="n1")
         n2 = Node(data="n2")
         n3 = Node(data="n3")
@@ -2746,7 +2746,7 @@ class SelfReferentialM2MTest(fixtures.MappedTest):
     def test_any(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Node)
             .filter(Node.children.any(Node.data == "n3"))
@@ -2758,7 +2758,7 @@ class SelfReferentialM2MTest(fixtures.MappedTest):
     def test_contains(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
         n4 = sess.query(Node).filter_by(data="n4").one()
 
         eq_(
@@ -2785,7 +2785,7 @@ class SelfReferentialM2MTest(fixtures.MappedTest):
     def test_explicit_join(self):
         Node = self.classes.Node
 
-        sess = create_session()
+        sess = fixture_session()
 
         n1 = aliased(Node)
         eq_(
@@ -2863,7 +2863,7 @@ class JoinLateralTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_select_subquery(self):
         Person, Book = self.classes("Person", "Book")
 
-        s = Session()
+        s = fixture_session()
 
         subq = (
             s.query(Book.book_id)
@@ -2889,7 +2889,7 @@ class JoinLateralTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_select_subquery_sef_implicit_correlate(self):
         Person, Book = self.classes("Person", "Book")
 
-        s = Session()
+        s = fixture_session()
 
         stmt = s.query(Person).subquery()
 
@@ -2922,7 +2922,7 @@ class JoinLateralTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_select_subquery_sef_implicit_correlate_coreonly(self):
         Person, Book = self.classes("Person", "Book")
 
-        s = Session()
+        s = fixture_session()
 
         stmt = s.query(Person).subquery()
 
@@ -2955,7 +2955,7 @@ class JoinLateralTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_select_subquery_sef_explicit_correlate_coreonly(self):
         Person, Book = self.classes("Person", "Book")
 
-        s = Session()
+        s = fixture_session()
 
         stmt = s.query(Person).subquery()
 
@@ -2989,7 +2989,7 @@ class JoinLateralTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_select_subquery_sef_explicit_correlate(self):
         Person, Book = self.classes("Person", "Book")
 
-        s = Session()
+        s = fixture_session()
 
         stmt = s.query(Person).subquery()
 
@@ -3023,7 +3023,7 @@ class JoinLateralTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_from_function(self):
         Bookcase = self.classes.Bookcase
 
-        s = Session()
+        s = fixture_session()
 
         srf = lateral(func.generate_series(1, Bookcase.bookcase_shelves))
 
@@ -3041,7 +3041,7 @@ class JoinLateralTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_from_function_select_entity_from(self):
         Bookcase = self.classes.Bookcase
 
-        s = Session()
+        s = fixture_session()
 
         subq = s.query(Bookcase).subquery()
 
index b190f46d63c9f0e5244a0feced514caa1f2019eb..7591f844ff67b9a9b79f81422f10ba2d0cecc8a9 100644 (file)
@@ -18,6 +18,7 @@ from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import AssertsCompiledSQL
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from .inheritance import _poly_fixtures
@@ -70,7 +71,7 @@ class LambdaTest(QueryTest, AssertsCompiledSQL):
     def test_user_cols_single_lambda_query(self, plain_fixture):
         User, Address = plain_fixture
 
-        s = Session()
+        s = fixture_session()
         q = s.query(lambda: (User.id, User.name)).select_from(lambda: User)
 
         self.assert_compile(
index f439b6b08e5ac0546a1c083b60d815b6d9f2bc44..3061de309b2bef4d1580a6c2bf73e43b9e1c530f 100644 (file)
@@ -18,7 +18,6 @@ from sqlalchemy import util
 from sqlalchemy.orm import aliased
 from sqlalchemy.orm import attributes
 from sqlalchemy.orm import configure_mappers
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import exc as orm_exc
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
@@ -29,6 +28,7 @@ from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_false
 from sqlalchemy.testing import is_true
 from sqlalchemy.testing.assertsql import CompiledSQL
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from sqlalchemy.types import TypeDecorator
@@ -56,7 +56,7 @@ class LazyTest(_fixtures.FixtureTest):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
         eq_(
             [
@@ -87,7 +87,7 @@ class LazyTest(_fixtures.FixtureTest):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
         u = q.filter(users.c.id == 7).first()
         sess.expunge(u)
@@ -112,7 +112,7 @@ class LazyTest(_fixtures.FixtureTest):
                 )
             },
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         assert [
             User(id=7, addresses=[Address(id=1)]),
             User(
@@ -145,7 +145,7 @@ class LazyTest(_fixtures.FixtureTest):
             users,
             properties=dict(addresses=relationship(Address, lazy="select")),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         result = (
             q.filter(users.c.id == addresses.c.user_id)
             .order_by(addresses.c.email_address)
@@ -185,7 +185,7 @@ class LazyTest(_fixtures.FixtureTest):
                 )
             ),
         )
-        sess = create_session()
+        sess = fixture_session()
         assert [
             User(id=7, addresses=[Address(id=1)]),
             User(
@@ -221,7 +221,7 @@ class LazyTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         user = sess.query(User).get(7)
         assert getattr(User, "addresses").hasparent(
             attributes.instance_state(user.addresses[0]), optimistic=True
@@ -276,7 +276,7 @@ class LazyTest(_fixtures.FixtureTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         if testing.against("mssql"):
@@ -330,7 +330,7 @@ class LazyTest(_fixtures.FixtureTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         # use a union all to get a lot of rows to join against
@@ -362,7 +362,7 @@ class LazyTest(_fixtures.FixtureTest):
             properties={"order": relationship(Order, uselist=False)},
         )
         mapper(Order, orders)
-        s = create_session()
+        s = fixture_session()
         u1 = s.query(User).filter(User.id == 7).one()
         assert_raises(sa.exc.SAWarning, getattr, u1, "order")
 
@@ -390,7 +390,7 @@ class LazyTest(_fixtures.FixtureTest):
             ),
         )
 
-        s = Session()
+        s = fixture_session()
         ed = s.query(User).filter_by(name="ed").one()
         eq_(
             ed.addresses,
@@ -421,7 +421,7 @@ class LazyTest(_fixtures.FixtureTest):
                 )
             ),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         result = q.filter(users.c.id == 7).all()
         assert [User(id=7, address=Address(id=1))] == result
 
@@ -453,7 +453,7 @@ class LazyTest(_fixtures.FixtureTest):
                 )
             ),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         eq_(
             [
                 User(id=7, address=None),
@@ -597,7 +597,7 @@ class LazyTest(_fixtures.FixtureTest):
         User, Address, Order, Item = self.classes(
             "User", "Address", "Order", "Item"
         )
-        q = create_session().query(User).order_by(User.id)
+        q = fixture_session().query(User).order_by(User.id)
 
         def items(*ids):
             if no_items:
@@ -643,21 +643,21 @@ class LazyTest(_fixtures.FixtureTest):
         else:
             self.assert_sql_count(testing.db, go, 15)
 
-        sess = create_session()
+        sess = fixture_session()
         user = sess.query(User).get(7)
 
         closed_mapper = User.closed_orders.entity
         open_mapper = User.open_orders.entity
         eq_(
             [Order(id=1), Order(id=5)],
-            create_session()
+            fixture_session()
             .query(closed_mapper)
             .with_parent(user, property="closed_orders")
             .all(),
         )
         eq_(
             [Order(id=3)],
-            create_session()
+            fixture_session()
             .query(open_mapper)
             .with_parent(user, property="open_orders")
             .all(),
@@ -683,7 +683,7 @@ class LazyTest(_fixtures.FixtureTest):
             ),
         )
 
-        q = create_session().query(Item)
+        q = fixture_session().query(Item)
         assert self.static.item_keyword_result == q.all()
 
         eq_(
@@ -717,7 +717,7 @@ class LazyTest(_fixtures.FixtureTest):
                 ),
             )
 
-            sess = create_session()
+            sess = fixture_session()
 
             # load address
             a1 = (
@@ -789,7 +789,7 @@ class LazyTest(_fixtures.FixtureTest):
                 properties=dict(user=relationship(mapper(User, users))),
             )
 
-            sess = create_session(bind=testing.db)
+            sess = fixture_session()
 
             # load address
             a1 = (
@@ -823,7 +823,7 @@ class LazyTest(_fixtures.FixtureTest):
                 user=relationship(mapper(User, users), lazy="select")
             ),
         )
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Address)
         a = q.filter(addresses.c.id == 1).one()
 
@@ -847,7 +847,7 @@ class LazyTest(_fixtures.FixtureTest):
             properties={"addresses": relationship(Address, backref="user")},
         )
         mapper(Address, addresses)
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         ad = sess.query(Address).filter_by(id=1).one()
         assert ad.user.id == 7
 
@@ -983,7 +983,7 @@ class GetterStateTest(_fixtures.FixtureTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         a1 = Address(email_address="a1")
         sess.add(a1)
         if populate_user:
@@ -1143,7 +1143,7 @@ class M2OGetTest(_fixtures.FixtureTest):
 
         mapper(Address, addresses, properties={"user": relationship(User)})
 
-        sess = create_session()
+        sess = fixture_session()
         ad1 = Address(email_address="somenewaddress", id=12)
         sess.add(ad1)
         sess.flush()
@@ -1232,7 +1232,7 @@ class CorrelatedTest(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(
             sess.query(User).all(),
@@ -1433,7 +1433,7 @@ class RefersToSelfLazyLoadInterferenceTest(fixtures.MappedTest):
     def test_lazy_doesnt_interfere(self):
         A, B, C = self.classes("A", "B", "C")
 
-        session = Session()
+        session = fixture_session()
         b = B()
         session.add(b)
         session.flush()
@@ -1512,7 +1512,7 @@ class TypeCoerceTest(fixtures.MappedTest, testing.AssertsExecutionResults):
         Person = self.classes.Person
         Pet = self.classes.Pet
 
-        s = Session()
+        s = fixture_session()
         s.add_all([Person(id=5), Pet(id=1, person_id=5)])
         s.commit()
 
index 819bc8bed45fbdadd9b573dcb00bdc08a2d1daba..e15dbb09f3adda58dd48c84f5ca99834af410177 100644 (file)
@@ -6,11 +6,11 @@ from sqlalchemy.orm import aliased
 from sqlalchemy.orm import loading
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
-from sqlalchemy.orm import Session
 from sqlalchemy.testing import mock
 from sqlalchemy.testing.assertions import assert_raises
 from sqlalchemy.testing.assertions import assert_raises_message
 from sqlalchemy.testing.assertions import eq_
+from sqlalchemy.testing.fixtures import fixture_session
 from . import _fixtures
 
 # class GetFromIdentityTest(_fixtures.FixtureTest):
@@ -40,7 +40,7 @@ class InstanceProcessorTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        s = Session()
+        s = fixture_session()
 
         def go():
             eq_(
@@ -69,7 +69,7 @@ class InstancesTest(_fixtures.FixtureTest):
 
     def test_cursor_close_w_failed_rowproc(self):
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
 
         q = s.query(User)
 
@@ -83,7 +83,7 @@ class InstancesTest(_fixtures.FixtureTest):
 
     def test_row_proc_not_created(self):
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
 
         q = s.query(User.id, User.name)
         stmt = select(User.id)
@@ -107,7 +107,7 @@ class MergeResultTest(_fixtures.FixtureTest):
     def _fixture(self):
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
         u1, u2, u3, u4 = (
             User(id=1, name="u1"),
             User(id=2, name="u2"),
@@ -130,7 +130,7 @@ class MergeResultTest(_fixtures.FixtureTest):
     def test_single_column(self):
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
 
         q = s.query(User.id)
         collection = [(1,), (2,), (7,), (8,)]
index a3dd42fc26c0ce46f58788a7c4869a74440cab28..f82c5cf7c9fd8fd2fc4971bb2007e999fbf84f8b 100644 (file)
@@ -4,10 +4,10 @@ from sqlalchemy.engine import default
 from sqlalchemy.orm import joinedload
 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 AssertsCompiledSQL
 from sqlalchemy.testing import eq_
+from sqlalchemy.testing.fixtures import fixture_session
 from test.orm import _fixtures
 
 
@@ -27,7 +27,7 @@ class ForUpdateTest(_fixtures.FixtureTest):
         assert_sel_of=None,
     ):
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
         q = s.query(User).with_for_update(
             read=read, nowait=nowait, of=of, key_share=key_share
         )
@@ -81,7 +81,7 @@ class BackendTest(_fixtures.FixtureTest):
 
     def test_inner_joinedload_w_limit(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         q = (
             sess.query(User)
             .options(joinedload(User.addresses, innerjoin=True))
@@ -97,7 +97,7 @@ class BackendTest(_fixtures.FixtureTest):
 
     def test_inner_joinedload_wo_limit(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         sess.query(User).options(
             joinedload(User.addresses, innerjoin=True)
         ).with_for_update().all()
@@ -105,7 +105,7 @@ class BackendTest(_fixtures.FixtureTest):
 
     def test_outer_joinedload_w_limit(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User).options(
             joinedload(User.addresses, innerjoin=False)
         )
@@ -125,7 +125,7 @@ class BackendTest(_fixtures.FixtureTest):
 
     def test_outer_joinedload_wo_limit(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User).options(
             joinedload(User.addresses, innerjoin=False)
         )
@@ -141,14 +141,14 @@ class BackendTest(_fixtures.FixtureTest):
     def test_join_w_subquery(self):
         User = self.classes.User
         Address = self.classes.Address
-        sess = Session()
+        sess = fixture_session()
         q1 = sess.query(User).with_for_update().subquery()
         sess.query(q1).join(Address).all()
         sess.close()
 
     def test_plain(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         sess.query(User).with_for_update().all()
         sess.close()
 
@@ -167,7 +167,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_default_update(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(),
             "SELECT users.id AS users_id FROM users FOR UPDATE",
@@ -176,7 +176,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_not_supported_by_dialect_should_just_use_update(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(read=True),
             "SELECT users.id AS users_id FROM users FOR UPDATE",
@@ -185,7 +185,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_postgres_read(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(read=True),
             "SELECT users.id AS users_id FROM users FOR SHARE",
@@ -194,7 +194,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_postgres_read_nowait(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(read=True, nowait=True),
             "SELECT users.id AS users_id FROM users FOR SHARE NOWAIT",
@@ -203,7 +203,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_postgres_update(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(),
             "SELECT users.id AS users_id FROM users FOR UPDATE",
@@ -212,7 +212,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_postgres_update_of(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(of=User.id),
             "SELECT users.id AS users_id FROM users FOR UPDATE OF users",
@@ -221,7 +221,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_postgres_update_of_entity(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(of=User),
             "SELECT users.id AS users_id FROM users FOR UPDATE OF users",
@@ -232,7 +232,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id, Address.id).with_for_update(
                 of=[User, Address]
@@ -244,7 +244,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_postgres_for_no_key_update(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(key_share=True),
             "SELECT users.id AS users_id FROM users FOR NO KEY UPDATE",
@@ -253,7 +253,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_postgres_for_no_key_nowait_update(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(key_share=True, nowait=True),
             "SELECT users.id AS users_id FROM users FOR NO KEY UPDATE NOWAIT",
@@ -262,7 +262,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_postgres_update_of_list(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(
                 of=[User.id, User.id, User.id]
@@ -273,7 +273,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_postgres_update_skip_locked(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(skip_locked=True),
             "SELECT users.id AS users_id FROM users FOR UPDATE SKIP LOCKED",
@@ -282,7 +282,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_oracle_update(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(),
             "SELECT users.id AS users_id FROM users FOR UPDATE",
@@ -291,7 +291,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_oracle_update_skip_locked(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(skip_locked=True),
             "SELECT users.id AS users_id FROM users FOR UPDATE SKIP LOCKED",
@@ -300,7 +300,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_mysql_read(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User.id).with_for_update(read=True),
             "SELECT users.id AS users_id FROM users LOCK IN SHARE MODE",
@@ -309,7 +309,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_for_update_on_inner_w_joinedload(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User)
             .options(joinedload(User.addresses))
@@ -328,7 +328,7 @@ class CompileTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_for_update_on_inner_w_joinedload_no_render_oracle(self):
         User = self.classes.User
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(User)
             .options(joinedload(User.addresses))
index 8b51d7e20375f8852d9c811312512c9eb987448b..79c63872dc411771c871c447c8dd8834dbd95a8f 100644 (file)
@@ -7,11 +7,10 @@ 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.orm import Session
-from sqlalchemy.orm import sessionmaker
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -167,7 +166,7 @@ class M2MTest(fixtures.MappedTest):
             },
         )
 
-        sess = Session()
+        sess = fixture_session()
         p1 = Place("place1")
         p2 = Place("place2")
         p3 = Place("place3")
@@ -216,7 +215,7 @@ class M2MTest(fixtures.MappedTest):
             },
         )
 
-        sess = Session()
+        sess = fixture_session()
         p1 = Place("place1")
         p2 = Place("place2")
         p2.parent_places = [p1]
@@ -271,7 +270,7 @@ class M2MTest(fixtures.MappedTest):
         tran.inputs.append(Place("place1"))
         tran.outputs.append(Place("place2"))
         tran.outputs.append(Place("place3"))
-        sess = Session()
+        sess = fixture_session()
         sess.add(tran)
         sess.commit()
 
@@ -327,7 +326,7 @@ class M2MTest(fixtures.MappedTest):
         p2 = Place("place2")
         p3 = Place("place3")
 
-        sess = Session()
+        sess = fixture_session()
         sess.add_all([p3, p1, t1, t2, p2, t3])
 
         t1.inputs.append(p1)
@@ -380,7 +379,7 @@ class M2MTest(fixtures.MappedTest):
         p1 = Place("place1")
         t1 = Transition("t1")
         p1.transitions.append(t1)
-        sess = sessionmaker()()
+        sess = fixture_session()
         sess.add_all([p1, t1])
         sess.commit()
 
@@ -494,7 +493,7 @@ class AssortedPersistenceTests(fixtures.MappedTest):
         A, B = self.classes.A, self.classes.B
         secondary = self.tables.secondary
 
-        sess = Session()
+        sess = fixture_session()
         sess.add_all(
             [A(data="a1", bs=[B(data="b1")]), A(data="a2", bs=[B(data="b2")])]
         )
@@ -516,7 +515,7 @@ class AssortedPersistenceTests(fixtures.MappedTest):
         A, B = self.classes.A, self.classes.B
         secondary = self.tables.secondary
 
-        sess = Session()
+        sess = fixture_session()
         sess.add_all([A(data="a1", bs=[B(data="b1"), B(data="b2")])])
         sess.commit()
 
index 35e0b0042269bc44db623ac8a3a82986ab23c932..013eb21e1169437dda3f4e61f429139938705d3e 100644 (file)
@@ -18,7 +18,6 @@ from sqlalchemy.orm import class_mapper
 from sqlalchemy.orm import column_property
 from sqlalchemy.orm import composite
 from sqlalchemy.orm import configure_mappers
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import deferred
 from sqlalchemy.orm import dynamic_loader
 from sqlalchemy.orm import mapper
@@ -36,6 +35,7 @@ from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
 from sqlalchemy.testing import ne_
 from sqlalchemy.testing.fixtures import ComparableMixin
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from test.orm import _fixtures
@@ -274,7 +274,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
             properties={"user_name": synonym("_name")},
         )
 
-        s = create_session()
+        s = fixture_session()
         u = s.query(User).get(7)
         eq_(u._name, "jack")
         eq_(u._id, 7)
@@ -324,7 +324,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         User, users = self.classes.User, self.tables.users
 
         m = self.mapper(User, users)
-        session = create_session()
+        session = fixture_session()
         session.connection(mapper=m)
 
     def test_incomplete_columns(self):
@@ -333,7 +333,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         addresses, Address = self.tables.addresses, self.classes.Address
 
         self.mapper(Address, addresses)
-        s = create_session()
+        s = fixture_session()
         a = (
             s.query(Address)
             .from_statement(
@@ -708,7 +708,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         m.add_property("name", synonym("_name"))
         m.add_property("addresses", relationship(Address))
 
-        sess = create_session(autocommit=False)
+        sess = fixture_session(autocommit=False)
         assert sess.query(User).get(7)
 
         u = sess.query(User).filter_by(name="jack").one()
@@ -754,7 +754,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         m.add_property("_name", users.c.name)
         m.add_property("name", synonym("_name"))
 
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).filter_by(name="jack").one()
         eq_(u._name, "jack")
         eq_(u.name, "jack")
@@ -810,7 +810,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         # add property using annotated User.name,
         # needs to be deannotated
         m.add_property("x", column_property(User.name + "name"))
-        s = create_session()
+        s = fixture_session()
         q = s.query(m2).select_from(Address).join(Address.foo)
         self.assert_compile(
             q,
@@ -884,7 +884,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
             properties={"addresses": relationship(Address, backref="_user")},
         )
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = sess.query(User).get(7)
         u2 = sess.query(User).get(8)
         # comparaison ops need to work
@@ -1218,7 +1218,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
             primary_key=[users.c.id],
             properties={"add_id": addresses.c.id},
         )
-        result = create_session().query(User).order_by(users.c.id).all()
+        result = fixture_session().query(User).order_by(users.c.id).all()
         eq_(result, self.static.user_result[:3])
 
     def test_mapping_to_join_exclude_prop(self):
@@ -1239,7 +1239,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
             primary_key=[users.c.id],
             exclude_properties=[addresses.c.id],
         )
-        result = create_session().query(User).order_by(users.c.id).all()
+        result = fixture_session().query(User).order_by(users.c.id).all()
         eq_(result, self.static.user_result[:3])
 
     def test_mapping_to_join_no_pk(self):
@@ -1258,13 +1258,23 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         assert addresses in m._pks_by_table
         assert email_bounces not in m._pks_by_table
 
-        sess = create_session()
+        sess = fixture_session()
         a = Address(id=10, email_address="e1")
         sess.add(a)
         sess.flush()
 
-        eq_(select(func.count("*")).select_from(addresses).scalar(), 6)
-        eq_(select(func.count("*")).select_from(email_bounces).scalar(), 5)
+        eq_(
+            sess.connection().scalar(
+                select(func.count("*")).select_from(addresses)
+            ),
+            6,
+        )
+        eq_(
+            sess.connection().scalar(
+                select(func.count("*")).select_from(email_bounces)
+            ),
+            5,
+        )
 
     def test_mapping_to_outerjoin(self):
         """Mapping to an outer join with a nullable composite primary key."""
@@ -1282,7 +1292,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
             properties=dict(address_id=addresses.c.id),
         )
 
-        session = create_session()
+        session = fixture_session()
         result = session.query(User).order_by(User.id, User.address_id).all()
 
         eq_(
@@ -1314,7 +1324,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
             properties=dict(address_id=addresses.c.id),
         )
 
-        session = create_session()
+        session = fixture_session()
         result = session.query(User).order_by(User.id, User.address_id).all()
 
         eq_(
@@ -1370,7 +1380,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
         self.mapper(User, users, properties=dict(orders=relationship(Order)))
 
-        session = create_session()
+        session = fixture_session()
         result = (
             session.query(User)
             .select_from(users.join(orders).join(order_items).join(items))
@@ -1402,7 +1412,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         )
 
         self.mapper(User, s)
-        sess = create_session()
+        sess = fixture_session()
         result = sess.query(User).order_by(s.c.id).all()
 
         for idx, total in enumerate((14, 16)):
@@ -1416,7 +1426,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
         self.mapper(User, users)
 
-        session = create_session()
+        session = fixture_session()
         q = session.query(User)
 
         eq_(q.count(), 4)
@@ -1444,7 +1454,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
             ),
         )
 
-        session = create_session()
+        session = fixture_session()
         q = (
             session.query(Item)
             .join("keywords")
@@ -1565,7 +1575,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         assert User.uname.property
         assert User.adlist.property
 
-        sess = create_session()
+        sess = fixture_session()
 
         # test RowTuple names
         row = sess.query(User.id, User.uname).first()
@@ -1600,7 +1610,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
             User, users, properties={"x": synonym("id"), "y": synonym("x")}
         )
 
-        s = Session()
+        s = fixture_session()
         u = s.query(User).filter(User.y == 8).one()
         eq_(u.y, 8)
 
@@ -1732,7 +1742,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         assert hasattr(User, "name")
         assert hasattr(User, "_name")
 
-        sess = create_session()
+        sess = fixture_session()
         u = sess.query(User).filter(User.name == "jack").one()
         eq_(u.name, "jack")
         u.name = "foo"
@@ -1814,7 +1824,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
         User()
         eq_(recon, [])
-        create_session().query(User).first()
+        fixture_session().query(User).first()
         eq_(recon, ["go"])
 
     def test_reconstructor_inheritance(self):
@@ -1851,7 +1861,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         C()
         eq_(recon, [])
 
-        sess = create_session()
+        sess = fixture_session()
         sess.query(A).first()
         sess.query(B).first()
         sess.query(C).first()
@@ -1874,7 +1884,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         eq_(recon, ["go"])
 
         recon[:] = []
-        create_session().query(User).first()
+        fixture_session().query(User).first()
         eq_(recon, ["go"])
 
     def test_reconstructor_init_inheritance(self):
@@ -1912,7 +1922,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         eq_(recon, ["A", "B", "C"])
 
         recon[:] = []
-        sess = create_session()
+        sess = fixture_session()
         sess.query(A).first()
         sess.query(B).first()
         sess.query(C).first()
@@ -1936,7 +1946,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         User()
         eq_(recon, [])
 
-        create_session().query(User).first()
+        fixture_session().query(User).first()
         eq_(recon, ["go"])
 
     def test_unmapped_error(self):
@@ -2040,7 +2050,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
         # using it with an ORM operation, raises
         assert_raises(
-            sa.orm.exc.UnmappedClassError, create_session().add, Sub()
+            sa.orm.exc.UnmappedClassError, fixture_session().add, Sub()
         )
 
     def test_unmapped_subclass_error_premap(self):
@@ -2064,7 +2074,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
         # using it with an ORM operation, raises
         assert_raises(
-            sa.orm.exc.UnmappedClassError, create_session().add, Sub()
+            sa.orm.exc.UnmappedClassError, fixture_session().add, Sub()
         )
 
     def test_oldstyle_mixin(self):
@@ -2222,7 +2232,7 @@ class RequirementsTest(fixtures.MappedTest):
         self.mapper(H3, ht3)
         self.mapper(H6, ht6)
 
-        s = create_session()
+        s = fixture_session()
         s.add_all([H1("abc"), H1("def")])
         h1 = H1("ghi")
         s.add(h1)
@@ -2231,7 +2241,7 @@ class RequirementsTest(fixtures.MappedTest):
         h1.h1s.append(H1())
 
         s.flush()
-        eq_(select(func.count("*")).select_from(ht1).scalar(), 4)
+        eq_(s.connection().scalar(select(func.count("*")).select_from(ht1)), 4)
 
         h6 = H6()
         h6.h1a = h1
@@ -2299,7 +2309,7 @@ class RequirementsTest(fixtures.MappedTest):
             H1, ht1, properties={"h2s": relationship(H2, backref="h1")}
         )
         self.mapper(H2, ht2)
-        s = Session()
+        s = fixture_session()
         s.add_all(
             [
                 H1(
@@ -2478,7 +2488,7 @@ class MagicNamesTest(fixtures.MappedTest):
         )
         Map(state="AK", mapper=c)
 
-        sess = create_session()
+        sess = fixture_session()
         sess.add(c)
         sess.flush()
         sess.expunge_all()
@@ -2632,7 +2642,7 @@ class ORMLoggingTest(_fixtures.FixtureTest):
         User, users = self.classes.User, self.tables.users
         tb = users.select().alias()
         self.mapper(User, tb)
-        s = Session()
+        s = fixture_session()
         s.add(User(name="ed"))
         s.commit()
 
index 57d3ce01d6931e2a3c69fc58c7287d8da0adb023..e0a76c6a0bea543e54e01d91ea2d1d41d1ada7f8 100644 (file)
@@ -13,14 +13,12 @@ from sqlalchemy import Text
 from sqlalchemy.orm import attributes
 from sqlalchemy.orm import backref
 from sqlalchemy.orm import configure_mappers
-from sqlalchemy.orm import create_session
 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 Session
-from sqlalchemy.orm import sessionmaker
 from sqlalchemy.orm import synonym
 from sqlalchemy.orm.collections import attribute_mapped_collection
 from sqlalchemy.orm.interfaces import MapperOption
@@ -30,6 +28,7 @@ from sqlalchemy.testing import expect_warnings
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import in_
 from sqlalchemy.testing import not_in
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from sqlalchemy.util import OrderedSet
@@ -57,7 +56,7 @@ class MergeTest(_fixtures.FixtureTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        sess = create_session()
+        sess = fixture_session()
         load = self.load_tracker(User)
 
         u = User(id=7, name="fred")
@@ -77,7 +76,7 @@ class MergeTest(_fixtures.FixtureTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        sess = create_session()
+        sess = fixture_session()
         u = User(name="fred")
 
         def go():
@@ -89,7 +88,7 @@ class MergeTest(_fixtures.FixtureTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         u = User(name="fred")
 
         sess.add(u)
@@ -104,7 +103,7 @@ class MergeTest(_fixtures.FixtureTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         u = User(id=1, name="fred")
 
         sess.add(u)
@@ -148,7 +147,7 @@ class MergeTest(_fixtures.FixtureTest):
         )
         eq_(load.called, 0)
 
-        sess = create_session()
+        sess = fixture_session()
         sess.merge(u)
         eq_(load.called, 3)
 
@@ -188,7 +187,7 @@ class MergeTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        s = Session()
+        s = fixture_session()
         u = User(
             id=7,
             name="fred",
@@ -239,7 +238,7 @@ class MergeTest(_fixtures.FixtureTest):
         )
         eq_(load.called, 0)
 
-        sess = create_session()
+        sess = fixture_session()
         sess.merge(u)
         eq_(load.called, 3)
 
@@ -269,7 +268,7 @@ class MergeTest(_fixtures.FixtureTest):
         mapper(User, users)
         load = self.load_tracker(User)
 
-        sess = create_session()
+        sess = fixture_session()
         u = User(id=7, name="fred")
         sess.add(u)
         sess.flush()
@@ -323,7 +322,7 @@ class MergeTest(_fixtures.FixtureTest):
                 ]
             ),
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u)
         sess.flush()
         sess.expunge_all()
@@ -408,7 +407,7 @@ class MergeTest(_fixtures.FixtureTest):
             name="fred",
             addresses=OrderedSet([a, Address(id=2, email_address="fred2")]),
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u)
         sess.flush()
         sess.expunge_all()
@@ -459,7 +458,7 @@ class MergeTest(_fixtures.FixtureTest):
         )
         load = self.load_tracker(User)
         self.load_tracker(Address, load)
-        sess = create_session()
+        sess = fixture_session()
 
         u = User(id=7, name="fred")
         a1 = Address(email_address="foo@bar.com")
@@ -515,7 +514,7 @@ class MergeTest(_fixtures.FixtureTest):
 
         mapper(User, dingalings)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
 
         # merge empty stuff.  goes in as NULL.
         # not sure what this was originally trying to
@@ -597,7 +596,7 @@ class MergeTest(_fixtures.FixtureTest):
         )
         u1 = User(id=7, name="fred")
         u1.addresses["foo@bar.com"] = Address(email_address="foo@bar.com")
-        sess = create_session()
+        sess = fixture_session()
         sess.merge(u1)
         sess.flush()
         assert list(u1.addresses.keys()) == ["foo@bar.com"]
@@ -625,22 +624,21 @@ class MergeTest(_fixtures.FixtureTest):
         load = self.load_tracker(User)
         self.load_tracker(Address, load)
 
-        sess = create_session()
+        with fixture_session(expire_on_commit=False) as sess, sess.begin():
 
-        # set up data and save
-        u = User(
-            id=7,
-            name="fred",
-            addresses=[
-                Address(email_address="foo@bar.com"),
-                Address(email_address="hoho@la.com"),
-            ],
-        )
-        sess.add(u)
-        sess.flush()
+            # set up data and save
+            u = User(
+                id=7,
+                name="fred",
+                addresses=[
+                    Address(email_address="foo@bar.com"),
+                    Address(email_address="hoho@la.com"),
+                ],
+            )
+            sess.add(u)
 
         # assert data was saved
-        sess2 = create_session()
+        sess2 = fixture_session()
         u2 = sess2.query(User).get(7)
         eq_(
             u2,
@@ -661,88 +659,91 @@ class MergeTest(_fixtures.FixtureTest):
         eq_(load.called, 3)
 
         # new session, merge modified data into session
-        sess3 = create_session()
-        u3 = sess3.merge(u)
-        eq_(load.called, 6)
+        with fixture_session(expire_on_commit=False) as sess3:
+            u3 = sess3.merge(u)
+            eq_(load.called, 6)
 
-        # ensure local changes are pending
-        eq_(
-            u3,
-            User(
-                id=7,
-                name="fred2",
-                addresses=[
-                    Address(email_address="foo@bar.com"),
-                    Address(email_address="hoho@lalala.com"),
-                ],
-            ),
-        )
+            # ensure local changes are pending
+            eq_(
+                u3,
+                User(
+                    id=7,
+                    name="fred2",
+                    addresses=[
+                        Address(email_address="foo@bar.com"),
+                        Address(email_address="hoho@lalala.com"),
+                    ],
+                ),
+            )
 
-        # save merged data
-        sess3.flush()
+            # save merged data
+            sess3.commit()
 
         # assert modified/merged data was saved
-        sess.expunge_all()
-        u = sess.query(User).get(7)
-        eq_(
-            u,
-            User(
-                id=7,
-                name="fred2",
-                addresses=[
-                    Address(email_address="foo@bar.com"),
-                    Address(email_address="hoho@lalala.com"),
-                ],
-            ),
-        )
-        eq_(load.called, 9)
+        with fixture_session() as sess:
+            u = sess.query(User).get(7)
+            eq_(
+                u,
+                User(
+                    id=7,
+                    name="fred2",
+                    addresses=[
+                        Address(email_address="foo@bar.com"),
+                        Address(email_address="hoho@lalala.com"),
+                    ],
+                ),
+            )
+            eq_(load.called, 9)
 
         # merge persistent object into another session
-        sess4 = create_session()
-        u = sess4.merge(u)
-        assert len(u.addresses)
-        for a in u.addresses:
-            assert a.user is u
+        with fixture_session(expire_on_commit=False) as sess4:
+            u = sess4.merge(u)
+            assert len(u.addresses)
+            for a in u.addresses:
+                assert a.user is u
 
-        def go():
-            sess4.flush()
+            def go():
+                sess4.flush()
 
-        # no changes; therefore flush should do nothing
-        self.assert_sql_count(testing.db, go, 0)
-        eq_(load.called, 12)
+            # no changes; therefore flush should do nothing
+            self.assert_sql_count(testing.db, go, 0)
 
-        # test with "dontload" merge
-        sess5 = create_session()
-        u = sess5.merge(u, load=False)
-        assert len(u.addresses)
-        for a in u.addresses:
-            assert a.user is u
+            sess4.commit()
 
-        def go():
-            sess5.flush()
+        eq_(load.called, 12)
 
-        # no changes; therefore flush should do nothing
-        # but also, load=False wipes out any difference in committed state,
-        # so no flush at all
-        self.assert_sql_count(testing.db, go, 0)
+        # test with "dontload" merge
+        with fixture_session(expire_on_commit=False) as sess5:
+            u = sess5.merge(u, load=False)
+            assert len(u.addresses)
+            for a in u.addresses:
+                assert a.user is u
+
+            def go():
+                sess5.flush()
+
+            # no changes; therefore flush should do nothing
+            # but also, load=False wipes out any difference in committed state,
+            # so no flush at all
+            self.assert_sql_count(testing.db, go, 0)
         eq_(load.called, 15)
 
-        sess4 = create_session()
-        u = sess4.merge(u, load=False)
-        # post merge change
-        u.addresses[1].email_address = "afafds"
+        with fixture_session(expire_on_commit=False) as sess4, sess4.begin():
+            u = sess4.merge(u, load=False)
+            # post merge change
+            u.addresses[1].email_address = "afafds"
 
-        def go():
-            sess4.flush()
+            def go():
+                sess4.flush()
 
-        # afafds change flushes
-        self.assert_sql_count(testing.db, go, 1)
+            # afafds change flushes
+            self.assert_sql_count(testing.db, go, 1)
         eq_(load.called, 18)
 
-        sess5 = create_session()
-        u2 = sess5.query(User).get(u.id)
-        eq_(u2.name, "fred2")
-        eq_(u2.addresses[1].email_address, "afafds")
+        with fixture_session(expire_on_commit=False) as sess5:
+            u2 = sess5.query(User).get(u.id)
+            eq_(u2.name, "fred2")
+            eq_(u2.addresses[1].email_address, "afafds")
         eq_(load.called, 21)
 
     def test_dont_send_neverset_to_get(self):
@@ -754,7 +755,7 @@ class MergeTest(_fixtures.FixtureTest):
         mapper(CompositePk, composite_pk_table)
         cp1 = CompositePk(j=1, k=1)
 
-        sess = Session()
+        sess = fixture_session()
 
         rec = []
 
@@ -788,7 +789,7 @@ class MergeTest(_fixtures.FixtureTest):
         u1 = User(id=5, name="some user")
         cp1 = CompositePk(j=1, k=1)
         u1.elements.append(cp1)
-        sess = Session()
+        sess = fixture_session()
 
         rec = []
 
@@ -819,7 +820,7 @@ class MergeTest(_fixtures.FixtureTest):
             properties={"user": relationship(User, cascade="save-update")},
         )
         mapper(User, users)
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(name="fred")
         a1 = Address(email_address="asdf", user=u1)
         sess.add(a1)
@@ -858,18 +859,18 @@ class MergeTest(_fixtures.FixtureTest):
         load = self.load_tracker(User)
         self.load_tracker(Address, load)
 
-        sess = create_session()
+        sess = fixture_session(expire_on_commit=False)
         u = User(name="fred")
         a1 = Address(email_address="foo@bar")
         a2 = Address(email_address="foo@quux")
         u.addresses.extend([a1, a2])
 
         sess.add(u)
-        sess.flush()
+        sess.commit()
 
         eq_(load.called, 0)
 
-        sess2 = create_session()
+        sess2 = fixture_session()
         u2 = sess2.query(User).get(u.id)
         eq_(load.called, 1)
 
@@ -878,7 +879,7 @@ class MergeTest(_fixtures.FixtureTest):
         eq_(u2.addresses[1].email_address, "addr 2 modified")
         eq_(load.called, 3)
 
-        sess3 = create_session()
+        sess3 = fixture_session()
         u3 = sess3.query(User).get(u.id)
         eq_(load.called, 4)
 
@@ -902,23 +903,23 @@ class MergeTest(_fixtures.FixtureTest):
         a1 = Address(id=1, email_address="a1", user=u1)
         u2 = User(id=2, name="u2")
 
-        sess = create_session()
+        sess = fixture_session(expire_on_commit=False)
         sess.add_all([a1, u2])
-        sess.flush()
+        sess.commit()
 
         a1.user = u2
 
-        sess2 = create_session()
-        a2 = sess2.merge(a1)
-        eq_(attributes.get_history(a2, "user"), ([u2], (), ()))
-        assert a2 in sess2.dirty
+        with fixture_session(expire_on_commit=False) as sess2:
+            a2 = sess2.merge(a1)
+            eq_(attributes.get_history(a2, "user"), ([u2], (), ()))
+            assert a2 in sess2.dirty
 
         sess.refresh(a1)
 
-        sess2 = create_session()
-        a2 = sess2.merge(a1, load=False)
-        eq_(attributes.get_history(a2, "user"), ((), [u1], ()))
-        assert a2 not in sess2.dirty
+        with fixture_session(expire_on_commit=False) as sess2:
+            a2 = sess2.merge(a1, load=False)
+            eq_(attributes.get_history(a2, "user"), ((), [u1], ()))
+            assert a2 not in sess2.dirty
 
     def test_many_to_many_cascade(self):
         items, Order, orders, order_items, Item = (
@@ -942,41 +943,41 @@ class MergeTest(_fixtures.FixtureTest):
         load = self.load_tracker(Order)
         self.load_tracker(Item, load)
 
-        sess = create_session()
+        with fixture_session(expire_on_commit=False) as sess:
 
-        i1 = Item()
-        i1.description = "item 1"
+            i1 = Item()
+            i1.description = "item 1"
 
-        i2 = Item()
-        i2.description = "item 2"
+            i2 = Item()
+            i2.description = "item 2"
 
-        o = Order()
-        o.description = "order description"
-        o.items.append(i1)
-        o.items.append(i2)
+            o = Order()
+            o.description = "order description"
+            o.items.append(i1)
+            o.items.append(i2)
 
-        sess.add(o)
-        sess.flush()
+            sess.add(o)
+            sess.commit()
 
         eq_(load.called, 0)
 
-        sess2 = create_session()
-        o2 = sess2.query(Order).get(o.id)
-        eq_(load.called, 1)
+        with fixture_session(expire_on_commit=False) as sess2:
+            o2 = sess2.query(Order).get(o.id)
+            eq_(load.called, 1)
 
-        o.items[1].description = "item 2 modified"
-        sess2.merge(o)
-        eq_(o2.items[1].description, "item 2 modified")
-        eq_(load.called, 3)
+            o.items[1].description = "item 2 modified"
+            sess2.merge(o)
+            eq_(o2.items[1].description, "item 2 modified")
+            eq_(load.called, 3)
 
-        sess3 = create_session()
-        o3 = sess3.query(Order).get(o.id)
-        eq_(load.called, 4)
+        with fixture_session(expire_on_commit=False) as sess3:
+            o3 = sess3.query(Order).get(o.id)
+            eq_(load.called, 4)
 
-        o.description = "desc modified"
-        sess3.merge(o)
-        eq_(load.called, 6)
-        eq_(o3.description, "desc modified")
+            o.description = "desc modified"
+            sess3.merge(o)
+            eq_(load.called, 6)
+            eq_(o3.description, "desc modified")
 
     def test_one_to_one_cascade(self):
         users, Address, addresses, User = (
@@ -997,7 +998,7 @@ class MergeTest(_fixtures.FixtureTest):
         )
         load = self.load_tracker(User)
         self.load_tracker(Address, load)
-        sess = create_session()
+        sess = fixture_session(expire_on_commit=False)
 
         u = User()
         u.id = 7
@@ -1007,11 +1008,11 @@ class MergeTest(_fixtures.FixtureTest):
         u.address = a1
 
         sess.add(u)
-        sess.flush()
+        sess.commit()
 
         eq_(load.called, 0)
 
-        sess2 = create_session()
+        sess2 = fixture_session()
         u2 = sess2.query(User).get(7)
         eq_(load.called, 1)
         u2.name = "fred2"
@@ -1039,7 +1040,7 @@ class MergeTest(_fixtures.FixtureTest):
                 )
             },
         )
-        sess = sessionmaker()()
+        sess = fixture_session()
         u = User(
             id=7,
             name="fred",
@@ -1065,7 +1066,7 @@ class MergeTest(_fixtures.FixtureTest):
 
         mapper(User, users)
 
-        sess = create_session()
+        sess = fixture_session()
         u = User()
         assert_raises_message(
             sa.exc.InvalidRequestError,
@@ -1104,13 +1105,13 @@ class MergeTest(_fixtures.FixtureTest):
                 Address(email_address="ad2"),
             ],
         )
-        sess = create_session()
+        sess = fixture_session()
         sess.add(u)
         sess.flush()
         sess.close()
         assert "user" in u.addresses[1].__dict__
 
-        sess = create_session()
+        sess = fixture_session()
         u2 = sess.merge(u, load=False)
         assert "user" in u2.addresses[1].__dict__
         eq_(u2.addresses[1].user, User(id=7, name="fred"))
@@ -1119,7 +1120,7 @@ class MergeTest(_fixtures.FixtureTest):
         assert "user" not in u2.addresses[1].__dict__
         sess.close()
 
-        sess = create_session()
+        sess = fixture_session()
         u = sess.merge(u2, load=False)
         assert "user" not in u.addresses[1].__dict__
         eq_(u.addresses[1].user, User(id=7, name="fred"))
@@ -1150,21 +1151,21 @@ class MergeTest(_fixtures.FixtureTest):
             users,
             properties={"addresses": relationship(mapper(Address, addresses))},
         )
-        sess = create_session()
-        u = User()
-        u.id = 7
-        u.name = "fred"
-        a1 = Address()
-        a1.email_address = "foo@bar.com"
-        u.addresses.append(a1)
+        with fixture_session(expire_on_commit=False) as sess:
+            u = User()
+            u.id = 7
+            u.name = "fred"
+            a1 = Address()
+            a1.email_address = "foo@bar.com"
+            u.addresses.append(a1)
 
-        sess.add(u)
-        sess.flush()
+            sess.add(u)
+            sess.commit()
 
-        sess2 = create_session()
+        sess2 = fixture_session()
         u2 = sess2.query(User).options(sa.orm.joinedload("addresses")).get(7)
 
-        sess3 = create_session()
+        sess3 = fixture_session()
         u3 = sess3.merge(u2, load=False)  # noqa
 
         def go():
@@ -1182,15 +1183,15 @@ class MergeTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = create_session()
-        u = User()
-        u.id = 7
-        u.name = "fred"
-        sess.add(u)
-        sess.flush()
+        with fixture_session(expire_on_commit=False) as sess:
+            u = User()
+            u.id = 7
+            u.name = "fred"
+            sess.add(u)
+            sess.commit()
 
         u.name = "ed"
-        sess2 = create_session()
+        sess2 = fixture_session()
         try:
             sess2.merge(u, load=False)
             assert False
@@ -1203,7 +1204,7 @@ class MergeTest(_fixtures.FixtureTest):
 
         u2 = sess2.query(User).get(7)
 
-        sess3 = create_session()
+        sess3 = fixture_session()
         u3 = sess3.merge(u2, load=False)  # noqa
         assert not sess3.dirty
 
@@ -1230,7 +1231,7 @@ class MergeTest(_fixtures.FixtureTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         u = User()
         u.id = 7
         u.name = "fred"
@@ -1243,7 +1244,7 @@ class MergeTest(_fixtures.FixtureTest):
 
         assert u.addresses[0].user is u
 
-        sess2 = create_session()
+        sess2 = fixture_session()
         u2 = sess2.merge(u, load=False)
         assert not sess2.dirty
 
@@ -1285,33 +1286,33 @@ class MergeTest(_fixtures.FixtureTest):
                 )
             },
         )
-        sess = create_session()
-        u = User()
-        u.id = 7
-        u.name = "fred"
-        a1 = Address()
-        a1.email_address = "foo@bar.com"
-        u.addresses.append(a1)
-        sess.add(u)
-        sess.flush()
+        with fixture_session(expire_on_commit=False) as sess:
+            u = User()
+            u.id = 7
+            u.name = "fred"
+            a1 = Address()
+            a1.email_address = "foo@bar.com"
+            u.addresses.append(a1)
+            sess.add(u)
+            sess.commit()
 
         assert u.addresses[0].user is u
 
-        sess2 = create_session()
-        u2 = sess2.merge(u, load=False)
-        assert not sess2.dirty
-        a2 = u2.addresses[0]
-        a2.email_address = "somenewaddress"
-        assert not sa.orm.object_mapper(a2)._is_orphan(
-            sa.orm.attributes.instance_state(a2)
-        )
-        sess2.flush()
-        sess2.expunge_all()
+        with fixture_session(expire_on_commit=False) as sess2:
+            u2 = sess2.merge(u, load=False)
+            assert not sess2.dirty
+            a2 = u2.addresses[0]
+            a2.email_address = "somenewaddress"
+            assert not sa.orm.object_mapper(a2)._is_orphan(
+                sa.orm.attributes.instance_state(a2)
+            )
+            sess2.commit()
 
-        eq_(
-            sess2.query(User).get(u2.id).addresses[0].email_address,
-            "somenewaddress",
-        )
+        with fixture_session() as sess2:
+            eq_(
+                sess2.query(User).get(u2.id).addresses[0].email_address,
+                "somenewaddress",
+            )
 
         # this use case is not supported; this is with a pending Address
         # on the pre-merged object, and we currently don't support
@@ -1321,10 +1322,11 @@ class MergeTest(_fixtures.FixtureTest):
         # instances.  so if we start supporting 'dirty' with load=False,
         # this test will need to pass
 
-        sess = create_session()
+        sess2 = fixture_session()
+        sess = fixture_session()
         u = sess.query(User).get(7)
         u.addresses.append(Address())
-        sess2 = create_session()
+        sess2 = fixture_session()
         try:
             u2 = sess2.merge(u, load=False)
             assert False
@@ -1359,7 +1361,7 @@ class MergeTest(_fixtures.FixtureTest):
 
         mapper(User, users, properties={"uid": synonym("id")})
 
-        sess = create_session()
+        sess = fixture_session()
         u = User()
         u.name = "ed"
         sess.add(u)
@@ -1377,7 +1379,7 @@ class MergeTest(_fixtures.FixtureTest):
             self.tables.users,
         )
 
-        s = create_session(autoflush=True, autocommit=False)
+        s = fixture_session(autoflush=True, autocommit=False)
         mapper(
             User,
             users,
@@ -1406,7 +1408,7 @@ class MergeTest(_fixtures.FixtureTest):
             self.tables.users,
         )
 
-        sess = create_session(autoflush=True, autocommit=False)
+        sess = fixture_session(autoflush=True, autocommit=False)
         mapper(
             User,
             users,
@@ -1446,7 +1448,7 @@ class MergeTest(_fixtures.FixtureTest):
         u = User(
             id=7, name="fred", addresses=[Address(id=1, email_address="fred1")]
         )
-        sess = create_session(autoflush=True, autocommit=False)
+        sess = fixture_session(autoflush=True, autocommit=False)
         sess.add(u)
         sess.commit()
 
@@ -1471,7 +1473,7 @@ class MergeTest(_fixtures.FixtureTest):
 
         mapper(User, users)
         u = User(id=7)
-        sess = create_session(autoflush=True, autocommit=False)
+        sess = fixture_session(autoflush=True, autocommit=False)
         u = sess.merge(u)
         assert not bool(attributes.instance_state(u).expired_attributes)
 
@@ -1493,18 +1495,18 @@ class MergeTest(_fixtures.FixtureTest):
 
         opt1, opt2 = Option(), Option()
 
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         umapper = mapper(User, users)
 
         sess.add_all([User(id=1, name="u1"), User(id=2, name="u2")])
         sess.commit()
 
-        sess2 = sessionmaker()()
+        sess2 = fixture_session()
         s2_users = sess2.query(User).options(opt2).all()
 
         # test 1.  no options are replaced by merge options
-        sess = sessionmaker()()
+        sess = fixture_session()
         s1_users = sess.query(User).all()
 
         for u in s1_users:
@@ -1521,7 +1523,7 @@ class MergeTest(_fixtures.FixtureTest):
             eq_(ustate.load_options, set([opt2]))
 
         # test 2.  present options are replaced by merge options
-        sess = sessionmaker()()
+        sess = fixture_session()
         s1_users = sess.query(User).options(opt1).all()
         for u in s1_users:
             ustate = attributes.instance_state(u)
@@ -1559,7 +1561,7 @@ class MergeTest(_fixtures.FixtureTest):
             Order(description="o3", address=Address(email_address="c")),
         ]
 
-        sess = Session()
+        sess = fixture_session()
         sess.merge(u1)
         sess.flush()
 
@@ -1593,7 +1595,7 @@ class MergeTest(_fixtures.FixtureTest):
             Order(description="o3", address=Address(id=1, email_address="c")),
         ]
 
-        sess = Session()
+        sess = fixture_session()
         sess.merge(u1)
         sess.flush()
 
@@ -1615,7 +1617,7 @@ class MergeTest(_fixtures.FixtureTest):
         mapper(Order, orders, properties={"address": relationship(Address)})
         mapper(Address, addresses)
 
-        sess = Session()
+        sess = fixture_session()
         sess.add(Address(id=1, email_address="z"))
         sess.commit()
 
@@ -1626,7 +1628,7 @@ class MergeTest(_fixtures.FixtureTest):
             Order(description="o3", address=Address(id=1, email_address="c")),
         ]
 
-        sess = Session()
+        sess = fixture_session()
         sess.merge(u1)
         sess.flush()
 
@@ -1718,7 +1720,7 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest):
     # address.user_id is 1, you get a load.
     def test_persistent_access_none(self):
         User, Address = self.classes.User, self.classes.Address
-        s = Session()
+        s = fixture_session()
 
         def go():
             u1 = User(id=1, addresses=[Address(id=1), Address(id=2)])
@@ -1728,7 +1730,7 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest):
 
     def test_persistent_access_one(self):
         User, Address = self.classes.User, self.classes.Address
-        s = Session()
+        s = fixture_session()
 
         def go():
             u1 = User(id=1, addresses=[Address(id=1), Address(id=2)])
@@ -1740,7 +1742,7 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest):
 
     def test_persistent_access_two(self):
         User, Address = self.classes.User, self.classes.Address
-        s = Session()
+        s = fixture_session()
 
         def go():
             u1 = User(id=1, addresses=[Address(id=1), Address(id=2)])
@@ -1759,7 +1761,7 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest):
     # persistent.
     def test_pending_access_one(self):
         User, Address = self.classes.User, self.classes.Address
-        s = Session()
+        s = fixture_session()
 
         def go():
             u1 = User(
@@ -1778,7 +1780,7 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest):
 
     def test_pending_access_two(self):
         User, Address = self.classes.User, self.classes.Address
-        s = Session()
+        s = fixture_session()
 
         def go():
             u1 = User(
@@ -1819,7 +1821,7 @@ class DeferredMergeTest(fixtures.MappedTest):
         # 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)})
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         b = Book(
             id=1,
@@ -1864,7 +1866,7 @@ class DeferredMergeTest(fixtures.MappedTest):
     def test_deferred_column_query(self):
         Book, book = self.classes.Book, self.tables.book
         mapper(Book, book)
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         b = Book(
             id=1,
@@ -1929,7 +1931,7 @@ class MutableMergeTest(fixtures.MappedTest):
         Data, data = self.classes.Data, self.tables.data
 
         mapper(Data, data)
-        sess = sessionmaker()()
+        sess = fixture_session()
         d = Data(data=["this", "is", "a", "list"])
 
         sess.add(d)
@@ -1959,7 +1961,7 @@ class CompositeNullPksTest(fixtures.MappedTest):
         Data, data = self.classes.Data, self.tables.data
 
         mapper(Data, data)
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         d1 = Data(pk1="someval", pk2=None)
 
@@ -1972,7 +1974,7 @@ class CompositeNullPksTest(fixtures.MappedTest):
         Data, data = self.classes.Data, self.tables.data
 
         mapper(Data, data, allow_partial_pks=False)
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         d1 = Data(pk1="someval", pk2=None)
 
@@ -2022,7 +2024,7 @@ class LoadOnPendingTest(fixtures.MappedTest):
             },
         )
         mapper(self.classes.Bug, self.tables.bugs)
-        self.sess = sessionmaker()()
+        self.sess = fixture_session()
 
     def _merge_delete_orphan_o2o_with(self, bug):
         # create a transient rock with passed bug
@@ -2104,7 +2106,7 @@ class PolymorphicOnTest(fixtures.MappedTest):
             inherits=employee_mapper,
             polymorphic_identity="engineer",
         )
-        self.sess = sessionmaker()()
+        self.sess = fixture_session()
 
     def test_merge_polymorphic_on(self):
         """merge() should succeed with a polymorphic object even when
index d814b0cab86c9821317b39a0856fc98bb7c6117e..a609c89aebf5b227f756174903711b7b229627d5 100644 (file)
@@ -14,7 +14,6 @@ from sqlalchemy import testing
 from sqlalchemy import TypeDecorator
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
-from sqlalchemy.orm import Session
 from sqlalchemy.orm.session import make_transient
 from sqlalchemy.testing import assert_raises
 from sqlalchemy.testing import assert_raises_message
@@ -22,7 +21,7 @@ from sqlalchemy.testing import eq_
 from sqlalchemy.testing import expect_warnings
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import ne_
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from test.orm import _fixtures
@@ -108,7 +107,7 @@ class NaturalPKTest(fixtures.MappedTest):
 
         mapper(User, users)
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(username="jack", fullname="jack")
 
         sess.add(u1)
@@ -134,7 +133,7 @@ class NaturalPKTest(fixtures.MappedTest):
 
         mapper(User, users)
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(username="jack", fullname="jack")
 
         sess.add(u1)
@@ -161,7 +160,7 @@ class NaturalPKTest(fixtures.MappedTest):
 
         mapper(User, users)
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(username="jack", fullname="jack")
 
         sess.add(u1)
@@ -180,7 +179,7 @@ class NaturalPKTest(fixtures.MappedTest):
 
         mapper(User, users)
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(username="jack", fullname="jack")
 
         sess.add(u1)
@@ -196,7 +195,7 @@ class NaturalPKTest(fixtures.MappedTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(username="jack", fullname="jack")
 
         sess.add(u1)
@@ -235,7 +234,7 @@ class NaturalPKTest(fixtures.MappedTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(username="jack", fullname="jack")
         u1.addresses.append(Address(email="jack1"))
         u1.addresses.append(Address(email="jack2"))
@@ -324,7 +323,7 @@ class NaturalPKTest(fixtures.MappedTest):
             properties={"user": relationship(User, passive_updates=False)},
         )
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = sess.query(User).first()
         a1, a2 = sess.query(Address).all()
         u1.username = "ed"
@@ -353,7 +352,7 @@ class NaturalPKTest(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         a1 = Address(email="jack1")
         a2 = Address(email="jack2")
         a3 = Address(email="fred")
@@ -432,7 +431,7 @@ class NaturalPKTest(fixtures.MappedTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(username="jack", fullname="jack")
         sess.add(u1)
         sess.flush()
@@ -487,7 +486,7 @@ class NaturalPKTest(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         a1 = Address(email="jack1")
         a2 = Address(email="jack2")
 
@@ -570,7 +569,7 @@ class NaturalPKTest(fixtures.MappedTest):
         )
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(username="jack")
         u2 = User(username="fred")
         i1 = Item(itemname="item1")
@@ -639,7 +638,7 @@ class NaturalPKTest(fixtures.MappedTest):
             },
         )
 
-        s = Session()
+        s = fixture_session()
         a1 = Address(email="jack1")
         u1 = User(username="jack", fullname="jack")
 
@@ -756,7 +755,7 @@ class TransientExceptionTesst(_fixtures.FixtureTest):
         mapper(User, users)
         mapper(Address, addresses, properties={"user": relationship(User)})
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(id=5, name="u1")
         ad1 = Address(email_address="e1", user=u1)
         sess.add_all([u1, ad1])
@@ -809,7 +808,7 @@ class ReversePKsTest(fixtures.MappedTest):
 
         mapper(User, user)
 
-        session = sa.orm.sessionmaker()()
+        session = fixture_session()
 
         a_published = User(1, PUBLISHED, "a")
         session.add(a_published)
@@ -849,7 +848,7 @@ class ReversePKsTest(fixtures.MappedTest):
 
         mapper(User, user)
 
-        session = sa.orm.sessionmaker()()
+        session = fixture_session()
 
         a_published = User(1, PUBLISHED, "a")
         session.add(a_published)
@@ -916,7 +915,7 @@ class SelfReferentialTest(fixtures.MappedTest):
             },
         )
 
-        sess = Session()
+        sess = fixture_session()
         n1 = Node(name="n1")
         sess.add(n1)
         n2 = Node(name="n11", parentnode=n1)
@@ -954,7 +953,7 @@ class SelfReferentialTest(fixtures.MappedTest):
             },
         )
 
-        sess = Session()
+        sess = fixture_session()
         n1 = Node(name="n1")
         n1.children.append(Node(name="n11"))
         n1.children.append(Node(name="n12"))
@@ -995,7 +994,7 @@ class SelfReferentialTest(fixtures.MappedTest):
             },
         )
 
-        sess = Session()
+        sess = fixture_session()
         n1 = Node(name="n1")
         n11 = Node(name="n11", parentnode=n1)
         n12 = Node(name="n12", parentnode=n1)
@@ -1082,7 +1081,7 @@ class NonPKCascadeTest(fixtures.MappedTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(username="jack", fullname="jack")
         u1.addresses.append(Address(email="jack1"))
         u1.addresses.append(Address(email="jack2"))
@@ -1230,7 +1229,7 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         a1 = Address(username="ed", email="ed@host1")
         u1 = User(username="ed", addresses=[a1])
         u2 = User(username="jack")
@@ -1271,7 +1270,7 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         a1 = Address(username="ed", email="ed@host1")
         u1 = User(username="ed", addresses=[a1])
         u2 = User(username="jack")
@@ -1318,7 +1317,7 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(username="jack")
         if uselist:
             a1 = Address(user=[u1], email="foo@bar")
@@ -1358,7 +1357,7 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(username="jack")
         u2 = User(username="ed")
         a1 = Address(user=u1, email="foo@bar")
@@ -1383,7 +1382,7 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
             properties={"user": relationship(User, passive_updates=True)},
         )
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(username="ed")
         a1 = Address(user=u1, email="ed@host1")
 
@@ -1445,7 +1444,7 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         a1, a2 = (
             Address(username="ed", email="ed@host1"),
             Address(username="ed", email="ed@host2"),
@@ -1625,7 +1624,7 @@ class JoinedInheritanceTest(fixtures.MappedTest):
     def _test_pk(self, passive_updates):
         (Engineer,) = self.classes("Engineer")
         self._mapping_fixture(False, passive_updates)
-        sess = sa.orm.sessionmaker()()
+        sess = fixture_session()
 
         e1 = Engineer(name="dilbert", primary_language="java")
         sess.add(e1)
@@ -1655,7 +1654,7 @@ class JoinedInheritanceTest(fixtures.MappedTest):
 
         self._mapping_fixture(False, passive_updates)
 
-        sess = sa.orm.sessionmaker()()
+        sess = fixture_session()
 
         m1 = Manager(name="dogbert", paperwork="lots")
         e1, e2 = (
@@ -1700,7 +1699,7 @@ class JoinedInheritanceTest(fixtures.MappedTest):
 
         self._mapping_fixture(True, passive_updates)
 
-        sess = sa.orm.sessionmaker()()
+        sess = fixture_session()
 
         o1 = Owner(name="dogbert", owner_name="dog")
         sess.add(o1)
@@ -1738,7 +1737,7 @@ class JoinedInheritanceTest(fixtures.MappedTest):
         Owner, Engineer = self.classes("Owner", "Engineer")
         self._mapping_fixture(True, passive_updates)
 
-        sess = sa.orm.sessionmaker()()
+        sess = fixture_session()
 
         m1 = Owner(name="dogbert", paperwork="lots", owner_name="dog")
         e1, e2 = (
@@ -1811,7 +1810,7 @@ class UnsortablePKTest(fixtures.MappedTest):
 
     def test_updates_sorted(self):
         Data = self.classes.Data
-        s = Session()
+        s = fixture_session()
 
         s.add_all(
             [
@@ -1903,7 +1902,7 @@ class JoinedInheritancePKOnFKTest(fixtures.MappedTest):
             polymorphic_identity="engineer",
         )
 
-        sess = sa.orm.sessionmaker()()
+        sess = fixture_session()
 
         e1 = Engineer(name="dilbert", primary_language="java")
         sess.add(e1)
index e40e815aa35a54efb7b6bf497f12193ab5a1ae18..bc32e322d4873dbb2c1b7c7b4e3d8faf184f7986 100644 (file)
@@ -16,6 +16,7 @@ from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing.assertsql import CompiledSQL
 from sqlalchemy.testing.entities import ComparableEntity
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from .inheritance._poly_fixtures import _PolymorphicAliasedJoins
 from .inheritance._poly_fixtures import _PolymorphicJoins
@@ -33,14 +34,14 @@ class _PolymorphicTestBase(object):
     __dialect__ = "default"
 
     def test_any_one(self):
-        sess = Session()
+        sess = fixture_session()
         any_ = Company.employees.of_type(Engineer).any(
             Engineer.primary_language == "cobol"
         )
         eq_(sess.query(Company).filter(any_).one(), self.c2)
 
     def test_any_two(self):
-        sess = Session()
+        sess = fixture_session()
         calias = aliased(Company)
         any_ = calias.employees.of_type(Engineer).any(
             Engineer.primary_language == "cobol"
@@ -48,26 +49,26 @@ class _PolymorphicTestBase(object):
         eq_(sess.query(calias).filter(any_).one(), self.c2)
 
     def test_any_three(self):
-        sess = Session()
+        sess = fixture_session()
         any_ = Company.employees.of_type(Boss).any(Boss.golf_swing == "fore")
         eq_(sess.query(Company).filter(any_).one(), self.c1)
 
     def test_any_four(self):
-        sess = Session()
+        sess = fixture_session()
         any_ = Company.employees.of_type(Manager).any(
             Manager.manager_name == "pointy"
         )
         eq_(sess.query(Company).filter(any_).one(), self.c1)
 
     def test_any_five(self):
-        sess = Session()
+        sess = fixture_session()
         any_ = Company.employees.of_type(Engineer).any(
             and_(Engineer.primary_language == "cobol")
         )
         eq_(sess.query(Company).filter(any_).one(), self.c2)
 
     def test_join_to_subclass_one(self):
-        sess = Session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join(Company.employees.of_type(Engineer))
@@ -77,7 +78,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_two(self):
-        sess = Session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join(Company.employees.of_type(Engineer), "machines")
@@ -87,7 +88,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_three(self):
-        sess = Session()
+        sess = fixture_session()
         eq_(
             sess.query(Company, Engineer)
             .join(Company.employees.of_type(Engineer))
@@ -97,7 +98,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_four(self):
-        sess = Session()
+        sess = fixture_session()
         # test [ticket:2093]
         eq_(
             sess.query(Company.company_id, Engineer)
@@ -108,7 +109,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_join_to_subclass_five(self):
-        sess = Session()
+        sess = fixture_session()
         eq_(
             sess.query(Company)
             .join(Company.employees.of_type(Engineer))
@@ -118,7 +119,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_with_polymorphic_join_compile_one(self):
-        sess = Session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(Company).join(
@@ -134,7 +135,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_with_polymorphic_join_exec_contains_eager_one(self):
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             wp = with_polymorphic(
@@ -163,7 +164,7 @@ class _PolymorphicTestBase(object):
     def test_with_polymorphic_join_exec_contains_eager_two(
         self, contains_eager_option
     ):
-        sess = Session()
+        sess = fixture_session()
 
         wp = with_polymorphic(Person, [Engineer, Manager], aliased=True)
         contains_eager_option = testing.resolve_lambda(
@@ -187,7 +188,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_with_polymorphic_any(self):
-        sess = Session()
+        sess = fixture_session()
         wp = with_polymorphic(Person, [Engineer], aliased=True)
         eq_(
             sess.query(Company.company_id)
@@ -201,7 +202,7 @@ class _PolymorphicTestBase(object):
         )
 
     def test_subqueryload_implicit_withpoly(self):
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -215,7 +216,7 @@ class _PolymorphicTestBase(object):
         self.assert_sql_count(testing.db, go, 4)
 
     def test_joinedload_implicit_withpoly(self):
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -229,7 +230,7 @@ class _PolymorphicTestBase(object):
         self.assert_sql_count(testing.db, go, 3)
 
     def test_subqueryload_explicit_withpoly(self):
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             target = with_polymorphic(Person, Engineer)
@@ -244,7 +245,7 @@ class _PolymorphicTestBase(object):
         self.assert_sql_count(testing.db, go, 4)
 
     def test_joinedload_explicit_withpoly(self):
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             target = with_polymorphic(Person, Engineer, flat=True)
@@ -259,7 +260,7 @@ class _PolymorphicTestBase(object):
         self.assert_sql_count(testing.db, go, 3)
 
     def test_joinedload_stacked_of_type(self):
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -467,7 +468,7 @@ class PolymorphicJoinsTest(_PolymorphicTestBase, _PolymorphicJoins):
         )
 
     def test_joinedload_explicit_with_unaliased_poly_compile(self):
-        sess = Session()
+        sess = fixture_session()
         target = with_polymorphic(Person, Engineer)
         q = (
             sess.query(Company)
@@ -481,7 +482,7 @@ class PolymorphicJoinsTest(_PolymorphicTestBase, _PolymorphicJoins):
         )
 
     def test_joinedload_explicit_with_flataliased_poly_compile(self):
-        sess = Session()
+        sess = fixture_session()
         target = with_polymorphic(Person, Engineer, flat=True)
         q = (
             sess.query(Company)
@@ -752,7 +753,7 @@ class SubclassRelationshipTest(
 
         Job_P = with_polymorphic(Job, SubJob, aliased=True, flat=True)
 
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(Job)
             .join(DataContainer.jobs)
@@ -782,7 +783,7 @@ class SubclassRelationshipTest(
 
         Job_A = aliased(Job)
 
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(Job)
             .join(DataContainer.jobs)
@@ -814,7 +815,7 @@ class SubclassRelationshipTest(
 
         Job_P = with_polymorphic(Job, SubJob)
 
-        s = Session()
+        s = fixture_session()
         q = s.query(DataContainer).join(DataContainer.jobs.of_type(Job_P))
         self.assert_compile(
             q,
@@ -832,7 +833,7 @@ class SubclassRelationshipTest(
             self.classes.SubJob,
         )
 
-        s = Session()
+        s = fixture_session()
         q = s.query(DataContainer).join(DataContainer.jobs.of_type(SubJob))
         # note the of_type() here renders JOIN for the Job->SubJob.
         # this is because it's using the SubJob mapper directly within
@@ -856,7 +857,7 @@ class SubclassRelationshipTest(
 
         Job_P = with_polymorphic(Job, SubJob, innerjoin=True)
 
-        s = Session()
+        s = fixture_session()
         q = s.query(DataContainer).join(DataContainer.jobs.of_type(Job_P))
         self.assert_compile(
             q,
@@ -875,7 +876,7 @@ class SubclassRelationshipTest(
 
         Job_A = aliased(Job)
 
-        s = Session()
+        s = fixture_session()
         q = s.query(DataContainer).join(DataContainer.jobs.of_type(Job_A))
         self.assert_compile(
             q,
@@ -894,7 +895,7 @@ class SubclassRelationshipTest(
 
         Job_P = with_polymorphic(Job, SubJob)
 
-        s = Session()
+        s = fixture_session()
         q = s.query(DataContainer).join(Job_P, DataContainer.jobs)
         self.assert_compile(
             q,
@@ -915,7 +916,7 @@ class SubclassRelationshipTest(
 
         Job_P = with_polymorphic(Job, SubJob, flat=True)
 
-        s = Session()
+        s = fixture_session()
         q = s.query(DataContainer).join(Job_P, DataContainer.jobs)
         self.assert_compile(
             q,
@@ -936,7 +937,7 @@ class SubclassRelationshipTest(
 
         Job_P = with_polymorphic(Job, SubJob, aliased=True)
 
-        s = Session()
+        s = fixture_session()
         q = s.query(DataContainer).join(Job_P, DataContainer.jobs)
         self.assert_compile(
             q,
@@ -1185,7 +1186,7 @@ class SubclassRelationshipTest3(
             B1 = aliased(B1, name="bbb")
             C1 = aliased(C1, name="ccc")
 
-        sess = Session()
+        sess = fixture_session()
         abc = sess.query(A1)
 
         if join_of_type:
index a487c17e6bc7e7c578bbc4c1ba3e8dea36658c66..ae9f9b3a1fa67a13d902cd88147d638bfdd4e52d 100644 (file)
@@ -1,10 +1,10 @@
 from sqlalchemy import ForeignKey
 from sqlalchemy import Integer
 from sqlalchemy import String
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -59,7 +59,7 @@ class O2OTest(fixtures.MappedTest):
             ),
         )
 
-        session = create_session()
+        session = fixture_session()
 
         j = Jack(number="101")
         session.add(j)
index b4befcea33b2d578a36a11189b827a57104c4757..b22b318e9b7a4d1fd55fa2998fab78ca734bf31f 100644 (file)
@@ -9,7 +9,6 @@ from sqlalchemy.orm import aliased
 from sqlalchemy.orm import attributes
 from sqlalchemy.orm import class_mapper
 from sqlalchemy.orm import column_property
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import defaultload
 from sqlalchemy.orm import defer
 from sqlalchemy.orm import exc as orm_exc
@@ -18,7 +17,6 @@ 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 strategy_options
 from sqlalchemy.orm import subqueryload
 from sqlalchemy.orm import synonym
@@ -27,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 eq_
+from sqlalchemy.testing.fixtures import fixture_session
 from test.orm import _fixtures
 from .inheritance._poly_fixtures import _Polymorphic
 from .inheritance._poly_fixtures import Company
@@ -205,7 +204,7 @@ class LoadTest(PathTest, QueryTest):
     def test_gen_path_attr_str_not_mapped(self):
         OrderWProp = self.classes.OrderWProp
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(OrderWProp).options(defer("some_attr"))
 
         assert_raises_message(
@@ -280,7 +279,7 @@ class OfTypePathingTest(PathTest, QueryTest):
             SubAddr.sub_attr
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
         self._assert_path_result(
             l1,
@@ -297,7 +296,7 @@ class OfTypePathingTest(PathTest, QueryTest):
             .defer(SubAddr.sub_attr)
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
         self._assert_path_result(
             l1,
@@ -310,7 +309,7 @@ class OfTypePathingTest(PathTest, QueryTest):
 
         l1 = defaultload(User.addresses.of_type(SubAddr)).defer("sub_attr")
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
         self._assert_path_result(
             l1,
@@ -327,7 +326,7 @@ class OfTypePathingTest(PathTest, QueryTest):
             .defer("sub_attr")
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
         self._assert_path_result(
             l1,
@@ -342,7 +341,7 @@ class OfTypePathingTest(PathTest, QueryTest):
             SubAddr.dings
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
         self._assert_path_result(
             l1, q, [(User, "addresses"), (User, "addresses", SubAddr, "dings")]
@@ -357,7 +356,7 @@ class OfTypePathingTest(PathTest, QueryTest):
             .joinedload(SubAddr.dings)
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
         self._assert_path_result(
             l1, q, [(User, "addresses"), (User, "addresses", SubAddr, "dings")]
@@ -368,7 +367,7 @@ class OfTypePathingTest(PathTest, QueryTest):
 
         l1 = defaultload(User.addresses.of_type(SubAddr)).joinedload("dings")
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
         self._assert_path_result(
             l1, q, [(User, "addresses"), (User, "addresses", SubAddr, "dings")]
@@ -383,7 +382,7 @@ class OfTypePathingTest(PathTest, QueryTest):
             .defer("sub_attr")
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
         self._assert_path_result(
             l1,
@@ -401,7 +400,7 @@ class OptionsTest(PathTest, QueryTest):
     def test_get_path_one_level_string(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
 
         opt = self._option_fixture("addresses")
@@ -410,7 +409,7 @@ class OptionsTest(PathTest, QueryTest):
     def test_get_path_one_level_attribute(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
 
         opt = self._option_fixture(User.addresses)
@@ -422,7 +421,7 @@ class OptionsTest(PathTest, QueryTest):
         # ensure "current path" is fully consumed before
         # matching against current entities.
         # see [ticket:2098]
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
         opt = self._option_fixture("email_address", "id")
         q = sess.query(Address)._with_current_path(
@@ -435,7 +434,7 @@ class OptionsTest(PathTest, QueryTest):
     def test_get_path_one_level_with_unrelated(self):
         Order = self.classes.Order
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(Order)
         opt = self._option_fixture("addresses")
         self._assert_path_result(opt, q, [])
@@ -447,7 +446,7 @@ class OptionsTest(PathTest, QueryTest):
             self.classes.Order,
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
 
         opt = self._option_fixture("orders.items.keywords")
@@ -468,7 +467,7 @@ class OptionsTest(PathTest, QueryTest):
             self.classes.Order,
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
 
         opt = self._option_fixture(User.orders, Order.items, Item.keywords)
@@ -489,7 +488,7 @@ class OptionsTest(PathTest, QueryTest):
             self.classes.Order,
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(Item)._with_current_path(
             self._make_path_registry([User, "orders", Order, "items"])
         )
@@ -504,7 +503,7 @@ class OptionsTest(PathTest, QueryTest):
             self.classes.Order,
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(Item)._with_current_path(
             self._make_path_registry([User, "orders", Order, "items"])
         )
@@ -519,7 +518,7 @@ class OptionsTest(PathTest, QueryTest):
             self.classes.Order,
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(Item)._with_current_path(
             self._make_path_registry([User, "orders", Order, "items"])
         )
@@ -537,7 +536,7 @@ class OptionsTest(PathTest, QueryTest):
             self.classes.Order,
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(Item)._with_current_path(
             self._make_path_registry([User, "orders", Order, "items"])
         )
@@ -555,7 +554,7 @@ class OptionsTest(PathTest, QueryTest):
             self.classes.Order,
         )
 
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(Item)._with_current_path(
             self._make_path_registry(
                 [inspect(aliased(User)), "orders", Order, "items"]
@@ -588,7 +587,7 @@ class OptionsTest(PathTest, QueryTest):
         )
 
         ac = aliased(User)
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(Item)._with_current_path(
             self._make_path_registry([inspect(ac), "orders", Order, "items"])
         )
@@ -602,7 +601,7 @@ class OptionsTest(PathTest, QueryTest):
     def test_from_base_to_subclass_attr(self):
         Dingaling, Address = self.classes.Dingaling, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         class SubAddr(Address):
             pass
@@ -621,7 +620,7 @@ class OptionsTest(PathTest, QueryTest):
     def test_from_subclass_to_subclass_attr(self):
         Dingaling, Address = self.classes.Dingaling, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         class SubAddr(Address):
             pass
@@ -640,7 +639,7 @@ class OptionsTest(PathTest, QueryTest):
     def test_from_base_to_base_attr_via_subclass(self):
         Dingaling, Address = self.classes.Dingaling, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         class SubAddr(Address):
             pass
@@ -661,7 +660,7 @@ class OptionsTest(PathTest, QueryTest):
     def test_of_type(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         class SubAddr(Address):
             pass
@@ -692,7 +691,7 @@ class OptionsTest(PathTest, QueryTest):
     def test_of_type_string_attr(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         class SubAddr(Address):
             pass
@@ -725,7 +724,7 @@ class OptionsTest(PathTest, QueryTest):
             self.classes.Address,
         )
 
-        sess = Session()
+        sess = fixture_session()
 
         class SubAddr(Address):
             pass
@@ -760,7 +759,7 @@ class OptionsTest(PathTest, QueryTest):
     def test_aliased_single(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         ualias = aliased(User)
         q = sess.query(ualias)
         opt = self._option_fixture(ualias.addresses)
@@ -769,7 +768,7 @@ class OptionsTest(PathTest, QueryTest):
     def test_with_current_aliased_single(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
         ualias = aliased(User)
         q = sess.query(ualias)._with_current_path(
             self._make_path_registry([Address, "user"])
@@ -780,7 +779,7 @@ class OptionsTest(PathTest, QueryTest):
     def test_with_current_aliased_single_nonmatching_option(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
         ualias = aliased(User)
         q = sess.query(User)._with_current_path(
             self._make_path_registry([Address, "user"])
@@ -791,7 +790,7 @@ class OptionsTest(PathTest, QueryTest):
     def test_with_current_aliased_single_nonmatching_entity(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
         ualias = aliased(User)
         q = sess.query(ualias)._with_current_path(
             self._make_path_registry([Address, "user"])
@@ -803,7 +802,7 @@ class OptionsTest(PathTest, QueryTest):
         Item = self.classes.Item
         Order = self.classes.Order
         opt = self._option_fixture(Order.items)
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(Item, Order)
         self._assert_path_result(opt, q, [(Order, "items")])
 
@@ -811,7 +810,7 @@ class OptionsTest(PathTest, QueryTest):
         Item = self.classes.Item
         Order = self.classes.Order
         opt = self._option_fixture("items")
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(Item, Order)
         self._assert_path_result(opt, q, [])
 
@@ -819,7 +818,7 @@ class OptionsTest(PathTest, QueryTest):
         Item = self.classes.Item
         Order = self.classes.Order
         opt = self._option_fixture("items")
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(Item.id, Order.id)
         self._assert_path_result(opt, q, [])
 
@@ -828,7 +827,7 @@ class OptionsTest(PathTest, QueryTest):
         Item = self.classes.Item
         Order = self.classes.Order
         opt = self._option_fixture(User.orders)
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(Item)._with_current_path(
             self._make_path_registry([User, "orders", Order, "items"])
         )
@@ -837,7 +836,7 @@ class OptionsTest(PathTest, QueryTest):
     def test_chained(self):
         User = self.classes.User
         Order = self.classes.Order
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
         opt = self._option_fixture(User.orders).joinedload("items")
         self._assert_path_result(
@@ -848,7 +847,7 @@ class OptionsTest(PathTest, QueryTest):
         User = self.classes.User
         Order = self.classes.Order
         Item = self.classes.Item
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
         opt = self._option_fixture("orders.items").joinedload("keywords")
         self._assert_path_result(
@@ -865,7 +864,7 @@ class OptionsTest(PathTest, QueryTest):
         User = self.classes.User
         Order = self.classes.Order
         Item = self.classes.Item
-        sess = Session()
+        sess = fixture_session()
         q = sess.query(User)
         opt = self._option_fixture(User.orders, Order.items).joinedload(
             "keywords"
@@ -918,7 +917,7 @@ class FromSubclassOptionsTest(PathTest, fixtures.DeclarativeMappedTest):
         BaseCls, SubClass, Related, SubRelated = self.classes(
             "BaseCls", "SubClass", "Related", "SubRelated"
         )
-        sess = Session()
+        sess = fixture_session()
 
         q = sess.query(Related)._with_current_path(
             self._make_path_registry([inspect(SubClass), "related"])
@@ -1258,7 +1257,7 @@ class OptionsNoPropTest(_fixtures.FixtureTest):
         Item = self.classes.Item
 
         context = (
-            create_session()
+            fixture_session()
             .query(*entity_list)
             .options(joinedload(option))
             ._compile_state()
@@ -1270,7 +1269,7 @@ class OptionsNoPropTest(_fixtures.FixtureTest):
         assert_raises_message(
             orm_exc.LoaderStrategyException,
             message,
-            create_session()
+            fixture_session()
             .query(*entity_list)
             .options(*options)
             ._compile_state,
@@ -1282,7 +1281,7 @@ class OptionsNoPropTest(_fixtures.FixtureTest):
         assert_raises_message(
             sa.exc.ArgumentError,
             message,
-            create_session()
+            fixture_session()
             .query(*entity_list)
             .options(*options)
             ._compile_state,
@@ -1294,7 +1293,7 @@ class OptionsNoPropTest(_fixtures.FixtureTest):
         assert_raises_message(
             sa.exc.ArgumentError,
             message,
-            create_session()
+            fixture_session()
             .query(column)
             .options(joinedload(eager_option))
             ._compile_state,
@@ -1303,7 +1302,7 @@ class OptionsNoPropTest(_fixtures.FixtureTest):
 
 class OptionsNoPropTestInh(_Polymorphic):
     def test_missing_attr_wpoly_subclasss(self):
-        s = Session()
+        s = fixture_session()
 
         wp = with_polymorphic(Person, [Manager], flat=True)
 
@@ -1316,7 +1315,7 @@ class OptionsNoPropTestInh(_Polymorphic):
         )
 
     def test_missing_attr_of_type_subclass(self):
-        s = Session()
+        s = fixture_session()
 
         assert_raises_message(
             sa.exc.ArgumentError,
@@ -1332,7 +1331,7 @@ class OptionsNoPropTestInh(_Polymorphic):
         )
 
     def test_missing_attr_of_type_subclass_name_matches(self):
-        s = Session()
+        s = fixture_session()
 
         # the name "status" is present on Engineer also, make sure
         # that doesn't get mixed up here
@@ -1350,7 +1349,7 @@ class OptionsNoPropTestInh(_Polymorphic):
         )
 
     def test_missing_str_attr_of_type_subclass(self):
-        s = Session()
+        s = fixture_session()
 
         assert_raises_message(
             sa.exc.ArgumentError,
@@ -1366,7 +1365,7 @@ class OptionsNoPropTestInh(_Polymorphic):
         )
 
     def test_missing_attr_of_type_wpoly_subclass(self):
-        s = Session()
+        s = fixture_session()
 
         wp = with_polymorphic(Person, [Manager], flat=True)
 
@@ -1384,7 +1383,7 @@ class OptionsNoPropTestInh(_Polymorphic):
         )
 
     def test_missing_attr_is_missing_of_type_for_alias(self):
-        s = Session()
+        s = fixture_session()
 
         pa = aliased(Person)
 
@@ -1465,7 +1464,7 @@ class PickleTest(PathTest, QueryTest):
 
         opt.__setstate__(state)
 
-        query = create_session().query(User)
+        query = fixture_session().query(User)
         attr = {}
         load = opt._bind_loader(
             [
@@ -1502,7 +1501,7 @@ class PickleTest(PathTest, QueryTest):
 
         opt.__setstate__(state)
 
-        query = create_session().query(User)
+        query = fixture_session().query(User)
         attr = {}
         load = opt._bind_loader(
             [
@@ -1545,7 +1544,7 @@ class LocalOptsTest(PathTest, QueryTest):
     def _assert_attrs(self, opts, expected):
         User = self.classes.User
 
-        query = create_session().query(User)
+        query = fixture_session().query(User)
         attr = {}
 
         for opt in opts:
@@ -1702,7 +1701,7 @@ class SubOptionsTest(PathTest, QueryTest):
             defaultload(User.orders).defer(Order.description),
         ]
 
-        sess = Session()
+        sess = fixture_session()
         self._assert_opts(sess.query(User), sub_opt, non_sub_opts)
 
     def test_two(self):
@@ -1721,7 +1720,7 @@ class SubOptionsTest(PathTest, QueryTest):
             defaultload(User.orders).defer(Order.description),
         ]
 
-        sess = Session()
+        sess = fixture_session()
         self._assert_opts(sess.query(User), sub_opt, non_sub_opts)
 
     def test_three(self):
@@ -1730,7 +1729,7 @@ class SubOptionsTest(PathTest, QueryTest):
         )
         sub_opt = defaultload(User.orders).options(defer("*"))
         non_sub_opts = [defaultload(User.orders).defer("*")]
-        sess = Session()
+        sess = fixture_session()
         self._assert_opts(sess.query(User), sub_opt, non_sub_opts)
 
     def test_four(self):
@@ -1759,7 +1758,7 @@ class SubOptionsTest(PathTest, QueryTest):
             .defaultload(Item.keywords)
             .defer(Keyword.name),
         ]
-        sess = Session()
+        sess = fixture_session()
         self._assert_opts(sess.query(User), sub_opt, non_sub_opts)
 
     def test_four_strings(self):
@@ -1788,7 +1787,7 @@ class SubOptionsTest(PathTest, QueryTest):
             .defaultload(Item.keywords)
             .defer(Keyword.name),
         ]
-        sess = Session()
+        sess = fixture_session()
         self._assert_opts(sess.query(User), sub_opt, non_sub_opts)
 
     def test_five(self):
@@ -1800,7 +1799,7 @@ class SubOptionsTest(PathTest, QueryTest):
             joinedload(User.orders),
             defaultload(User.orders).load_only(Order.description),
         ]
-        sess = Session()
+        sess = fixture_session()
         self._assert_opts(sess.query(User), sub_opt, non_sub_opts)
 
     def test_five_strings(self):
@@ -1812,7 +1811,7 @@ class SubOptionsTest(PathTest, QueryTest):
             joinedload(User.orders),
             defaultload(User.orders).load_only(Order.description),
         ]
-        sess = Session()
+        sess = fixture_session()
         self._assert_opts(sess.query(User), sub_opt, non_sub_opts)
 
     def test_invalid_one(self):
@@ -1832,7 +1831,7 @@ class SubOptionsTest(PathTest, QueryTest):
             joinedload(User.orders).joinedload(Item.keywords),
             defaultload(User.orders).joinedload(Order.items),
         ]
-        sess = Session()
+        sess = fixture_session()
         self._assert_opts(sess.query(User), sub_opt, non_sub_opts)
 
     def test_invalid_two(self):
@@ -1852,7 +1851,7 @@ class SubOptionsTest(PathTest, QueryTest):
             joinedload(User.orders).joinedload(Item.keywords),
             defaultload(User.orders).joinedload(Order.items),
         ]
-        sess = Session()
+        sess = fixture_session()
         self._assert_opts(sess.query(User), sub_opt, non_sub_opts)
 
     def test_not_implemented_fromload(self):
@@ -1905,7 +1904,7 @@ class MapperOptionsTest(_fixtures.FixtureTest):
         )
 
         def go():
-            sess = create_session()
+            sess = fixture_session()
             u = (
                 sess.query(User)
                 .order_by(User.id)
@@ -1936,7 +1935,7 @@ class MapperOptionsTest(_fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         result = (
             sess.query(User)
             .order_by(User.id)
@@ -1966,7 +1965,7 @@ class MapperOptionsTest(_fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         u = (
             sess.query(User)
             .options(sa.orm.joinedload("addresses"))
@@ -2003,7 +2002,7 @@ class MapperOptionsTest(_fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         u = (
             sess.query(User)
             .options(sa.orm.lazyload("addresses"))
@@ -2039,7 +2038,7 @@ class MapperOptionsTest(_fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         # first test straight eager load, 1 statement
 
         def go():
@@ -2054,7 +2053,7 @@ class MapperOptionsTest(_fixtures.FixtureTest):
         # then assert the data, which will launch 3 more lazy loads
         # (previous users in session fell out of scope and were removed from
         # session's identity map)
-        r = users.select().order_by(users.c.id).execute()
+        r = sess.connection().execute(users.select().order_by(users.c.id))
 
         ctx = sess.query(User)._compile_context()
 
@@ -2140,7 +2139,7 @@ class MapperOptionsTest(_fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         # first test straight eager load, 1 statement
         def go():
@@ -2153,7 +2152,7 @@ class MapperOptionsTest(_fixtures.FixtureTest):
 
         # then select just from users.  run it into instances.
         # then assert the data, which will launch 6 more lazy loads
-        r = users.select().execute()
+        r = sess.connection().execute(users.select())
 
         ctx = sess.query(User)._compile_context()
 
@@ -2183,7 +2182,7 @@ class MapperOptionsTest(_fixtures.FixtureTest):
             ),
         )
 
-        sess = create_session()
+        sess = fixture_session()
         result = (
             sess.query(User)
             .order_by(User.id)
@@ -2214,7 +2213,7 @@ class MapperOptionsTest(_fixtures.FixtureTest):
         )
         mapper(Item, items)
 
-        sess = create_session()
+        sess = fixture_session()
 
         oalias = aliased(Order)
         opt1 = sa.orm.joinedload(User.orders, Order.items)
index a5a983740c39794bfa0b9cbd81ecb5584cb8c0e4..189fd2d27cb501bdfd551c08abea72ff4c9fd085 100644 (file)
@@ -9,14 +9,11 @@ from sqlalchemy import testing
 from sqlalchemy.orm import aliased
 from sqlalchemy.orm import attributes
 from sqlalchemy.orm import clear_mappers
-from sqlalchemy.orm import create_session
 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 Session
-from sqlalchemy.orm import sessionmaker
 from sqlalchemy.orm import state as sa_state
 from sqlalchemy.orm import subqueryload
 from sqlalchemy.orm import with_polymorphic
@@ -25,6 +22,7 @@ from sqlalchemy.orm.collections import column_mapped_collection
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.pickleable import Address
 from sqlalchemy.testing.pickleable import Child1
 from sqlalchemy.testing.pickleable import Child2
@@ -114,7 +112,7 @@ class PickleTest(fixtures.MappedTest):
             properties={"dingaling": relationship(Dingaling)},
         )
         mapper(Dingaling, dingalings)
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(name="ed")
         u1.addresses.append(Address(email_address="ed@bar.com"))
         sess.add(u1)
@@ -132,7 +130,7 @@ class PickleTest(fixtures.MappedTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(name="ed")
         u1.addresses.append(Address(email_address="ed@bar.com"))
 
@@ -195,33 +193,38 @@ class PickleTest(fixtures.MappedTest):
                 "email_address": sa.orm.deferred(addresses.c.email_address)
             },
         )
-        sess = create_session()
-        u1 = User(name="ed")
-        u1.addresses.append(Address(email_address="ed@bar.com"))
-        sess.add(u1)
-        sess.flush()
-        sess.expunge_all()
-        u1 = sess.query(User).get(u1.id)
-        assert "name" not in u1.__dict__
-        assert "addresses" not in u1.__dict__
+        with fixture_session(expire_on_commit=False) as sess:
+            u1 = User(name="ed")
+            u1.addresses.append(Address(email_address="ed@bar.com"))
+            sess.add(u1)
+            sess.commit()
+
+        with fixture_session() as sess:
+            u1 = sess.query(User).get(u1.id)
+            assert "name" not in u1.__dict__
+            assert "addresses" not in u1.__dict__
 
         u2 = pickle.loads(pickle.dumps(u1))
-        sess2 = create_session()
-        sess2.add(u2)
-        eq_(u2.name, "ed")
-        eq_(
-            u2,
-            User(name="ed", addresses=[Address(email_address="ed@bar.com")]),
-        )
+        with fixture_session() as sess2:
+            sess2.add(u2)
+            eq_(u2.name, "ed")
+            eq_(
+                u2,
+                User(
+                    name="ed", addresses=[Address(email_address="ed@bar.com")]
+                ),
+            )
 
         u2 = pickle.loads(pickle.dumps(u1))
-        sess2 = create_session()
-        u2 = sess2.merge(u2, load=False)
-        eq_(u2.name, "ed")
-        eq_(
-            u2,
-            User(name="ed", addresses=[Address(email_address="ed@bar.com")]),
-        )
+        with fixture_session() as sess2:
+            u2 = sess2.merge(u2, load=False)
+            eq_(u2.name, "ed")
+            eq_(
+                u2,
+                User(
+                    name="ed", addresses=[Address(email_address="ed@bar.com")]
+                ),
+            )
 
     def test_instance_lazy_relation_loaders(self):
         users, addresses = (self.tables.users, self.tables.addresses)
@@ -233,7 +236,7 @@ class PickleTest(fixtures.MappedTest):
         )
         mapper(Address, addresses)
 
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="ed", addresses=[Address(email_address="ed@bar.com")])
 
         sess.add(u1)
@@ -243,7 +246,7 @@ class PickleTest(fixtures.MappedTest):
         u1 = sess.query(User).options(lazyload(User.addresses)).first()
         u2 = pickle.loads(pickle.dumps(u1))
 
-        sess = Session()
+        sess = fixture_session()
         sess.add(u2)
         assert u2.addresses
 
@@ -290,52 +293,57 @@ class PickleTest(fixtures.MappedTest):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
-        u1 = User(name="ed")
-        u1.addresses.append(Address(email_address="ed@bar.com"))
-        sess.add(u1)
-        sess.flush()
-        sess.expunge_all()
-
-        u1 = (
-            sess.query(User)
-            .options(
-                sa.orm.defer("name"), sa.orm.defer("addresses.email_address")
+        with fixture_session(expire_on_commit=False) as sess:
+            u1 = User(name="ed")
+            u1.addresses.append(Address(email_address="ed@bar.com"))
+            sess.add(u1)
+            sess.commit()
+
+        with fixture_session(expire_on_commit=False) as sess:
+            u1 = (
+                sess.query(User)
+                .options(
+                    sa.orm.defer("name"),
+                    sa.orm.defer("addresses.email_address"),
+                )
+                .get(u1.id)
             )
-            .get(u1.id)
-        )
-        assert "name" not in u1.__dict__
-        assert "addresses" not in u1.__dict__
+            assert "name" not in u1.__dict__
+            assert "addresses" not in u1.__dict__
 
         u2 = pickle.loads(pickle.dumps(u1))
-        sess2 = create_session()
-        sess2.add(u2)
-        eq_(u2.name, "ed")
-        assert "addresses" not in u2.__dict__
-        ad = u2.addresses[0]
-        assert "email_address" not in ad.__dict__
-        eq_(ad.email_address, "ed@bar.com")
-        eq_(
-            u2,
-            User(name="ed", addresses=[Address(email_address="ed@bar.com")]),
-        )
+        with fixture_session() as sess2:
+            sess2.add(u2)
+            eq_(u2.name, "ed")
+            assert "addresses" not in u2.__dict__
+            ad = u2.addresses[0]
+            assert "email_address" not in ad.__dict__
+            eq_(ad.email_address, "ed@bar.com")
+            eq_(
+                u2,
+                User(
+                    name="ed", addresses=[Address(email_address="ed@bar.com")]
+                ),
+            )
 
         u2 = pickle.loads(pickle.dumps(u1))
-        sess2 = create_session()
-        u2 = sess2.merge(u2, load=False)
-        eq_(u2.name, "ed")
-        assert "addresses" not in u2.__dict__
-        ad = u2.addresses[0]
+        with fixture_session() as sess2:
+            u2 = sess2.merge(u2, load=False)
+            eq_(u2.name, "ed")
+            assert "addresses" not in u2.__dict__
+            ad = u2.addresses[0]
 
-        # mapper options now transmit over merge(),
-        # new as of 0.6, so email_address is deferred.
-        assert "email_address" not in ad.__dict__
+            # mapper options now transmit over merge(),
+            # new as of 0.6, so email_address is deferred.
+            assert "email_address" not in ad.__dict__
 
-        eq_(ad.email_address, "ed@bar.com")
-        eq_(
-            u2,
-            User(name="ed", addresses=[Address(email_address="ed@bar.com")]),
-        )
+            eq_(ad.email_address, "ed@bar.com")
+            eq_(
+                u2,
+                User(
+                    name="ed", addresses=[Address(email_address="ed@bar.com")]
+                ),
+            )
 
     def test_pickle_protocols(self):
         users, addresses = (self.tables.users, self.tables.addresses)
@@ -347,7 +355,7 @@ class PickleTest(fixtures.MappedTest):
         )
         mapper(Address, addresses)
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         u1 = User(name="ed")
         u1.addresses.append(Address(email_address="ed@bar.com"))
         sess.add(u1)
@@ -363,7 +371,7 @@ class PickleTest(fixtures.MappedTest):
     def test_09_pickle(self):
         users = self.tables.users
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
         sess.add(User(id=1, name="ed"))
         sess.commit()
         sess.close()
@@ -389,7 +397,7 @@ class PickleTest(fixtures.MappedTest):
         state.__setstate__(state_09)
         eq_(state.expired_attributes, {"name", "id"})
 
-        sess = Session()
+        sess = fixture_session()
         sess.add(inst)
         eq_(inst.name, "ed")
         # test identity_token expansion
@@ -398,7 +406,7 @@ class PickleTest(fixtures.MappedTest):
     def test_11_pickle(self):
         users = self.tables.users
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(id=1, name="ed")
         sess.add(u1)
         sess.commit()
@@ -658,7 +666,7 @@ class OptionsTest(_Polymorphic):
             eq_(opt2.__getstate__()["path"], serialized)
 
     def test_load(self):
-        s = Session()
+        s = fixture_session()
 
         with_poly = with_polymorphic(Person, [Engineer, Manager], flat=True)
         emp = (
@@ -706,17 +714,17 @@ class PolymorphicDeferredTest(fixtures.MappedTest):
         )
 
         eu = EmailUser(name="user1", email_address="foo@bar.com")
-        sess = create_session()
-        sess.add(eu)
-        sess.flush()
-        sess.expunge_all()
+        with fixture_session() as sess:
+            sess.add(eu)
+            sess.commit()
 
-        eu = sess.query(User).first()
-        eu2 = pickle.loads(pickle.dumps(eu))
-        sess2 = create_session()
-        sess2.add(eu2)
-        assert "email_address" not in eu2.__dict__
-        eq_(eu2.email_address, "foo@bar.com")
+        with fixture_session() as sess:
+            eu = sess.query(User).first()
+            eu2 = pickle.loads(pickle.dumps(eu))
+            sess2 = fixture_session()
+            sess2.add(eu2)
+            assert "email_address" not in eu2.__dict__
+            eq_(eu2.email_address, "foo@bar.com")
 
 
 class TupleLabelTest(_fixtures.FixtureTest):
@@ -750,7 +758,7 @@ class TupleLabelTest(_fixtures.FixtureTest):
         )  # m2o
 
     def test_tuple_labeling(self):
-        sess = create_session()
+        sess = fixture_session()
 
         # test pickle + all the protocols !
         for pickled in False, -1, 0, 1, 2:
index cee87c80510864019f6105b9b5d099f2219e2d19..fd8e849fb57d95f3b9f4924d472e5047f1fa0b54 100644 (file)
@@ -22,7 +22,6 @@ from sqlalchemy import inspect
 from sqlalchemy import Integer
 from sqlalchemy import literal
 from sqlalchemy import literal_column
-from sqlalchemy import MetaData
 from sqlalchemy import null
 from sqlalchemy import or_
 from sqlalchemy import select
@@ -43,7 +42,6 @@ from sqlalchemy.orm import backref
 from sqlalchemy.orm import Bundle
 from sqlalchemy.orm import column_property
 from sqlalchemy.orm import contains_eager
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import defer
 from sqlalchemy.orm import joinedload
 from sqlalchemy.orm import lazyload
@@ -70,9 +68,9 @@ from sqlalchemy.testing import mock
 from sqlalchemy.testing.assertions import assert_raises
 from sqlalchemy.testing.assertions import assert_raises_message
 from sqlalchemy.testing.assertions import eq_
-from sqlalchemy.testing.assertions import eq_ignore_whitespace
 from sqlalchemy.testing.assertions import expect_warnings
 from sqlalchemy.testing.assertsql import CompiledSQL
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from sqlalchemy.util import collections_abc
@@ -95,8 +93,8 @@ class MiscTest(QueryTest):
 
     def test_with_session(self):
         User = self.classes.User
-        s1 = Session()
-        s2 = Session()
+        s1 = fixture_session()
+        s2 = fixture_session()
         q1 = s1.query(User)
         q2 = q1.with_session(s2)
         assert q2.session is s2
@@ -106,14 +104,14 @@ class MiscTest(QueryTest):
 class OnlyReturnTuplesTest(QueryTest):
     def test_single_entity_false(self):
         User = self.classes.User
-        query = create_session().query(User).only_return_tuples(False)
+        query = fixture_session().query(User).only_return_tuples(False)
         is_true(query.is_single_entity)
         row = query.first()
         assert isinstance(row, User)
 
     def test_single_entity_true(self):
         User = self.classes.User
-        query = create_session().query(User).only_return_tuples(True)
+        query = fixture_session().query(User).only_return_tuples(True)
         is_false(query.is_single_entity)
         row = query.first()
         assert isinstance(row, collections_abc.Sequence)
@@ -121,7 +119,9 @@ class OnlyReturnTuplesTest(QueryTest):
 
     def test_multiple_entity_false(self):
         User = self.classes.User
-        query = create_session().query(User.id, User).only_return_tuples(False)
+        query = (
+            fixture_session().query(User.id, User).only_return_tuples(False)
+        )
         is_false(query.is_single_entity)
         row = query.first()
         assert isinstance(row, collections_abc.Sequence)
@@ -129,7 +129,7 @@ class OnlyReturnTuplesTest(QueryTest):
 
     def test_multiple_entity_true(self):
         User = self.classes.User
-        query = create_session().query(User.id, User).only_return_tuples(True)
+        query = fixture_session().query(User.id, User).only_return_tuples(True)
         is_false(query.is_single_entity)
         row = query.first()
         assert isinstance(row, collections_abc.Sequence)
@@ -145,7 +145,7 @@ class RowTupleTest(QueryTest):
         mapper(User, users, properties={"uname": users.c.name})
 
         row = (
-            create_session()
+            fixture_session()
             .query(User.id, User.uname)
             .filter(User.id == 7)
             .first()
@@ -167,7 +167,7 @@ class RowTupleTest(QueryTest):
 
         mapper(User, users)
 
-        s = Session()
+        s = fixture_session()
 
         q = testing.resolve_lambda(test_case, **locals())
 
@@ -189,7 +189,7 @@ class RowTupleTest(QueryTest):
 
         mapper(User, users)
 
-        s = Session(testing.db)
+        s = fixture_session()
 
         q = testing.resolve_lambda(test_case, **locals())
 
@@ -207,7 +207,7 @@ class RowTupleTest(QueryTest):
 
         mapper(User, users)
 
-        s = Session()
+        s = fixture_session()
 
         q = testing.resolve_lambda(test_case, **locals())
 
@@ -223,7 +223,7 @@ class RowTupleTest(QueryTest):
         mapper(User, users, properties={"addresses": relationship(Address)})
         mapper(Address, addresses)
 
-        s = Session()
+        s = fixture_session()
 
         row = s.query(User).only_return_tuples(True).first()
         eq_(row._mapping[User], row[0])
@@ -451,7 +451,7 @@ class RowTupleTest(QueryTest):
 
         mapper(User, users)
         mapper(Address, addresses)
-        sess = create_session()
+        sess = fixture_session()
         user_alias = aliased(User)
         user_alias_id_label = user_alias.id.label("foo")
         address_alias = aliased(Address, name="aalias")
@@ -481,7 +481,7 @@ class RowTupleTest(QueryTest):
 
         mapper(User, users)
 
-        s = Session()
+        s = fixture_session()
         q = s.query(User, type_coerce(users.c.id, MyType).label("foo")).filter(
             User.id == 7
         )
@@ -489,70 +489,11 @@ class RowTupleTest(QueryTest):
         eq_(row, (User(id=7), [7]))
 
 
-class BindSensitiveStringifyTest(fixtures.TestBase):
-    def _fixture(self):
-        # building a totally separate metadata /mapping here
-        # because we need to control if the MetaData is bound or not
-
-        class User(object):
-            pass
-
-        m = MetaData()
-        user_table = Table(
-            "users",
-            m,
-            Column("id", Integer, primary_key=True),
-            Column("name", String(50)),
-        )
-
-        mapper(User, user_table)
-        return User
-
-    def _dialect_fixture(self):
-        class MyDialect(default.DefaultDialect):
-            default_paramstyle = "qmark"
-
-        from sqlalchemy.engine import base
-
-        return base.Engine(mock.Mock(), MyDialect(), mock.Mock())
-
-    def _test(self, bound_session, session_present, expect_bound):
-        if bound_session:
-            eng = self._dialect_fixture()
-        else:
-            eng = None
-
-        User = self._fixture()
-
-        s = Session(eng if bound_session else None)
-        q = s.query(User).filter(User.id == 7)
-        if not session_present:
-            q = q.with_session(None)
-
-        eq_ignore_whitespace(
-            str(q),
-            "SELECT users.id AS users_id, users.name AS users_name "
-            "FROM users WHERE users.id = ?"
-            if expect_bound
-            else "SELECT users.id AS users_id, users.name AS users_name "
-            "FROM users WHERE users.id = :id_1",
-        )
-
-    def test_query_bound_session(self):
-        self._test(True, True, True)
-
-    def test_query_no_session(self):
-        self._test(False, False, False)
-
-    def test_query_unbound_session(self):
-        self._test(False, True, False)
-
-
 class GetTest(QueryTest):
     def test_loader_options(self):
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
 
         u1 = s.query(User).options(joinedload(User.addresses)).get(8)
         eq_(len(u1.__dict__["addresses"]), 3)
@@ -560,7 +501,7 @@ class GetTest(QueryTest):
     def test_loader_options_future(self):
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
 
         u1 = s.get(User, 8, options=[joinedload(User.addresses)])
         eq_(len(u1.__dict__["addresses"]), 3)
@@ -568,13 +509,13 @@ class GetTest(QueryTest):
     def test_get_composite_pk_keyword_based_no_result(self):
         CompositePk = self.classes.CompositePk
 
-        s = Session()
+        s = fixture_session()
         is_(s.query(CompositePk).get({"i": 100, "j": 100}), None)
 
     def test_get_composite_pk_keyword_based_result(self):
         CompositePk = self.classes.CompositePk
 
-        s = Session()
+        s = fixture_session()
         one_two = s.query(CompositePk).get({"i": 1, "j": 2})
         eq_(one_two.i, 1)
         eq_(one_two.j, 2)
@@ -583,21 +524,21 @@ class GetTest(QueryTest):
     def test_get_composite_pk_keyword_based_wrong_keys(self):
         CompositePk = self.classes.CompositePk
 
-        s = Session()
+        s = fixture_session()
         q = s.query(CompositePk)
         assert_raises(sa_exc.InvalidRequestError, q.get, {"i": 1, "k": 2})
 
     def test_get_composite_pk_keyword_based_too_few_keys(self):
         CompositePk = self.classes.CompositePk
 
-        s = Session()
+        s = fixture_session()
         q = s.query(CompositePk)
         assert_raises(sa_exc.InvalidRequestError, q.get, {"i": 1})
 
     def test_get_composite_pk_keyword_based_too_many_keys(self):
         CompositePk = self.classes.CompositePk
 
-        s = Session()
+        s = fixture_session()
         q = s.query(CompositePk)
         assert_raises(
             sa_exc.InvalidRequestError, q.get, {"i": 1, "j": "2", "k": 3}
@@ -606,7 +547,7 @@ class GetTest(QueryTest):
     def test_get(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
         assert s.query(User).get(19) is None
         u = s.query(User).get(7)
         u2 = s.query(User).get(7)
@@ -618,7 +559,7 @@ class GetTest(QueryTest):
     def test_get_future(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
         assert s.get(User, 19) is None
         u = s.get(User, 7)
         u2 = s.get(User, 7)
@@ -630,13 +571,13 @@ class GetTest(QueryTest):
     def test_get_composite_pk_no_result(self):
         CompositePk = self.classes.CompositePk
 
-        s = Session()
+        s = fixture_session()
         assert s.query(CompositePk).get((100, 100)) is None
 
     def test_get_composite_pk_result(self):
         CompositePk = self.classes.CompositePk
 
-        s = Session()
+        s = fixture_session()
         one_two = s.query(CompositePk).get((1, 2))
         assert one_two.i == 1
         assert one_two.j == 2
@@ -645,28 +586,28 @@ class GetTest(QueryTest):
     def test_get_too_few_params(self):
         CompositePk = self.classes.CompositePk
 
-        s = Session()
+        s = fixture_session()
         q = s.query(CompositePk)
         assert_raises(sa_exc.InvalidRequestError, q.get, 7)
 
     def test_get_too_few_params_tuple(self):
         CompositePk = self.classes.CompositePk
 
-        s = Session()
+        s = fixture_session()
         q = s.query(CompositePk)
         assert_raises(sa_exc.InvalidRequestError, q.get, (7,))
 
     def test_get_too_many_params(self):
         CompositePk = self.classes.CompositePk
 
-        s = Session()
+        s = fixture_session()
         q = s.query(CompositePk)
         assert_raises(sa_exc.InvalidRequestError, q.get, (7, 10, 100))
 
     def test_get_against_col(self):
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
         q = s.query(User.id)
         assert_raises(sa_exc.InvalidRequestError, q.get, (5,))
 
@@ -694,14 +635,14 @@ class GetTest(QueryTest):
         PK (i.e. map to an outerjoin) works with get()."""
 
         UserThing = outerjoin_mapping
-        sess = create_session()
+        sess = fixture_session()
         u10 = sess.query(UserThing).get((10, None))
         eq_(u10, UserThing(id=10))
 
     def test_get_fully_null_pk(self):
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
         q = s.query(User)
         assert_raises_message(
             sa_exc.SAWarning,
@@ -714,7 +655,7 @@ class GetTest(QueryTest):
     def test_get_fully_null_composite_pk(self, outerjoin_mapping):
         UserThing = outerjoin_mapping
 
-        s = Session()
+        s = fixture_session()
         q = s.query(UserThing)
 
         assert_raises_message(
@@ -731,7 +672,7 @@ class GetTest(QueryTest):
 
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         q = s.query(User).join("addresses").filter(Address.user_id == 8)
         assert_raises(sa_exc.InvalidRequestError, q.get, 7)
@@ -750,7 +691,7 @@ class GetTest(QueryTest):
 
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         s.query(User).get(7)
 
@@ -767,13 +708,13 @@ class GetTest(QueryTest):
         m = mapper(SomeUser, s)
         assert s.primary_key == m.primary_key
 
-        sess = create_session()
+        sess = fixture_session()
         assert sess.query(SomeUser).get(7).name == "jack"
 
     def test_load(self):
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session(autoflush=False)
 
         assert s.query(User).populate_existing().get(19) is None
 
@@ -796,14 +737,8 @@ class GetTest(QueryTest):
         assert u2.name == "jack"
         assert a not in u2.addresses
 
-    @testing.provide_metadata
     @testing.requires.unicode_connections
-    def test_unicode(self, connection):
-        """test that Query.get properly sets up the type for the bind
-        parameter. using unicode would normally fail on postgresql, mysql and
-        oracle unless it is converted to an encoded string"""
-
-        metadata = self.metadata
+    def test_unicode(self, metadata, connection):
         table = Table(
             "unicode_data",
             metadata,
@@ -828,7 +763,7 @@ class GetTest(QueryTest):
     def test_populate_existing(self):
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session(autoflush=False)
 
         userlist = s.query(User).all()
 
@@ -864,7 +799,7 @@ class GetTest(QueryTest):
     def test_populate_existing_future(self):
         User, Address = self.classes.User, self.classes.Address
 
-        s = Session(testing.db, autoflush=False)
+        s = fixture_session(autoflush=False)
 
         userlist = s.query(User).all()
 
@@ -915,7 +850,7 @@ class GetTest(QueryTest):
         stmt = select(User).execution_options(
             populate_existing=True, autoflush=False, yield_per=10
         )
-        s = Session(testing.db)
+        s = fixture_session()
 
         m1 = mock.Mock()
 
@@ -940,7 +875,7 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL):
     def test_no_limit_offset(self, test_case):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         q = testing.resolve_lambda(test_case, User=User, s=s)
 
@@ -964,7 +899,7 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL):
     def test_no_from(self):
         users, User = self.tables.users, self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         q = s.query(User).select_from(users)
         assert_raises(sa_exc.InvalidRequestError, q.select_from, users)
@@ -986,7 +921,7 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL):
     def test_invalid_select_from(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(User)
         assert_raises(sa_exc.ArgumentError, q.select_from, User.id == 5)
         assert_raises(sa_exc.ArgumentError, q.select_from, User.id)
@@ -998,7 +933,7 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL):
             self.tables.users,
         )
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(User)
         assert_raises(sa_exc.ArgumentError, q.from_statement, User.id == 5)
         assert_raises(
@@ -1008,14 +943,14 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL):
     def test_invalid_column(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(User)
         assert_raises(sa_exc.ArgumentError, q.add_columns, object())
 
     def test_invalid_column_tuple(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(User)
         assert_raises(sa_exc.ArgumentError, q.add_columns, (1, 1))
 
@@ -1025,7 +960,7 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL):
 
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(User).distinct()
         assert_raises(sa_exc.InvalidRequestError, q.select_from, User)
         assert_raises(
@@ -1041,7 +976,7 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL):
 
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(User).order_by(User.id)
         assert_raises(sa_exc.InvalidRequestError, q.select_from, User)
         assert_raises(
@@ -1054,14 +989,14 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL):
     def test_only_full_mapper_zero(self):
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         q = s.query(User, Address)
         assert_raises(sa_exc.InvalidRequestError, q.get, 5)
 
     def test_entity_or_mapper_zero_from_context(self):
         User, Address = self.classes.User, self.classes.Address
-        s = create_session()
+        s = fixture_session()
 
         q = s.query(User, Address)._compile_state()
         is_(q._mapper_zero(), inspect(User))
@@ -1103,7 +1038,7 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL):
     def test_from_statement(self, test_case):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         q = testing.resolve_lambda(test_case, User=User, s=s)
 
@@ -1119,7 +1054,7 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL):
     def test_from_statement_text(self, meth, test_case):
 
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
         q = s.query(User)
 
         q = q.from_statement(text("x"))
@@ -1152,7 +1087,7 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL):
             ua,
         )
 
-        s = Session()
+        s = fixture_session()
         assert_raises_message(
             sa_exc.ArgumentError,
             "SQL expression element or literal value expected, got .*User",
@@ -1184,7 +1119,7 @@ class OperatorTest(QueryTest, AssertsCompiledSQL):
         if entity is not None:
             # specify a lead entity, so that when we are testing
             # correlation, the correlation actually happens
-            sess = Session()
+            sess = fixture_session()
             lead = sess.query(entity)
             context = lead._compile_context()
             context.compile_state.statement._label_style = (
@@ -1199,7 +1134,7 @@ class OperatorTest(QueryTest, AssertsCompiledSQL):
         self, clause, expected, from_, onclause, checkparams=None
     ):
         dialect = default.DefaultDialect()
-        sess = Session()
+        sess = fixture_session()
         lead = sess.query(from_).join(onclause, aliased=True)
         full = lead.filter(clause)
         context = lead._compile_context()
@@ -1236,7 +1171,7 @@ class OperatorTest(QueryTest, AssertsCompiledSQL):
         lhs = testing.resolve_lambda(lhs, User=User)
         rhs = testing.resolve_lambda(rhs, User=User)
 
-        create_session().query(User)
+        fixture_session().query(User)
         self._test(py_op(lhs, rhs), res % sql_op)
 
     @testing.combinations(
@@ -1269,7 +1204,7 @@ class OperatorTest(QueryTest, AssertsCompiledSQL):
     def test_comparison(self, py_op, fwd_op, rev_op, fixture):
         User = self.classes.User
 
-        create_session().query(User)
+        fixture_session().query(User)
         ualias = aliased(User)
 
         lhs, rhs, l_sql, r_sql = fixture(User=User, ualias=ualias)
@@ -1554,7 +1489,7 @@ class OperatorTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
             self.classes.Dingaling,
         )
-        sess = Session()
+        sess = fixture_session()
 
         q = sess.query(User).filter(
             User.addresses.any(
@@ -1645,7 +1580,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_function_element_column_labels(self):
         users = self.tables.users
-        sess = Session()
+        sess = fixture_session()
 
         class max_(expression.FunctionElement):
             name = "max"
@@ -1659,7 +1594,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_truly_unlabeled_sql_expressions(self):
         users = self.tables.users
-        sess = Session()
+        sess = fixture_session()
 
         class not_named_max(expression.ColumnElement):
             name = "not_named_max"
@@ -1682,7 +1617,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        session = create_session()
+        session = fixture_session()
         s = (
             session.query(User)
             .filter(
@@ -1733,7 +1668,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        session = create_session()
+        session = fixture_session()
 
         q = session.query(User.id).filter(User.id == 7).scalar_subquery()
 
@@ -1751,7 +1686,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_subquery_no_eagerloads(self):
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(User).options(joinedload(User.addresses)).subquery(),
@@ -1760,7 +1695,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_exists_no_eagerloads(self):
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(
@@ -1772,7 +1707,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
     def test_named_subquery(self):
         User = self.classes.User
 
-        session = create_session()
+        session = fixture_session()
         a1 = session.query(User.id).filter(User.id == 7).subquery("foo1")
         a2 = session.query(User.id).filter(User.id == 7).subquery(name="foo2")
         a3 = session.query(User.id).filter(User.id == 7).subquery()
@@ -1784,7 +1719,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
     def test_labeled_subquery(self):
         User = self.classes.User
 
-        session = create_session()
+        session = fixture_session()
         a1 = (
             session.query(User.id)
             .filter(User.id == 7)
@@ -1796,7 +1731,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         ua = aliased(User)
 
-        session = create_session()
+        session = fixture_session()
         a1 = (
             session.query(User.id, ua.id, ua.name)
             .filter(User.id == ua.id)
@@ -1812,7 +1747,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
     def test_label(self):
         User = self.classes.User
 
-        session = create_session()
+        session = fixture_session()
 
         q = session.query(User.id).filter(User.id == 7).label("foo")
         self.assert_compile(
@@ -1824,7 +1759,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
     def test_scalar_subquery(self):
         User = self.classes.User
 
-        session = create_session()
+        session = fixture_session()
 
         q = session.query(User.id).filter(User.id == 7).scalar_subquery()
 
@@ -1839,7 +1774,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
     def test_param_transfer(self):
         User = self.classes.User
 
-        session = create_session()
+        session = fixture_session()
 
         q = (
             session.query(User.id)
@@ -1855,7 +1790,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
     def test_in(self):
         User, Address = self.classes.User, self.classes.Address
 
-        session = create_session()
+        session = fixture_session()
         s = (
             session.query(User.id)
             .join(User.addresses)
@@ -1867,7 +1802,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
     def test_union(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         q1 = s.query(User).filter(User.name == "ed").with_labels()
         q2 = s.query(User).filter(User.name == "fred").with_labels()
@@ -1881,7 +1816,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
     def test_select(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         # this is actually not legal on most DBs since the subquery has no
         # alias
@@ -1898,7 +1833,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
     def test_join(self):
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         # TODO: do we want aliased() to detect a query and convert to
         # subquery() automatically ?
@@ -1918,7 +1853,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_group_by_plain(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         q1 = s.query(User.id, User.name).group_by(User.name)
         self.assert_compile(
@@ -1931,7 +1866,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_group_by_append(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         q1 = s.query(User.id, User.name).group_by(User.name)
 
@@ -1946,7 +1881,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_group_by_cancellation(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         q1 = s.query(User.id, User.name).group_by(User.name)
         # test cancellation by using None, replacement with something else
@@ -1969,7 +1904,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_group_by_cancelled_still_present(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         q1 = s.query(User.id, User.name).group_by(User.name).group_by(None)
 
@@ -1977,7 +1912,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_order_by_plain(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         q1 = s.query(User.id, User.name).order_by(User.name)
         self.assert_compile(
@@ -1990,7 +1925,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_order_by_append(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         q1 = s.query(User.id, User.name).order_by(User.name)
 
@@ -2005,7 +1940,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_order_by_cancellation(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         q1 = s.query(User.id, User.name).order_by(User.name)
         # test cancellation by using None, replacement with something else
@@ -2028,7 +1963,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_order_by_cancellation_false(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         q1 = s.query(User.id, User.name).order_by(User.name)
         # test cancellation by using None, replacement with something else
@@ -2051,7 +1986,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_order_by_cancelled_allows_assertions(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         q1 = s.query(User.id, User.name).order_by(User.name).order_by(None)
 
@@ -2059,7 +1994,7 @@ class ExpressionTest(QueryTest, AssertsCompiledSQL):
 
     def test_legacy_order_by_cancelled_allows_assertions(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         q1 = s.query(User.id, User.name).order_by(User.name).order_by(False)
 
@@ -2118,7 +2053,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._func_fixture()
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
 
         u1 = aliased(User)
         self.assert_compile(
@@ -2131,7 +2066,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._func_fixture(label=True)
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
 
         u1 = aliased(User)
         self.assert_compile(
@@ -2144,7 +2079,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._func_fixture()
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
 
         u1 = aliased(User)
         self.assert_compile(
@@ -2157,7 +2092,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         User, Address = self.classes("User", "Address")
         self._fixture(label=True)
 
-        s = Session()
+        s = fixture_session()
         q = s.query(User).order_by("email_ad")
         self.assert_compile(
             q,
@@ -2172,7 +2107,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         User, Address = self.classes("User", "Address")
         self._fixture(label=True)
 
-        s = Session()
+        s = fixture_session()
         ua = aliased(User)
         q = s.query(ua).order_by("email_ad")
 
@@ -2187,7 +2122,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture(label=True)
 
         ua = aliased(User)
-        s = Session()
+        s = fixture_session()
         q = s.query(ua).order_by(ua.ead)
         self.assert_compile(
             q,
@@ -2202,7 +2137,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture(label=True)
 
         ua = aliased(User)
-        s = Session()
+        s = fixture_session()
         q = s.query(ua.ead).order_by(ua.ead)
         self.assert_compile(
             q,
@@ -2228,7 +2163,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture(label=True)
 
         ua = aliased(User)
-        s = Session()
+        s = fixture_session()
         q = s.query(User.ead, ua.ead).order_by(User.ead, ua.ead)
         self.assert_compile(
             q,
@@ -2256,7 +2191,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture(label=True, polymorphic=True)
 
         ua = aliased(User)
-        s = Session()
+        s = fixture_session()
         q = s.query(ua, User.id).order_by(ua.ead)
         self.assert_compile(
             q,
@@ -2272,7 +2207,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture(label=False)
 
         ua = aliased(User)
-        s = Session()
+        s = fixture_session()
         q = s.query(ua).order_by(ua.ead)
         self.assert_compile(
             q,
@@ -2287,7 +2222,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture(label=False)
 
         ua = aliased(User)
-        s = Session()
+        s = fixture_session()
         q = s.query(ua.ead).order_by(ua.ead)
         self.assert_compile(
             q,
@@ -2313,7 +2248,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture(label=False)
 
         ua = aliased(User)
-        s = Session()
+        s = fixture_session()
         q = s.query(User.ead, ua.ead).order_by(User.ead, ua.ead)
         self.assert_compile(
             q,
@@ -2341,7 +2276,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         User, Address = self.classes("User", "Address")
         self._fixture(label=True)
 
-        s = Session()
+        s = fixture_session()
         q = s.query(User).order_by(User.ead)
         # this one is a bit of a surprise; this is compiler
         # label-order-by logic kicking in, but won't work in more
@@ -2359,7 +2294,7 @@ class ColumnPropertyTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         User, Address = self.classes("User", "Address")
         self._fixture(label=True)
 
-        s = Session()
+        s = fixture_session()
         q = s.query(User).options(defer(User.ead)).order_by(User.ead)
         self.assert_compile(
             q,
@@ -2387,7 +2322,7 @@ class ComparatorTest(QueryTest):
         # this use case isn't exactly needed in this form, however it tests
         # that we resolve for multiple __clause_element__() calls as is needed
         # by systems like composites
-        sess = Session()
+        sess = fixture_session()
         eq_(
             sess.query(Comparator(User.id))
             .order_by(Comparator(User.id))
@@ -2404,16 +2339,16 @@ class SliceTest(QueryTest):
     def test_first(self):
         User = self.classes.User
 
-        assert User(id=7) == create_session().query(User).first()
+        assert User(id=7) == fixture_session().query(User).first()
 
         assert (
-            create_session().query(User).filter(User.id == 27).first() is None
+            fixture_session().query(User).filter(User.id == 27).first() is None
         )
 
     def test_negative_indexes_raise(self):
         User = self.classes.User
 
-        sess = create_session(future=True)
+        sess = fixture_session(future=True)
         q = sess.query(User).order_by(User.id)
 
         with expect_raises_message(
@@ -2454,7 +2389,7 @@ class SliceTest(QueryTest):
 
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User).order_by(User.id)
 
         self.assert_sql(
@@ -2516,7 +2451,7 @@ class SliceTest(QueryTest):
     def test_first_against_expression_offset(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(User)
             .order_by(User.id)
@@ -2540,7 +2475,7 @@ class SliceTest(QueryTest):
     def test_full_slice_against_expression_offset(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(User)
             .order_by(User.id)
@@ -2563,7 +2498,7 @@ class SliceTest(QueryTest):
     def test_full_slice_against_integer_offset(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User).order_by(User.id).offset(2)
 
         self.assert_sql(
@@ -2583,7 +2518,7 @@ class SliceTest(QueryTest):
     def test_start_slice_against_expression_offset(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User).order_by(User.id).offset(literal_column("2"))
 
         self.assert_sql(
@@ -2606,14 +2541,14 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
     def test_basic(self):
         User = self.classes.User
 
-        users = create_session().query(User).all()
+        users = fixture_session().query(User).all()
         eq_([User(id=7), User(id=8), User(id=9), User(id=10)], users)
 
     @testing.requires.offset
     def test_limit_offset(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         assert [User(id=8), User(id=9)] == sess.query(User).order_by(
             User.id
@@ -2632,7 +2567,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
     def test_select_with_bindparam_offset_limit(self):
         """Does a query allow bindparam for the limit?"""
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
         q1 = (
             sess.query(self.classes.User)
             .order_by(self.classes.User.id)
@@ -2659,7 +2594,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
     @testing.requires.bound_limit_offset
     def test_select_with_bindparam_offset_limit_w_cast(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             list(
                 sess.query(User)
@@ -2677,7 +2612,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
     def test_exists(self):
         User = self.classes.User
 
-        sess = create_session(testing.db)
+        sess = fixture_session()
 
         assert sess.query(exists().where(User.id == 9)).scalar()
         assert not sess.query(exists().where(User.id == 29)).scalar()
@@ -2685,16 +2620,16 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
     def test_one_filter(self):
         User = self.classes.User
 
-        assert [User(id=8), User(id=9)] == create_session().query(User).filter(
-            User.name.endswith("ed")
-        ).all()
+        assert [User(id=8), User(id=9)] == fixture_session().query(
+            User
+        ).filter(User.name.endswith("ed")).all()
 
     def test_contains(self):
         """test comparing a collection to an object instance."""
 
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         address = sess.query(Address).get(3)
         assert [User(id=8)] == sess.query(User).filter(
             User.addresses.contains(address)
@@ -2723,7 +2658,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
 
     def test_clause_element_ok(self):
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(User).filter(User.addresses),
             "SELECT users.id AS users_id, users.name AS users_name "
@@ -2735,7 +2670,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
         unique"""
 
         User, Address = self.classes.User, self.classes.Address
-        sess = Session()
+        sess = fixture_session()
         a1, a2 = sess.query(Address).order_by(Address.id)[0:2]
         self.assert_compile(
             sess.query(User)
@@ -2754,7 +2689,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
         # SQL compilation
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         assert [User(id=8), User(id=9)] == sess.query(User).filter(
             User.addresses.any(Address.email_address.like("%ed%"))
@@ -2789,7 +2724,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
         # SQL compilation
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         # test that any() doesn't overcorrelate
         assert [User(id=7), User(id=8)] == sess.query(User).join(
@@ -2807,7 +2742,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         assert [Address(id=5)] == sess.query(Address).filter(
             Address.user.has(name="fred")
         ).all()
@@ -2856,7 +2791,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
     def test_contains_m2m(self):
         Item, Order = self.classes.Item, self.classes.Order
 
-        sess = create_session()
+        sess = fixture_session()
         item = sess.query(Item).get(3)
 
         eq_(
@@ -2912,7 +2847,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         assert_raises_message(
             sa.exc.ArgumentError,
             "Mapped instance expected for relationship comparison to object.",
@@ -2933,7 +2868,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         user = sess.query(User).get(8)
         assert [Address(id=2), Address(id=3), Address(id=4)] == sess.query(
             Address
@@ -2978,7 +2913,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
     def test_filter_by(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         user = sess.query(User).get(8)
         assert [Address(id=2), Address(id=3), Address(id=4)] == sess.query(
             Address
@@ -2999,7 +2934,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
     def test_filter_by_tables(self):
         users = self.tables.users
         addresses = self.tables.addresses
-        sess = create_session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(users)
             .filter_by(name="ed")
@@ -3014,7 +2949,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
 
     def test_empty_filters(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
 
         q1 = sess.query(User)
 
@@ -3023,7 +2958,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
 
     def test_filter_by_no_property(self):
         addresses = self.tables.addresses
-        sess = create_session()
+        sess = fixture_session()
         assert_raises_message(
             sa.exc.InvalidRequestError,
             'Entity namespace for "addresses" has no property "name"',
@@ -3038,7 +2973,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
             self.classes.Address,
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         # scalar
         eq_(
@@ -3111,7 +3046,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
 
         eq_(
             [(7,), (8,), (9,), (10,)],
-            create_session()
+            fixture_session()
             .query(User.id)
             .filter_by()
             .order_by(User.id)
@@ -3119,7 +3054,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
         )
         eq_(
             [(7,), (8,), (9,), (10,)],
-            create_session()
+            fixture_session()
             .query(User.id)
             .filter_by(**{})
             .order_by(User.id)
@@ -3128,7 +3063,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
 
     def test_text_coerce(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
         self.assert_compile(
             s.query(User).filter(text("name='ed'")),
             "SELECT users.id AS users_id, users.name "
@@ -3136,7 +3071,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
         )
 
     def test_filter_by_non_entity(self):
-        s = create_session()
+        s = fixture_session()
         e = sa.func.count(123)
         assert_raises_message(
             sa_exc.InvalidRequestError,
@@ -3197,7 +3132,7 @@ class HasAnyTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
 
     def test_has_composite_secondary(self):
         A, D = self.classes("A", "D")
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(A).filter(A.d.has(D.id == 1)),
             "SELECT a.id AS a_id, a.b_id AS a_b_id FROM a WHERE EXISTS "
@@ -3207,7 +3142,7 @@ class HasAnyTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
 
     def test_has_many_to_one(self):
         B, C = self.classes("B", "C")
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(B).filter(B.c.has(C.id == 1)),
             "SELECT b.id AS b_id, b.c_id AS b_c_id FROM b WHERE "
@@ -3216,7 +3151,7 @@ class HasAnyTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
 
     def test_any_many_to_many(self):
         B, D = self.classes("B", "D")
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(B).filter(B.d.any(D.id == 1)),
             "SELECT b.id AS b_id, b.c_id AS b_c_id FROM b WHERE "
@@ -3226,7 +3161,7 @@ class HasAnyTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
 
     def test_any_one_to_many(self):
         B, C = self.classes("B", "C")
-        s = Session()
+        s = fixture_session()
         self.assert_compile(
             s.query(C).filter(C.bs.any(B.id == 1)),
             "SELECT c.id AS c_id, c.d_id AS c_d_id FROM c WHERE "
@@ -3235,7 +3170,7 @@ class HasAnyTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
 
     def test_any_many_to_many_doesnt_overcorrelate(self):
         B, D = self.classes("B", "D")
-        s = Session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(B).join(B.d).filter(B.d.any(D.id == 1)),
@@ -3248,7 +3183,7 @@ class HasAnyTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
 
     def test_has_doesnt_overcorrelate(self):
         B, C = self.classes("B", "C")
-        s = Session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(B).join(B.c).filter(B.c.has(C.id == 1)),
@@ -3260,7 +3195,7 @@ class HasAnyTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
 
     def test_has_doesnt_get_aliased_join_subq(self):
         B, C = self.classes("B", "C")
-        s = Session()
+        s = fixture_session()
 
         ca = aliased(C)
         self.assert_compile(
@@ -3273,7 +3208,7 @@ class HasAnyTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
 
     def test_any_many_to_many_doesnt_get_aliased_join_subq(self):
         B, D = self.classes("B", "D")
-        s = Session()
+        s = fixture_session()
 
         da = aliased(D)
         self.assert_compile(
@@ -3290,7 +3225,7 @@ class HasAnyTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
 class HasMapperEntitiesTest(QueryTest):
     def test_entity(self):
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
 
         q = s.query(User)
 
@@ -3298,7 +3233,7 @@ class HasMapperEntitiesTest(QueryTest):
 
     def test_cols(self):
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
 
         q = s.query(User.id)
 
@@ -3306,7 +3241,7 @@ class HasMapperEntitiesTest(QueryTest):
 
     def test_cols_set_entities(self):
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
 
         q = s.query(User.id)
 
@@ -3315,7 +3250,7 @@ class HasMapperEntitiesTest(QueryTest):
 
     def test_entity_set_entities(self):
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
 
         q = s.query(User)
 
@@ -3329,7 +3264,7 @@ class SetOpsTest(QueryTest, AssertsCompiledSQL):
     def test_union(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         fred = s.query(User).filter(User.name == "fred")
         ed = s.query(User).filter(User.name == "ed")
@@ -3355,7 +3290,7 @@ class SetOpsTest(QueryTest, AssertsCompiledSQL):
 
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
         q1 = (
             s.query(User, Address)
             .join(User.addresses)
@@ -3382,7 +3317,7 @@ class SetOpsTest(QueryTest, AssertsCompiledSQL):
 
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
         q1 = s.query(User, literal("x"))
         q2 = s.query(User, literal_column("'y'"))
         q3 = q1.union(q2)
@@ -3401,7 +3336,7 @@ class SetOpsTest(QueryTest, AssertsCompiledSQL):
     def test_union_literal_expressions_results(self):
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
 
         x_literal = literal("x")
         q1 = s.query(User, x_literal)
@@ -3435,7 +3370,7 @@ class SetOpsTest(QueryTest, AssertsCompiledSQL):
     def test_union_labeled_anonymous_columns(self):
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
 
         c1, c2 = column("c1"), column("c2")
         q1 = s.query(User, c1.label("foo"), c1.label("bar"))
@@ -3460,7 +3395,7 @@ class SetOpsTest(QueryTest, AssertsCompiledSQL):
     def test_order_by_anonymous_col(self):
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
 
         c1, c2 = column("c1"), column("c2")
         f = c1.label("foo")
@@ -3493,7 +3428,7 @@ class SetOpsTest(QueryTest, AssertsCompiledSQL):
     def test_union_mapped_colnames_preserved_across_subquery(self):
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
         q1 = s.query(User.name)
         q2 = s.query(User.name)
 
@@ -3513,7 +3448,7 @@ class SetOpsTest(QueryTest, AssertsCompiledSQL):
     def test_intersect(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         fred = s.query(User).filter(User.name == "fred")
         ed = s.query(User).filter(User.name == "ed")
@@ -3525,7 +3460,7 @@ class SetOpsTest(QueryTest, AssertsCompiledSQL):
     def test_eager_load(self):
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         fred = s.query(User).filter(User.name == "fred")
         ed = s.query(User).filter(User.name == "ed")
@@ -3551,7 +3486,7 @@ class AggregateTest(QueryTest):
     def test_sum(self):
         Order = self.classes.Order
 
-        sess = create_session()
+        sess = fixture_session()
         orders = sess.query(Order).filter(Order.id.in_([2, 3, 4]))
         eq_(
             orders.with_entities(
@@ -3563,7 +3498,7 @@ class AggregateTest(QueryTest):
     def test_apply(self):
         Order = self.classes.Order
 
-        sess = create_session()
+        sess = fixture_session()
         assert sess.query(func.sum(Order.user_id * Order.address_id)).filter(
             Order.id.in_([2, 3, 4])
         ).one() == (79,)
@@ -3571,7 +3506,7 @@ class AggregateTest(QueryTest):
     def test_having(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         assert [User(name="ed", id=8)] == sess.query(User).order_by(
             User.id
         ).group_by(User).join("addresses").having(
@@ -3593,7 +3528,7 @@ class ExistsTest(QueryTest, AssertsCompiledSQL):
 
     def test_exists(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
 
         q1 = sess.query(User)
         self.assert_compile(
@@ -3612,7 +3547,7 @@ class ExistsTest(QueryTest, AssertsCompiledSQL):
     def test_exists_col_warning(self):
         User = self.classes.User
         Address = self.classes.Address
-        sess = create_session()
+        sess = fixture_session()
 
         q1 = sess.query(User, Address).filter(User.id == Address.user_id)
         self.assert_compile(
@@ -3625,7 +3560,7 @@ class ExistsTest(QueryTest, AssertsCompiledSQL):
 
     def test_exists_w_select_from(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
 
         q1 = sess.query().select_from(User).exists()
         self.assert_compile(
@@ -3637,7 +3572,7 @@ class CountTest(QueryTest):
     def test_basic(self):
         users, User = self.tables.users, self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         eq_(s.query(User).count(), 4)
 
@@ -3646,7 +3581,7 @@ class CountTest(QueryTest):
     def test_basic_future(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         eq_(
             s.execute(select(func.count()).select_from(User)).scalar(),
@@ -3662,7 +3597,7 @@ class CountTest(QueryTest):
 
     def test_count_char(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
         # '*' is favored here as the most common character,
         # it is reported that Informix doesn't like count(1),
         # rumors about Oracle preferring count(1) don't appear
@@ -3681,7 +3616,7 @@ class CountTest(QueryTest):
     def test_multiple_entity(self):
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(User, Address).join(Address, true())
         eq_(q.count(), 20)  # cartesian product
 
@@ -3691,7 +3626,7 @@ class CountTest(QueryTest):
     def test_multiple_entity_future(self):
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         stmt = select(User, Address).join(Address, true())
 
@@ -3706,7 +3641,7 @@ class CountTest(QueryTest):
     def test_nested(self):
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(User, Address).join(Address, true()).limit(2)
         eq_(q.count(), 2)
 
@@ -3719,7 +3654,7 @@ class CountTest(QueryTest):
     def test_nested_future(self):
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         stmt = select(User, Address).join(Address, true()).limit(2)
         eq_(
@@ -3744,7 +3679,7 @@ class CountTest(QueryTest):
 
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         q = s.query(func.count(distinct(User.name)))
         eq_(q.count(), 1)
@@ -3766,7 +3701,7 @@ class CountTest(QueryTest):
 
         User, Address = self.classes.User, self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
 
         stmt = select(func.count(distinct(User.name)))
         eq_(
@@ -3814,11 +3749,11 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
 
         eq_(
             [User(id=7), User(id=8), User(id=9), User(id=10)],
-            create_session().query(User).order_by(User.id).distinct().all(),
+            fixture_session().query(User).order_by(User.id).distinct().all(),
         )
         eq_(
             [User(id=7), User(id=9), User(id=8), User(id=10)],
-            create_session()
+            fixture_session()
             .query(User)
             .distinct()
             .order_by(desc(User.name))
@@ -3839,7 +3774,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
 
         expr = (User.id.op("+")(2)).label("label")
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(expr).select_from(User).order_by(desc(expr)).distinct()
 
@@ -3856,7 +3791,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
 
         expr = User.id + literal(1)
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(expr).select_from(User).order_by(asc(expr)).distinct()
 
         # no double col in the select list,
@@ -3872,7 +3807,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
 
         expr = (User.id + literal(1)).label("label")
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(expr).select_from(User).order_by(asc(expr)).distinct()
 
         # no double col in the select list,
@@ -3888,7 +3823,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
 
         expr = (User.id + literal(1)).label("label")
 
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(expr)
             .select_from(User)
@@ -3926,7 +3861,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
 
         """
         User, Address = self.classes.User, self.classes.Address
-        sess = create_session()
+        sess = fixture_session()
 
         subq = (
             sess.query(User, Address.email_address)
@@ -3949,7 +3884,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
         """
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(User, Address.email_address)
             .join("addresses")
@@ -3972,7 +3907,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
 
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         # test that it works on embedded joinedload/LIMIT subquery
         q = (
@@ -4001,7 +3936,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
 
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         subq = (
             sess.query(
@@ -4046,7 +3981,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
 
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = (
             sess.query(
@@ -4086,7 +4021,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_sql_one(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         subq = (
             sess.query(
@@ -4123,7 +4058,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_sql_union_one(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = (
             sess.query(
@@ -4160,7 +4095,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_sql_union_two(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = (
             sess.query(
@@ -4190,7 +4125,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_sql_two(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = (
             sess.query(User)
@@ -4226,7 +4161,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_sql_three(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = (
             sess.query(User.id, User.name.label("foo"), Address.id)
@@ -4246,7 +4181,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_distinct_on(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         subq = (
             sess.query(
@@ -4285,7 +4220,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_sql_three_using_label_reference(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = (
             sess.query(User.id, User.name.label("foo"), Address.id)
@@ -4305,7 +4240,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_sql_illegal_label_reference(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User.id, User.name.label("foo"), Address.id).distinct(
             "not a label"
@@ -4324,7 +4259,7 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
     def test_columns_augmented_sql_four(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = (
             sess.query(User)
@@ -4363,14 +4298,14 @@ class DistinctTest(QueryTest, AssertsCompiledSQL):
 class PrefixSuffixWithTest(QueryTest, AssertsCompiledSQL):
     def test_one_prefix(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
         query = sess.query(User.name).prefix_with("PREFIX_1")
         expected = "SELECT PREFIX_1 " "users.name AS users_name FROM users"
         self.assert_compile(query, expected, dialect=default.DefaultDialect())
 
     def test_one_suffix(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
         query = sess.query(User.name).suffix_with("SUFFIX_1")
         # trailing space for some reason
         expected = "SELECT users.name AS users_name FROM users SUFFIX_1 "
@@ -4378,7 +4313,7 @@ class PrefixSuffixWithTest(QueryTest, AssertsCompiledSQL):
 
     def test_many_prefixes(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
         query = sess.query(User.name).prefix_with("PREFIX_1", "PREFIX_2")
         expected = (
             "SELECT PREFIX_1 PREFIX_2 " "users.name AS users_name FROM users"
@@ -4387,7 +4322,7 @@ class PrefixSuffixWithTest(QueryTest, AssertsCompiledSQL):
 
     def test_chained_prefixes(self):
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
         query = (
             sess.query(User.name)
             .prefix_with("PREFIX_1")
@@ -4425,7 +4360,7 @@ class YieldTest(_fixtures.FixtureTest):
 
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         q = iter(
             sess.query(User)
             .yield_per(1)
@@ -4451,7 +4386,7 @@ class YieldTest(_fixtures.FixtureTest):
 
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         @event.listens_for(sess, "do_orm_execute")
         def check(ctx):
@@ -4475,7 +4410,7 @@ class YieldTest(_fixtures.FixtureTest):
 
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         @event.listens_for(sess, "do_orm_execute")
         def check(ctx):
@@ -4500,7 +4435,7 @@ class YieldTest(_fixtures.FixtureTest):
         self._eagerload_mappings()
 
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User).options(joinedload("addresses")).yield_per(1)
         assert_raises_message(
             sa_exc.InvalidRequestError,
@@ -4513,7 +4448,7 @@ class YieldTest(_fixtures.FixtureTest):
         self._eagerload_mappings()
 
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User).options(subqueryload("addresses")).yield_per(1)
         assert_raises_message(
             sa_exc.InvalidRequestError,
@@ -4526,7 +4461,7 @@ class YieldTest(_fixtures.FixtureTest):
         self._eagerload_mappings(addresses_lazy="subquery")
 
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User).yield_per(1)
         assert_raises_message(
             sa_exc.InvalidRequestError,
@@ -4538,7 +4473,7 @@ class YieldTest(_fixtures.FixtureTest):
     def test_joinedload_m2o_ok(self):
         self._eagerload_mappings(user_lazy="joined")
         Address = self.classes.Address
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Address).yield_per(1)
         q.all()
 
@@ -4546,7 +4481,7 @@ class YieldTest(_fixtures.FixtureTest):
         self._eagerload_mappings()
 
         User = self.classes.User
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(User)
             .options(subqueryload("addresses"))
@@ -4566,7 +4501,7 @@ class YieldTest(_fixtures.FixtureTest):
     def test_m2o_joinedload_not_others(self):
         self._eagerload_mappings(addresses_lazy="joined")
         Address = self.classes.Address
-        sess = create_session()
+        sess = fixture_session()
         q = (
             sess.query(Address)
             .options(lazyload("*"), joinedload("user"))
@@ -4591,7 +4526,7 @@ class HintsTest(QueryTest, AssertsCompiledSQL):
 
         dialect = mysql.dialect()
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(User).with_hint(
@@ -4627,7 +4562,7 @@ class HintsTest(QueryTest, AssertsCompiledSQL):
     def test_statement_hints(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         stmt = (
             sess.query(User)
             .with_statement_hint("test hint one")
@@ -4658,7 +4593,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         assert_raises_message(
             sa_exc.ArgumentError,
             "Textual SQL expression",
-            create_session().query(User).from_statement,
+            fixture_session().query(User).from_statement,
             "select * from users order by id",
         )
 
@@ -4666,14 +4601,14 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
 
         eq_(
-            create_session()
+            fixture_session()
             .query(User)
             .from_statement(text("select * from users order by id"))
             .first(),
             User(id=7),
         )
         eq_(
-            create_session()
+            fixture_session()
             .query(User)
             .from_statement(
                 text("select * from users where name='nonexistent'")
@@ -4685,7 +4620,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
     def test_select_star_future(self):
         User = self.classes.User
 
-        sess = Session(testing.db)
+        sess = fixture_session()
         eq_(
             sess.execute(
                 select(User).from_statement(
@@ -4712,7 +4647,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         # ordering doesn't matter
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(User).from_statement(
             text(
                 "select name, 27 as foo, id as users_id from users order by id"
@@ -4733,7 +4668,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         # ordering doesn't matter
         User = self.classes.User
 
-        s = create_session(testing.db)
+        s = fixture_session()
         q = select(User).from_statement(
             text(
                 "select name, 27 as foo, id as users_id from users order by id"
@@ -4755,7 +4690,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(User, Address).from_statement(
             text(
                 "select users.name AS users_name, users.id AS users_id, "
@@ -4780,7 +4715,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        s = create_session(testing.db)
+        s = fixture_session()
         q = select(User, Address).from_statement(
             text(
                 "select users.name AS users_name, users.id AS users_id, "
@@ -4805,7 +4740,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
         q = (
             s.query(User)
             .from_statement(
@@ -4831,7 +4766,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        s = create_session(testing.db)
+        s = fixture_session()
         q = (
             select(User)
             .from_statement(
@@ -4857,7 +4792,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        s = create_session()
+        s = fixture_session()
         q = (
             s.query(User)
             .from_statement(
@@ -4883,7 +4818,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        s = create_session(testing.db)
+        s = fixture_session()
         q = (
             select(User)
             .from_statement(
@@ -4911,7 +4846,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         users = self.tables.users
         addresses = self.tables.addresses
 
-        s = create_session()
+        s = fixture_session()
         q = s.query(User.name, User.id, Address.id).from_statement(
             text(
                 "select users.name AS users_name, users.id AS users_id, "
@@ -4950,7 +4885,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         if add_columns:
             text_clause = text_clause.columns(User.id, User.name)
 
-        s = create_session()
+        s = fixture_session()
         q = (
             s.query(User)
             .from_statement(text_clause)
@@ -4966,12 +4901,12 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
 
         eq_(
-            create_session().query(User).filter(text("id in (8, 9)")).all(),
+            fixture_session().query(User).filter(text("id in (8, 9)")).all(),
             [User(id=8), User(id=9)],
         )
 
         eq_(
-            create_session()
+            fixture_session()
             .query(User)
             .filter(text("name='fred'"))
             .filter(text("id=9"))
@@ -4979,7 +4914,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
             [User(id=9)],
         )
         eq_(
-            create_session()
+            fixture_session()
             .query(User)
             .filter(text("name='fred'"))
             .filter(User.id == 9)
@@ -4990,7 +4925,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
     def test_whereclause_future(self):
         User = self.classes.User
 
-        s = create_session(testing.db)
+        s = fixture_session()
         eq_(
             s.execute(select(User).filter(text("id in (8, 9)")))
             .scalars()
@@ -5022,14 +4957,14 @@ class TextTest(QueryTest, AssertsCompiledSQL):
             sa_exc.ArgumentError,
             r"Textual SQL expression 'id in \(:id1, :id2\)' "
             "should be explicitly declared",
-            create_session().query(User).filter,
+            fixture_session().query(User).filter,
             "id in (:id1, :id2)",
         )
 
     def test_plain_textual_column(self):
         User = self.classes.User
 
-        s = create_session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(User.id, text("users.name")),
@@ -5048,7 +4983,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
 
     def test_via_select(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
         eq_(
             s.query(User)
             .from_statement(
@@ -5062,7 +4997,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
 
     def test_via_textasfrom_from_statement(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         eq_(
             s.query(User)
@@ -5077,7 +5012,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
 
     def test_columns_via_textasfrom_from_statement(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         eq_(
             s.query(User.id, User.name)
@@ -5092,7 +5027,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
 
     def test_via_textasfrom_use_mapped_columns(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         eq_(
             s.query(User)
@@ -5107,7 +5042,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
 
     def test_via_textasfrom_select_from(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         eq_(
             s.query(User)
@@ -5123,7 +5058,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
 
     def test_group_by_accepts_text(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         q = s.query(User).group_by(text("name"))
         self.assert_compile(
@@ -5140,7 +5075,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
 
     def test_order_by_w_eager_one(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         # from 1.0.0 thru 1.0.2, the "name" symbol here was considered
         # to be part of the things we need to ORDER BY and it was being
@@ -5169,7 +5104,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
 
     def test_order_by_w_eager_two(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         q = (
             s.query(User)
@@ -5185,7 +5120,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
 
     def test_order_by_w_eager_three(self):
         User = self.classes.User
-        s = create_session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(User)
@@ -5217,7 +5152,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
     def test_order_by_w_eager_four(self):
         User = self.classes.User
         Address = self.classes.Address
-        s = create_session()
+        s = fixture_session()
 
         self.assert_compile(
             s.query(User)
@@ -5254,7 +5189,7 @@ class TextTest(QueryTest, AssertsCompiledSQL):
         User = self.classes.User
         Address = self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User, Address.email_address.label("email_address"))
 
@@ -5286,16 +5221,20 @@ class TextErrorTest(QueryTest, AssertsCompiledSQL):
 
     def test_filter(self):
         User = self.classes.User
-        self._test(Session().query(User.id).filter, "myid == 5", "myid == 5")
+        self._test(
+            fixture_session().query(User.id).filter, "myid == 5", "myid == 5"
+        )
 
     def test_having(self):
         User = self.classes.User
-        self._test(Session().query(User.id).having, "myid == 5", "myid == 5")
+        self._test(
+            fixture_session().query(User.id).having, "myid == 5", "myid == 5"
+        )
 
     def test_from_statement(self):
         User = self.classes.User
         self._test(
-            Session().query(User.id).from_statement,
+            fixture_session().query(User.id).from_statement,
             "select id from user",
             "select id from user",
         )
@@ -5311,7 +5250,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
             self.classes.Order,
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         u1 = q.filter_by(name="jack").one()
@@ -5362,7 +5301,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
     def test_select_from(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = sess.query(User).get(7)
         q = sess.query(Address).select_from(Address).with_parent(u1)
         self.assert_compile(
@@ -5377,7 +5316,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
     def test_from_entity_standalone_fn(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = sess.query(User).get(7)
         q = sess.query(User, Address).filter(
             with_parent(u1, "addresses", from_entity=Address)
@@ -5396,7 +5335,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
     def test_from_entity_query_entity(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = sess.query(User).get(7)
         q = sess.query(User, Address).with_parent(
             u1, "addresses", from_entity=Address
@@ -5415,7 +5354,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
     def test_select_from_alias(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = sess.query(User).get(7)
         a1 = aliased(Address)
         q = sess.query(a1).with_parent(u1)
@@ -5432,7 +5371,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
     def test_select_from_alias_explicit_prop(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = sess.query(User).get(7)
         a1 = aliased(Address)
         q = sess.query(a1).with_parent(u1, "addresses")
@@ -5449,7 +5388,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
     def test_select_from_alias_from_entity(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = sess.query(User).get(7)
         a1 = aliased(Address)
         a2 = aliased(Address)
@@ -5470,7 +5409,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
     def test_select_from_alias_of_type(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         u1 = sess.query(User).get(7)
         a1 = aliased(Address)
         a2 = aliased(Address)
@@ -5491,7 +5430,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
     def test_noparent(self):
         Item, User = self.classes.Item, self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         u1 = q.filter_by(name="jack").one()
@@ -5508,7 +5447,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
     def test_m2m(self):
         Item, Keyword = self.classes.Item, self.classes.Keyword
 
-        sess = create_session()
+        sess = fixture_session()
         i1 = sess.query(Item).filter_by(id=2).one()
         k = sess.query(Keyword).with_parent(i1).all()
         assert [
@@ -5520,7 +5459,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
     def test_with_transient(self):
         User, Order = self.classes.User, self.classes.Order
 
-        sess = Session()
+        sess = fixture_session()
 
         q = sess.query(User)
         u1 = q.filter_by(name="jack").one()
@@ -5548,7 +5487,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
     def test_with_pending_autoflush(self):
         Order, User = self.classes.Order, self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         o1 = sess.query(Order).first()
         opending = Order(id=20, user_id=o1.user_id)
@@ -5565,7 +5504,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
     def test_with_pending_no_autoflush(self):
         Order, User = self.classes.Order, self.classes.User
 
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
 
         o1 = sess.query(Order).first()
         opending = Order(user_id=o1.user_id)
@@ -5579,7 +5518,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
         """bindparams used in the 'parent' query are unique"""
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
         u1, u2 = sess.query(User).order_by(User.id)[0:2]
 
         q1 = sess.query(Address).with_parent(u1, "addresses")
@@ -5604,7 +5543,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
     def test_unique_binds_or(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
         u1, u2 = sess.query(User).order_by(User.id)[0:2]
 
         self.assert_compile(
@@ -5672,7 +5611,7 @@ class WithTransientOnNone(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture1()
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         q = sess.query(Address).filter(Address.user == User())
         assert_raises_message(
@@ -5686,7 +5625,7 @@ class WithTransientOnNone(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture1()
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         q = sess.query(Address).filter(Address.user == User(id=None))
         with expect_warnings("Got None for value of column "):
@@ -5703,7 +5642,7 @@ class WithTransientOnNone(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture1()
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User()
         # id is not set, so evaluates to NEVER_SET
@@ -5725,7 +5664,7 @@ class WithTransientOnNone(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture1()
         User, Address = self.classes.User, self.classes.Address
 
-        s = Session()
+        s = fixture_session()
         q = s.query(Address).filter(
             Address.special_user == User(id=None, name=None)
         )
@@ -5749,7 +5688,7 @@ class WithTransientOnNone(_fixtures.FixtureTest, AssertsCompiledSQL):
             self.classes.Dingaling,
             self.classes.HasDingaling,
         )
-        s = Session()
+        s = fixture_session()
         d = Dingaling(id=1)
         s.add(d)
         s.flush()
@@ -5773,7 +5712,7 @@ class WithTransientOnNone(_fixtures.FixtureTest, AssertsCompiledSQL):
             self.classes.Dingaling,
             self.classes.HasDingaling,
         )
-        s = Session()
+        s = fixture_session()
         d = Dingaling()
         s.add(d)
         s.flush()
@@ -5803,7 +5742,7 @@ class WithTransientOnNone(_fixtures.FixtureTest, AssertsCompiledSQL):
             self.classes.Dingaling,
             self.classes.HasDingaling,
         )
-        s = Session()
+        s = fixture_session()
         d = Dingaling(data="some data")
         s.add(d)
         s.commit()
@@ -5825,7 +5764,7 @@ class WithTransientOnNone(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture1()
         User, Address = self.classes.User, self.classes.Address
 
-        sess = Session()
+        sess = fixture_session()
 
         q = sess.query(User).with_parent(Address(user_id=None), "user")
         with expect_warnings("Got None for value of column"):
@@ -5840,7 +5779,7 @@ class WithTransientOnNone(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture1()
         User, Address = self.classes.User, self.classes.Address
 
-        s = Session()
+        s = fixture_session()
         q = s.query(User).with_parent(
             Address(user_id=None, email_address=None), "special_user"
         )
@@ -5858,7 +5797,7 @@ class WithTransientOnNone(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture1()
         User, Address = self.classes.User, self.classes.Address
 
-        s = Session()
+        s = fixture_session()
         q = s.query(Address).filter(Address.user != User(id=None))
         with expect_warnings("Got None for value of column"):
             self.assert_compile(
@@ -5876,7 +5815,7 @@ class WithTransientOnNone(_fixtures.FixtureTest, AssertsCompiledSQL):
         self._fixture1()
         User, Address = self.classes.User, self.classes.Address
 
-        s = Session()
+        s = fixture_session()
 
         # this one does *not* warn because we do the criteria
         # without deferral
@@ -5965,7 +5904,7 @@ class SynonymTest(QueryTest, AssertsCompiledSQL):
     def test_options(self):
         User, Order = self.classes.User, self.classes.Order
 
-        s = create_session()
+        s = fixture_session()
 
         def go():
             result = (
@@ -5994,7 +5933,7 @@ class SynonymTest(QueryTest, AssertsCompiledSQL):
     def test_options_syn_of_syn(self):
         User, Order = self.classes.User, self.classes.Order
 
-        s = create_session()
+        s = fixture_session()
 
         def go():
             result = (
@@ -6023,7 +5962,7 @@ class SynonymTest(QueryTest, AssertsCompiledSQL):
     def test_options_syn_of_syn_string(self):
         User, Order = self.classes.User, self.classes.Order
 
-        s = create_session()
+        s = fixture_session()
 
         def go():
             result = (
@@ -6061,7 +6000,7 @@ class SynonymTest(QueryTest, AssertsCompiledSQL):
             [User.orders_syn, Order.items_syn],
             [User.orders_syn_2, Order.items_syn],
         ):
-            q = create_session().query(User)
+            q = fixture_session().query(User)
             for path in j:
                 q = q.join(path)
             q = q.filter_by(id=3)
@@ -6079,7 +6018,7 @@ class SynonymTest(QueryTest, AssertsCompiledSQL):
             ("name_syn", "orders_syn"),
             ("name_syn", "orders_syn_2"),
         ):
-            sess = create_session()
+            sess = fixture_session()
             q = sess.query(User)
 
             u1 = q.filter_by(**{nameprop: "jack"}).one()
@@ -6094,7 +6033,7 @@ class SynonymTest(QueryTest, AssertsCompiledSQL):
     def test_froms_aliased_col(self):
         Address, User = self.classes.Address, self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
         ua = aliased(User)
 
         q = sess.query(ua.name_syn).join(Address, ua.id == Address.user_id)
@@ -6126,7 +6065,7 @@ class ImmediateTest(_fixtures.FixtureTest):
     def test_one(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         assert_raises_message(
             sa.orm.exc.NoResultFound,
@@ -6208,7 +6147,7 @@ class ImmediateTest(_fixtures.FixtureTest):
     def test_one_or_none(self):
         User, Address = self.classes.User, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(sess.query(User).filter(User.id == 99).one_or_none(), None)
 
@@ -6291,7 +6230,7 @@ class ImmediateTest(_fixtures.FixtureTest):
     def test_scalar(self):
         User = self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         eq_(sess.query(User.id).filter_by(id=7).scalar(), 7)
         eq_(sess.query(User.id, User.name).filter_by(id=7).scalar(), 7)
@@ -6312,7 +6251,7 @@ class ExecutionOptionsTest(QueryTest):
     def test_option_building(self):
         User = self.classes.User
 
-        sess = create_session(bind=testing.db, autocommit=False)
+        sess = fixture_session(autocommit=False)
 
         q1 = sess.query(User)
         eq_(q1._execution_options, dict())
@@ -6330,7 +6269,7 @@ class ExecutionOptionsTest(QueryTest):
     def test_get_options(self):
         User = self.classes.User
 
-        sess = create_session(bind=testing.db, autocommit=False)
+        sess = fixture_session(autocommit=False)
 
         q = sess.query(User).execution_options(foo="bar", stream_results=True)
         eq_(q.get_execution_options(), dict(foo="bar", stream_results=True))
@@ -6350,9 +6289,7 @@ class ExecutionOptionsTest(QueryTest):
                     result.close()
                 return iter([])
 
-        sess = create_session(
-            bind=testing.db, autocommit=False, query_cls=TQuery
-        )
+        sess = fixture_session(autocommit=False, query_cls=TQuery)
         q1 = sess.query(User).execution_options(**execution_options)
         q1.all()
 
@@ -6367,7 +6304,7 @@ class BooleanEvalTest(fixtures.TestBase, testing.AssertsCompiledSQL):
         return d
 
     def test_one(self):
-        s = Session()
+        s = fixture_session()
         c = column("x", Boolean)
         self.assert_compile(
             s.query(c).filter(c),
@@ -6376,7 +6313,7 @@ class BooleanEvalTest(fixtures.TestBase, testing.AssertsCompiledSQL):
         )
 
     def test_two(self):
-        s = Session()
+        s = fixture_session()
         c = column("x", Boolean)
         self.assert_compile(
             s.query(c).filter(c),
@@ -6385,7 +6322,7 @@ class BooleanEvalTest(fixtures.TestBase, testing.AssertsCompiledSQL):
         )
 
     def test_three(self):
-        s = Session()
+        s = fixture_session()
         c = column("x", Boolean)
         self.assert_compile(
             s.query(c).filter(~c),
@@ -6394,7 +6331,7 @@ class BooleanEvalTest(fixtures.TestBase, testing.AssertsCompiledSQL):
         )
 
     def test_four(self):
-        s = Session()
+        s = fixture_session()
         c = column("x", Boolean)
         self.assert_compile(
             s.query(c).filter(~c),
@@ -6403,7 +6340,7 @@ class BooleanEvalTest(fixtures.TestBase, testing.AssertsCompiledSQL):
         )
 
     def test_five(self):
-        s = Session()
+        s = fixture_session()
         c = column("x", Boolean)
         self.assert_compile(
             s.query(c).having(c),
@@ -6431,26 +6368,26 @@ class SessionBindTest(QueryTest):
 
     def test_single_entity_q(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             session.query(User).all()
 
     def test_aliased_entity_q(self):
         User = self.classes.User
         u = aliased(User)
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             session.query(u).all()
 
     def test_sql_expr_entity_q(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             session.query(User.id).all()
 
     def test_sql_expr_subquery_from_entity(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             subq = session.query(User.id).subquery()
             session.query(subq).all()
@@ -6458,14 +6395,14 @@ class SessionBindTest(QueryTest):
     @testing.requires.boolean_col_expressions
     def test_sql_expr_exists_from_entity(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             subq = session.query(User.id).exists()
             session.query(subq).all()
 
     def test_sql_expr_cte_from_entity(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             cte = session.query(User.id).cte()
             subq = session.query(cte).subquery()
@@ -6473,7 +6410,7 @@ class SessionBindTest(QueryTest):
 
     def test_sql_expr_bundle_cte_from_entity(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             cte = session.query(User.id, User.name).cte()
             subq = session.query(cte).subquery()
@@ -6482,63 +6419,63 @@ class SessionBindTest(QueryTest):
 
     def test_count(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             session.query(User).count()
 
     def test_single_col(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             session.query(User.name).all()
 
     def test_single_col_from_subq(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             subq = session.query(User.id, User.name).subquery()
             session.query(subq.c.name).all()
 
     def test_aggregate_fn(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             session.query(func.max(User.name)).all()
 
     def test_case(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             session.query(case([(User.name == "x", "C")], else_="W")).all()
 
     def test_cast(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             session.query(cast(User.name, String())).all()
 
     def test_type_coerce(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             session.query(type_coerce(User.name, String())).all()
 
     def test_binary_op(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             session.query(User.name + "x").all()
 
     @testing.requires.boolean_col_expressions
     def test_boolean_op(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             session.query(User.name == "x").all()
 
     def test_bulk_update_no_sync(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session):
             session.query(User).filter(User.id == 15).update(
                 {"name": "foob"}, synchronize_session=False
@@ -6546,7 +6483,7 @@ class SessionBindTest(QueryTest):
 
     def test_bulk_delete_no_sync(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session):
             session.query(User).filter(User.id == 15).delete(
                 synchronize_session=False
@@ -6554,7 +6491,7 @@ class SessionBindTest(QueryTest):
 
     def test_bulk_update_fetch_sync(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session):
             session.query(User).filter(User.id == 15).update(
                 {"name": "foob"}, synchronize_session="fetch"
@@ -6562,7 +6499,7 @@ class SessionBindTest(QueryTest):
 
     def test_bulk_delete_fetch_sync(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session):
             session.query(User).filter(User.id == 15).delete(
                 synchronize_session="fetch"
@@ -6576,14 +6513,14 @@ class SessionBindTest(QueryTest):
             "score",
             column_property(func.coalesce(self.tables.users.c.name, None)),
         )
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=True):
             session.query(func.max(User.score)).scalar()
 
     def test_plain_table(self):
         User = self.classes.User
 
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=False):
             session.query(inspect(User).local_table).all()
 
@@ -6591,14 +6528,14 @@ class SessionBindTest(QueryTest):
         User = self.classes.User
 
         # TODO: this test is dumb
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=False):
             session.query(inspect(User).local_table).from_self().all()
 
     def test_plain_table_count(self):
         User = self.classes.User
 
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=False):
             session.query(inspect(User).local_table).count()
 
@@ -6606,7 +6543,7 @@ class SessionBindTest(QueryTest):
         User = self.classes.User
 
         table = inspect(User).local_table
-        session = Session()
+        session = fixture_session()
         with self._assert_bind_args(session, expect_mapped_bind=False):
             session.query(table).select_from(table).all()
 
@@ -6624,7 +6561,7 @@ class SessionBindTest(QueryTest):
                 .scalar_subquery()
             ),
         )
-        session = Session()
+        session = fixture_session()
 
         with self._assert_bind_args(session):
             session.query(func.max(User.score)).scalar()
@@ -6656,7 +6593,7 @@ class QueryClsTest(QueryTest):
     def _test_get(self, fixture):
         User = self.classes.User
 
-        s = Session(query_cls=fixture())
+        s = fixture_session(query_cls=fixture())
 
         assert s.query(User).get(19) is None
         u = s.query(User).get(7)
@@ -6666,7 +6603,7 @@ class QueryClsTest(QueryTest):
     def _test_o2m_lazyload(self, fixture):
         User, Address = self.classes("User", "Address")
 
-        s = Session(query_cls=fixture())
+        s = fixture_session(query_cls=fixture())
 
         u1 = s.query(User).filter(User.id == 7).first()
         eq_(u1.addresses, [Address(id=1)])
@@ -6674,7 +6611,7 @@ class QueryClsTest(QueryTest):
     def _test_m2o_lazyload(self, fixture):
         User, Address = self.classes("User", "Address")
 
-        s = Session(query_cls=fixture())
+        s = fixture_session(query_cls=fixture())
 
         a1 = s.query(Address).filter(Address.id == 1).first()
         eq_(a1.user, User(id=7))
@@ -6682,7 +6619,7 @@ class QueryClsTest(QueryTest):
     def _test_expr(self, fixture):
         User, Address = self.classes("User", "Address")
 
-        s = Session(query_cls=fixture())
+        s = fixture_session(query_cls=fixture())
 
         q = s.query(func.max(User.id).label("max"))
         eq_(q.scalar(), 10)
@@ -6691,7 +6628,7 @@ class QueryClsTest(QueryTest):
         # see #4269.  not documented but already out there.
         User, Address = self.classes("User", "Address")
 
-        s = Session(query_cls=fixture())
+        s = fixture_session(query_cls=fixture())
 
         q = Query(func.max(User.id).label("max")).with_session(s)
         eq_(q.scalar(), 10)
index 996488fb1ef15283b0035fed308977f0ea6697bc..5143d98c5dd568db003326ab36e9a26714805c01 100644 (file)
@@ -20,7 +20,6 @@ from sqlalchemy.orm import clear_mappers
 from sqlalchemy.orm import column_property
 from sqlalchemy.orm import composite
 from sqlalchemy.orm import configure_mappers
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import exc as orm_exc
 from sqlalchemy.orm import foreign
 from sqlalchemy.orm import joinedload
@@ -29,7 +28,6 @@ from sqlalchemy.orm import relationship
 from sqlalchemy.orm import remote
 from sqlalchemy.orm import selectinload
 from sqlalchemy.orm import Session
-from sqlalchemy.orm import sessionmaker
 from sqlalchemy.orm import subqueryload
 from sqlalchemy.orm import synonym
 from sqlalchemy.orm.interfaces import MANYTOONE
@@ -41,9 +39,9 @@ from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import in_
 from sqlalchemy.testing import is_
-from sqlalchemy.testing import startswith_
 from sqlalchemy.testing.assertsql import assert_engine
 from sqlalchemy.testing.assertsql import CompiledSQL
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from test.orm import _fixtures
@@ -288,7 +286,7 @@ class DependencyTwoParentTest(fixtures.MappedTest):
             cls.classes.D,
         )
 
-        session = create_session(connection)
+        session = Session(connection)
         a = A(name="a1")
         b = B(name="b1")
         c = C(name="c1", a_row=a)
@@ -303,7 +301,7 @@ class DependencyTwoParentTest(fixtures.MappedTest):
     def test_DeleteRootTable(self):
         A = self.classes.A
 
-        session = create_session()
+        session = fixture_session()
         a = session.query(A).filter_by(name="a1").one()
 
         session.delete(a)
@@ -312,7 +310,7 @@ class DependencyTwoParentTest(fixtures.MappedTest):
     def test_DeleteMiddleTable(self):
         C = self.classes.C
 
-        session = create_session()
+        session = fixture_session()
         c = session.query(C).filter_by(name="c1").one()
 
         session.delete(c)
@@ -345,7 +343,7 @@ class M2ODontOverwriteFKTest(fixtures.MappedTest):
 
     def test_joinedload_doesnt_produce_bogus_event(self):
         A, B = self._fixture()
-        sess = Session()
+        sess = fixture_session()
 
         b1 = B()
         sess.add(b1)
@@ -364,7 +362,7 @@ class M2ODontOverwriteFKTest(fixtures.MappedTest):
 
     def test_init_doesnt_produce_scalar_event(self):
         A, B = self._fixture()
-        sess = Session()
+        sess = fixture_session()
 
         b1 = B()
         sess.add(b1)
@@ -379,7 +377,7 @@ class M2ODontOverwriteFKTest(fixtures.MappedTest):
 
     def test_init_doesnt_produce_collection_event(self):
         A, B = self._fixture(uselist=True)
-        sess = Session()
+        sess = fixture_session()
 
         b1 = B()
         sess.add(b1)
@@ -394,7 +392,7 @@ class M2ODontOverwriteFKTest(fixtures.MappedTest):
 
     def test_scalar_relationship_overrides_fk(self):
         A, B = self._fixture()
-        sess = Session()
+        sess = fixture_session()
 
         b1 = B()
         sess.add(b1)
@@ -409,7 +407,7 @@ class M2ODontOverwriteFKTest(fixtures.MappedTest):
 
     def test_collection_relationship_overrides_fk(self):
         A, B = self._fixture(uselist=True)
-        sess = Session()
+        sess = fixture_session()
 
         b1 = B()
         sess.add(b1)
@@ -506,7 +504,7 @@ class DirectSelfRefFKTest(fixtures.MappedTest, AssertsCompiledSQL):
 
     def _fixture(self):
         Entity = self.classes.Entity
-        sess = Session()
+        sess = fixture_session()
         sess.add_all(
             [
                 Entity("/foo"),
@@ -625,7 +623,7 @@ class DirectSelfRefFKTest(fixtures.MappedTest, AssertsCompiledSQL):
     def test_plain_join_descendants(self):
         self._descendants_fixture(data=False)
         Entity = self.classes.Entity
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(Entity).join(Entity.descendants, aliased=True),
             "SELECT entity.path AS entity_path FROM entity JOIN entity AS "
@@ -1271,7 +1269,7 @@ class CompositeSelfRefFKTest(fixtures.MappedTest, AssertsCompiledSQL):
     def _test_no_warning(self, overwrites=False):
         configure_mappers()
         self._test_relationships()
-        sess = Session()
+        sess = fixture_session()
         self._setup_data(sess)
         self._test_lazy_relations(sess)
         self._test_join_aliasing(sess)
@@ -1486,7 +1484,7 @@ class SynonymsAsFKsTest(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         b = B(id=0)
         a = A(id=0, b=b)
@@ -1556,15 +1554,15 @@ class FKsAsPksTest(fixtures.MappedTest):
         configure_mappers()
         assert A.b.property.strategy.use_get
 
-        sess = create_session()
+        with fixture_session() as sess:
+            a1 = A()
+            sess.add(a1)
+            sess.commit()
 
-        a1 = A()
-        sess.add(a1)
-        sess.flush()
-        sess.close()
-        a1 = sess.query(A).first()
-        a1.b = B()
-        sess.flush()
+        with fixture_session() as sess:
+            a1 = sess.query(A).first()
+            a1.b = B()
+            sess.commit()
 
     def test_no_delete_PK_AtoB(self):
         """A cant be deleted without B because B would have no PK value."""
@@ -1585,19 +1583,17 @@ class FKsAsPksTest(fixtures.MappedTest):
 
         a1 = A()
         a1.bs.append(B())
-        sess = create_session()
-        sess.add(a1)
-        sess.flush()
-
-        sess.delete(a1)
-        try:
+        with fixture_session() as sess:
+            sess.add(a1)
             sess.flush()
-            assert False
-        except AssertionError as e:
-            startswith_(
-                str(e),
+
+            sess.delete(a1)
+
+            assert_raises_message(
+                AssertionError,
                 "Dependency rule tried to blank-out "
                 "primary key column 'tableB.id' on instance ",
+                sess.flush,
             )
 
     def test_no_delete_PK_BtoA(self):
@@ -1616,40 +1612,37 @@ class FKsAsPksTest(fixtures.MappedTest):
         b1 = B()
         a1 = A()
         b1.a = a1
-        sess = create_session()
-        sess.add(b1)
-        sess.flush()
-        b1.a = None
-        try:
+        with fixture_session() as sess:
+            sess.add(b1)
             sess.flush()
-            assert False
-        except AssertionError as e:
-            startswith_(
-                str(e),
+            b1.a = None
+            assert_raises_message(
+                AssertionError,
                 "Dependency rule tried to blank-out "
                 "primary key column 'tableB.id' on instance ",
+                sess.flush,
             )
 
     @testing.fails_on_everything_except(
         "sqlite", testing.requires.mysql_non_strict
     )
-    def test_nullPKsOK_BtoA(self):
+    def test_nullPKsOK_BtoA(self, metadata, connection):
         A, tableA = self.classes.A, self.tables.tableA
 
         # postgresql cant handle a nullable PK column...?
         tableC = Table(
             "tablec",
-            tableA.metadata,
+            metadata,
             Column("id", Integer, primary_key=True),
             Column(
                 "a_id",
                 Integer,
-                ForeignKey("tableA.id"),
+                ForeignKey(tableA.c.id),
                 primary_key=True,
                 nullable=True,
             ),
         )
-        tableC.create()
+        tableC.create(connection)
 
         class C(fixtures.BasicEntity):
             pass
@@ -1662,10 +1655,10 @@ class FKsAsPksTest(fixtures.MappedTest):
         c1 = C()
         c1.id = 5
         c1.a = None
-        sess = create_session()
-        sess.add(c1)
-        # test that no error is raised.
-        sess.flush()
+        with fixture_session() as sess:
+            sess.add(c1)
+            # test that no error is raised.
+            sess.flush()
 
     def test_delete_cascade_BtoA(self):
         """No 'blank the PK' error when the child is to
@@ -1695,14 +1688,14 @@ class FKsAsPksTest(fixtures.MappedTest):
             b1 = B()
             a1 = A()
             b1.a = a1
-            sess = create_session()
-            sess.add(b1)
-            sess.flush()
-            sess.delete(b1)
-            sess.flush()
-            assert a1 not in sess
-            assert b1 not in sess
-            sess.expunge_all()
+            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):
@@ -1729,15 +1722,15 @@ class FKsAsPksTest(fixtures.MappedTest):
             a1 = A()
             b1 = B()
             a1.bs.append(b1)
-            sess = create_session()
-            sess.add(a1)
-            sess.flush()
+            with fixture_session() as sess:
+                sess.add(a1)
+                sess.flush()
+
+                sess.delete(a1)
+                sess.flush()
+                assert a1 not in sess
+                assert b1 not in sess
 
-            sess.delete(a1)
-            sess.flush()
-            assert a1 not in sess
-            assert b1 not in sess
-            sess.expunge_all()
             sa.orm.clear_mappers()
 
     def test_delete_manual_AtoB(self):
@@ -1754,17 +1747,16 @@ class FKsAsPksTest(fixtures.MappedTest):
         a1 = A()
         b1 = B()
         a1.bs.append(b1)
-        sess = create_session()
-        sess.add(a1)
-        sess.add(b1)
-        sess.flush()
+        with fixture_session() as sess:
+            sess.add(a1)
+            sess.add(b1)
+            sess.flush()
 
-        sess.delete(a1)
-        sess.delete(b1)
-        sess.flush()
-        assert a1 not in sess
-        assert b1 not in sess
-        sess.expunge_all()
+            sess.delete(a1)
+            sess.delete(b1)
+            sess.flush()
+            assert a1 not in sess
+            assert b1 not in sess
 
     def test_delete_manual_BtoA(self):
         tableB, A, B, tableA = (
@@ -1780,15 +1772,15 @@ class FKsAsPksTest(fixtures.MappedTest):
         b1 = B()
         a1 = A()
         b1.a = a1
-        sess = create_session()
-        sess.add(b1)
-        sess.add(a1)
-        sess.flush()
-        sess.delete(b1)
-        sess.delete(a1)
-        sess.flush()
-        assert a1 not in sess
-        assert b1 not in sess
+        with fixture_session() as sess:
+            sess.add(b1)
+            sess.add(a1)
+            sess.flush()
+            sess.delete(b1)
+            sess.delete(a1)
+            sess.flush()
+            assert a1 not in sess
+            assert b1 not in sess
 
 
 class UniqueColReferenceSwitchTest(fixtures.MappedTest):
@@ -1840,7 +1832,7 @@ class UniqueColReferenceSwitchTest(fixtures.MappedTest):
         mapper(A, table_a)
         mapper(B, table_b, properties={"a": relationship(A, backref="bs")})
 
-        session = create_session()
+        session = fixture_session()
         a1, a2 = A(ident="uuid1"), A(ident="uuid2")
         session.add_all([a1, a2])
         a1.bs = [B(), B()]
@@ -1926,7 +1918,7 @@ class RelationshipToSelectableTest(fixtures.MappedTest):
             ),
         )
 
-        session = create_session()
+        session = fixture_session()
         con = Container()
         con.policyNum = "99"
         con.policyEffDate = datetime.date.today()
@@ -2003,7 +1995,7 @@ class FKEquatedToConstantTest(fixtures.MappedTest):
 
         mapper(TagInstance, tag_foo)
 
-        sess = create_session()
+        sess = fixture_session()
         t1 = Tag(data="some tag")
         t1.foo.append(TagInstance(data="iplc_case"))
         t1.foo.append(TagInstance(data="not_iplc_case"))
@@ -2075,7 +2067,7 @@ class BackrefPropagatesForwardsArgs(fixtures.MappedTest):
         )
         mapper(Address, addresses)
 
-        sess = sessionmaker()()
+        sess = fixture_session()
         u1 = User(name="u1", addresses=[Address(email="a1")])
         sess.add(u1)
         sess.commit()
@@ -2153,7 +2145,7 @@ class AmbiguousJoinInterpretedAsSelfRef(fixtures.MappedTest):
     def test_mapping(self):
         Subscriber, Address = self.classes.Subscriber, self.classes.Address
 
-        sess = create_session()
+        sess = fixture_session()
         assert Subscriber.addresses.property.direction is ONETOMANY
         assert Address.customer.property.direction is MANYTOONE
 
@@ -2210,7 +2202,7 @@ class ManualBackrefTest(_fixtures.FixtureTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         a1 = Address(email_address="foo")
@@ -2550,7 +2542,7 @@ class TypeMatchTest(fixtures.MappedTest):
         c1 = C()
         a1.bs.append(b1)
         a1.bs.append(c1)
-        sess = create_session()
+        sess = fixture_session()
         try:
             sess.add(a1)
             assert False
@@ -2582,7 +2574,7 @@ class TypeMatchTest(fixtures.MappedTest):
         c1 = C()
         a1.bs.append(b1)
         a1.bs.append(c1)
-        sess = create_session()
+        sess = fixture_session()
         sess.add(a1)
         sess.add(b1)
         sess.add(c1)
@@ -2611,7 +2603,7 @@ class TypeMatchTest(fixtures.MappedTest):
         c1 = C()
         a1.bs.append(b1)
         a1.bs.append(c1)
-        sess = create_session()
+        sess = fixture_session()
         sess.add(a1)
         sess.add(b1)
         sess.add(c1)
@@ -2637,7 +2629,7 @@ class TypeMatchTest(fixtures.MappedTest):
         b1 = B()
         d1 = D()
         d1.a = b1
-        sess = create_session()
+        sess = fixture_session()
         sess.add(b1)
         sess.add(d1)
         assert_raises_message(
@@ -2662,7 +2654,7 @@ class TypeMatchTest(fixtures.MappedTest):
         b1 = B()
         d1 = D()
         d1.a = b1
-        sess = create_session()
+        sess = fixture_session()
         assert_raises_message(
             AssertionError, "doesn't handle objects of type", sess.add, d1
         )
@@ -2725,16 +2717,22 @@ class TypedAssociationTable(fixtures.MappedTest):
         c.col1 = "cid"
         a.t2s.append(b)
         a.t2s.append(c)
-        sess = create_session()
+        sess = fixture_session()
         sess.add(a)
         sess.flush()
 
-        eq_(select(func.count("*")).select_from(t3).scalar(), 2)
+        eq_(
+            sess.connection().scalar(select(func.count("*")).select_from(t3)),
+            2,
+        )
 
         a.t2s.remove(c)
         sess.flush()
 
-        eq_(select(func.count("*")).select_from(t3).scalar(), 1)
+        eq_(
+            sess.connection().scalar(select(func.count("*")).select_from(t3)),
+            1,
+        )
 
 
 class CustomOperatorTest(fixtures.MappedTest, AssertsCompiledSQL):
@@ -2782,7 +2780,7 @@ class CustomOperatorTest(fixtures.MappedTest, AssertsCompiledSQL):
         )
         mapper(B, self.tables.b)
         self.assert_compile(
-            Session().query(A).join(A.bs),
+            fixture_session().query(A).join(A.bs),
             "SELECT a.id AS a_id, a.foo AS a_foo "
             "FROM a JOIN b ON a.foo &* b.foo",
         )
@@ -2976,7 +2974,7 @@ class ViewOnlyM2MBackrefTest(fixtures.MappedTest):
 
         configure_mappers()
 
-        sess = create_session()
+        sess = fixture_session()
         a1 = A()
         b1 = B(as_=[a1])
 
@@ -3069,7 +3067,7 @@ class ViewOnlyOverlappingNames(fixtures.MappedTest):
         c3 = C3()
         c3.data = "c1data"
         c3.t2 = c2b
-        sess = create_session()
+        sess = fixture_session()
         sess.add(c1)
         sess.add(c3)
         sess.flush()
@@ -3330,7 +3328,7 @@ class ViewOnlyUniqueNames(fixtures.MappedTest):
         c3 = C3()
         c3.data = "c1data"
         c3.t2 = c2b
-        sess = create_session()
+        sess = fixture_session()
 
         sess.add_all((c1, c3))
         sess.flush()
@@ -3418,20 +3416,20 @@ class ViewOnlyNonEquijoin(fixtures.MappedTest):
 
         mapper(Bar, bars)
 
-        sess = create_session()
-        sess.add_all(
-            (
-                Foo(id=4),
-                Foo(id=9),
-                Bar(id=1, fid=2),
-                Bar(id=2, fid=3),
-                Bar(id=3, fid=6),
-                Bar(id=4, fid=7),
+        with fixture_session() as sess:
+            sess.add_all(
+                (
+                    Foo(id=4),
+                    Foo(id=9),
+                    Bar(id=1, fid=2),
+                    Bar(id=2, fid=3),
+                    Bar(id=3, fid=6),
+                    Bar(id=4, fid=7),
+                )
             )
-        )
-        sess.flush()
+            sess.commit()
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(Foo).filter_by(id=4).one(),
             Foo(id=4, bars=[Bar(fid=2), Bar(fid=3)]),
@@ -3492,7 +3490,7 @@ class ViewOnlyRepeatedRemoteColumn(fixtures.MappedTest):
         )
         mapper(Bar, bars)
 
-        sess = create_session()
+        sess = fixture_session()
         b1 = Bar(id=1, data="b1")
         b2 = Bar(id=2, data="b2")
         b3 = Bar(id=3, data="b3")
@@ -3566,7 +3564,7 @@ class ViewOnlyRepeatedLocalColumn(fixtures.MappedTest):
         )
         mapper(Bar, bars)
 
-        sess = create_session()
+        sess = fixture_session()
         f1 = Foo(id=1, data="f1")
         f2 = Foo(id=2, data="f2")
         b1 = Bar(fid1=1, data="b1")
@@ -3678,7 +3676,7 @@ class ViewOnlyComplexJoin(_RelationshipErrors, fixtures.MappedTest):
         )
         mapper(T3, t3)
 
-        sess = create_session()
+        sess = fixture_session()
         sess.add(T2(data="t2", t1=T1(data="t1"), t3s=[T3(data="t3")]))
         sess.flush()
         sess.expunge_all()
@@ -3766,7 +3764,7 @@ class FunctionAsPrimaryJoinTest(fixtures.DeclarativeMappedTest):
 
     def test_lazyload(self):
         Venue = self.classes.Venue
-        s = Session()
+        s = fixture_session()
         v1 = s.query(Venue).filter_by(name="parent1").one()
         eq_(
             [d.name for d in v1.descendants],
@@ -3775,7 +3773,7 @@ class FunctionAsPrimaryJoinTest(fixtures.DeclarativeMappedTest):
 
     def test_joinedload(self):
         Venue = self.classes.Venue
-        s = Session()
+        s = fixture_session()
 
         def go():
             v1 = (
@@ -3951,7 +3949,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest):
         )
         is_(T1.t2s.property.direction, ONETOMANY)
         eq_(T1.t2s.property.local_remote_pairs, [(t1.c.id, t2.c.t1id)])
-        sess = create_session()
+        sess = fixture_session()
         a1 = T1(id="number1", data="a1")
         a2 = T1(id="number2", data="a2")
         b1 = T2(data="b1", t1id="NuMbEr1")
@@ -3996,7 +3994,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         a1 = T1(id="number1", data="a1")
         a2 = T1(id="number2", data="a2")
         b1 = T2(data="b1", t1id="NuMbEr1")
@@ -4036,7 +4034,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest):
         )
         mapper(T2, t2)
 
-        sess = create_session()
+        sess = fixture_session()
         a1 = T1(id="NuMbeR1", data="a1")
         a2 = T1(id="NuMbeR2", data="a2")
         b1 = T2(data="b1", t1id="number1")
@@ -4081,7 +4079,7 @@ class ExplicitLocalRemoteTest(fixtures.MappedTest):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         a1 = T1(id="NuMbeR1", data="a1")
         a2 = T1(id="NuMbeR2", data="a2")
         b1 = T2(data="b1", t1id="number1")
@@ -4525,7 +4523,7 @@ class SecondaryNestedJoinTest(
 
     def test_render_join(self):
         A = self.classes.A
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(A).join(A.d),
             "SELECT a.id AS a_id, a.name AS a_name, a.b_id AS a_b_id "
@@ -4537,7 +4535,7 @@ class SecondaryNestedJoinTest(
 
     def test_render_joinedload(self):
         A = self.classes.A
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(A).options(joinedload(A.d)),
             "SELECT a.id AS a_id, a.name AS a_name, a.b_id AS a_b_id, "
@@ -4551,7 +4549,7 @@ class SecondaryNestedJoinTest(
     def test_render_lazyload(self):
 
         A = self.classes.A
-        sess = Session()
+        sess = fixture_session()
         a1 = sess.query(A).filter(A.name == "a1").first()
 
         def go():
@@ -4577,14 +4575,14 @@ class SecondaryNestedJoinTest(
 
     def test_join(self):
         A, D = self.classes.A, self.classes.D
-        sess = Session()
+        sess = fixture_session()
 
         for a, d in sess.query(A, D).outerjoin(A.d):
             eq_(self.mapping[a.name], d.name if d is not None else None)
 
     def test_joinedload(self):
         A = self.classes.A
-        sess = Session()
+        sess = fixture_session()
 
         for a in sess.query(A).options(joinedload(A.d)):
             d = a.d
@@ -4592,7 +4590,7 @@ class SecondaryNestedJoinTest(
 
     def test_lazyload(self):
         A = self.classes.A
-        sess = Session()
+        sess = fixture_session()
 
         for a in sess.query(A):
             d = a.d
@@ -5343,7 +5341,7 @@ class ActiveHistoryFlagTest(_fixtures.FixtureTest):
     run_deletes = None
 
     def _test_attribute(self, obj, attrname, newvalue):
-        sess = Session()
+        sess = fixture_session()
         sess.add(obj)
         oldvalue = getattr(obj, attrname)
         sess.commit()
@@ -5627,7 +5625,7 @@ class InactiveHistoryNoRaiseTest(_fixtures.FixtureTest):
             },
         )
 
-        s = Session()
+        s = fixture_session()
 
         a1 = Address(email_address="a1")
         u1 = User(name="u1", addresses=[a1])
@@ -5727,7 +5725,7 @@ class RaiseLoadTest(_fixtures.FixtureTest):
             users,
             properties=dict(addresses=relationship(Address, lazy="raise")),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         result = [None]
 
         def go():
@@ -5753,7 +5751,7 @@ class RaiseLoadTest(_fixtures.FixtureTest):
 
         mapper(Address, addresses)
         mapper(User, users, properties=dict(addresses=relationship(Address)))
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         result = [None]
 
         def go():
@@ -5787,7 +5785,7 @@ class RaiseLoadTest(_fixtures.FixtureTest):
             users,
             properties=dict(addresses=relationship(Address, lazy="raise")),
         )
-        q = create_session().query(User).options(sa.orm.lazyload("addresses"))
+        q = fixture_session().query(User).options(sa.orm.lazyload("addresses"))
         result = [None]
 
         def go():
@@ -5810,7 +5808,7 @@ class RaiseLoadTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses, properties={"user": relationship(User)})
         mapper(User, users)
-        s = Session()
+        s = fixture_session()
         a1 = (
             s.query(Address)
             .filter_by(id=1)
@@ -5836,7 +5834,7 @@ class RaiseLoadTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses, properties={"user": relationship(User)})
         mapper(User, users)
-        s = Session()
+        s = fixture_session()
         a1 = (
             s.query(Address)
             .filter_by(id=1)
@@ -5886,7 +5884,7 @@ class RaiseLoadTest(_fixtures.FixtureTest):
             },
         )
         mapper(User, users)
-        s = Session()
+        s = fixture_session()
         u1 = s.query(User).first()  # noqa
         a1 = (
             s.query(Address)
@@ -5917,7 +5915,7 @@ class RaiseLoadTest(_fixtures.FixtureTest):
             properties=dict(addresses=relationship(Address, backref="user")),
         )
         q = (
-            create_session()
+            fixture_session()
             .query(User, Address)
             .join(Address, User.id == Address.user_id)
         )
@@ -5955,7 +5953,7 @@ class RaiseLoadTest(_fixtures.FixtureTest):
             properties=dict(addresses=relationship(Address, backref="user")),
         )
         q = (
-            create_session()
+            fixture_session()
             .query(User, Address)
             .join(Address, User.id == Address.user_id)
         )
@@ -6052,7 +6050,7 @@ class RelationDeprecationTest(fixtures.MappedTest):
         )
         mapper(Address, addresses_table)
 
-        session = create_session()
+        session = fixture_session()
 
         session.query(User).filter(
             User.addresses.any(Address.email_address == "ed@foo.bar")
@@ -6123,7 +6121,7 @@ class SecondaryIncludesLocalColsTest(fixtures.MappedTest):
     def test_query_join(self):
         A, B = self.classes("A", "B")
 
-        s = Session()
+        s = fixture_session()
 
         with assert_engine(testing.db) as asserter_:
             rows = s.query(A.id, B.id).join(A.bs).order_by(A.id, B.id).all()
@@ -6143,7 +6141,7 @@ class SecondaryIncludesLocalColsTest(fixtures.MappedTest):
     def test_eager_join(self):
         A, B = self.classes("A", "B")
 
-        s = Session()
+        s = fixture_session()
 
         with assert_engine(testing.db) as asserter_:
             a2 = (
@@ -6166,7 +6164,7 @@ class SecondaryIncludesLocalColsTest(fixtures.MappedTest):
     def test_exists(self):
         A, B = self.classes("A", "B")
 
-        s = Session()
+        s = fixture_session()
 
         with assert_engine(testing.db) as asserter_:
             eq_(set(id_ for id_, in s.query(A.id).filter(A.bs.any())), {1, 2})
@@ -6184,7 +6182,7 @@ class SecondaryIncludesLocalColsTest(fixtures.MappedTest):
     def test_eager_selectin(self):
         A, B = self.classes("A", "B")
 
-        s = Session()
+        s = fixture_session()
 
         with assert_engine(testing.db) as asserter_:
             a2 = (
index d1ed9acc16dd47517c39fbcbcf59368acaec96d6..5386fd1127349fa38d22fd5f26ccd09480cab904 100644 (file)
@@ -39,7 +39,7 @@ class ScopedSessionTest(fixtures.MappedTest):
     def test_basic(self):
         table2, table1 = self.tables.table2, self.tables.table1
 
-        Session = scoped_session(sa.orm.sessionmaker())
+        Session = scoped_session(sa.orm.sessionmaker(testing.db))
 
         class CustomQuery(query.Query):
             pass
index 502df314a463e99ec8298b077ddb3b0faa0d358f..c22391b44763bec3ac5f58c48dea6b49d17f4480 100644 (file)
@@ -12,6 +12,7 @@ from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import AssertsCompiledSQL
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -44,7 +45,7 @@ class SelectableNoFromsTest(fixtures.MappedTest, AssertsCompiledSQL):
         mapper(Subset, selectable, primary_key=[selectable.c.x])
 
         self.assert_compile(
-            Session().query(Subset),
+            fixture_session().query(Subset),
             "SELECT anon_1.x AS anon_1_x, anon_1.y AS anon_1_y, "
             "anon_1.z AS anon_1_z FROM (SELECT x, y, z) AS anon_1",
             use_default_dialect=True,
index de6282da57ea16bc9738aebf975b54cc1cd89ee3..5535fe5d68e854e262e809f00cba0fba895c0454 100644 (file)
@@ -8,7 +8,6 @@ from sqlalchemy import String
 from sqlalchemy import testing
 from sqlalchemy.orm import aliased
 from sqlalchemy.orm import clear_mappers
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import defaultload
 from sqlalchemy.orm import defer
 from sqlalchemy.orm import deferred
@@ -31,6 +30,7 @@ from sqlalchemy.testing import mock
 from sqlalchemy.testing.assertsql import AllOf
 from sqlalchemy.testing.assertsql import assert_engine
 from sqlalchemy.testing.assertsql import CompiledSQL
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from test.orm import _fixtures
@@ -64,7 +64,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User).options(selectinload(User.addresses))
 
@@ -122,7 +122,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
 
             def go():
 
-                sess = create_session()
+                sess = fixture_session()
 
                 u = aliased(User)
 
@@ -148,7 +148,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         for i in range(3):
 
             def go():
-                sess = create_session()
+                sess = fixture_session()
 
                 u = aliased(User)
 
@@ -165,7 +165,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         for i in range(3):
 
             def go():
-                sess = create_session()
+                sess = fixture_session()
 
                 u = aliased(User)
 
@@ -217,7 +217,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User).options(selectinload(User.addresses))
 
@@ -249,7 +249,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User).options(selectinload(User.addresses))
 
@@ -280,7 +280,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             properties={"addresses": relationship(Address, lazy="dynamic")},
         )
         mapper(Address, addresses)
-        sess = create_session()
+        sess = fixture_session()
 
         # previously this would not raise, but would emit
         # the query needlessly and put the result nowhere.
@@ -314,7 +314,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             ),
         )
 
-        q = create_session().query(Item).order_by(Item.id)
+        q = fixture_session().query(Item).order_by(Item.id)
 
         def go():
             eq_(self.static.item_keyword_result, q.all())
@@ -344,7 +344,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             ),
         )
 
-        q = create_session().query(Item).order_by(Item.id)
+        q = fixture_session().query(Item).order_by(Item.id)
 
         def go():
             eq_(
@@ -377,7 +377,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             ),
         )
 
-        q = create_session().query(Item).order_by(Item.id)
+        q = fixture_session().query(Item).order_by(Item.id)
 
         def go():
             ka = aliased(Keyword)
@@ -407,7 +407,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             },
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         eq_(
             [
                 User(id=7, addresses=[Address(id=1)]),
@@ -444,7 +444,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             },
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         eq_(
             [
                 User(id=7, addresses=[Address(id=1)]),
@@ -484,7 +484,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             ),
         )
 
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         result = (
             q.filter(User.id == Address.user_id)
             .order_by(Address.email_address)
@@ -527,7 +527,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             ),
         )
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             [
                 User(id=7, addresses=[Address(id=1)]),
@@ -713,7 +713,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
     def _do_query_tests(self, opts, count):
         Order, User = self.classes.Order, self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -732,7 +732,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             self.static.user_item_keyword_result[2:3],
         )
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(User)
             .options(*opts)
@@ -772,7 +772,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         is_(sa.orm.class_mapper(Address).get_property("user").lazy, "selectin")
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             self.static.user_address_result,
             sess.query(User).order_by(User.id).all(),
@@ -810,7 +810,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         is_(sa.orm.class_mapper(Address).get_property("user").lazy, "selectin")
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             self.static.user_address_result,
             sess.query(User).order_by(User.id).all(),
@@ -1034,7 +1034,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         User, Address, Order, Item = self.classes(
             "User", "Address", "Order", "Item"
         )
-        q = create_session().query(User).order_by(User.id)
+        q = fixture_session().query(User).order_by(User.id)
 
         def items(*ids):
             if no_items:
@@ -1133,7 +1133,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         result = q.order_by(User.id).limit(2).offset(1).all()
@@ -1159,7 +1159,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             ),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
 
         def go():
             result = q.filter(users.c.id == 7).all()
@@ -1184,7 +1184,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             ),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
 
         def go():
             result = q.filter(users.c.id == 10).all()
@@ -1207,7 +1207,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 user=relationship(mapper(User, users), lazy="selectin")
             ),
         )
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Address)
 
         def go():
@@ -1233,7 +1233,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         q = sess.query(Order).filter(Order.id.in_([4, 5])).order_by(Order.id)
 
         o4, o5 = q.all()
@@ -1269,7 +1269,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         mapper(Address, addresses)
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Order).filter(Order.id.in_([4, 5])).order_by(Order.id)
 
         o4, o5 = q.all()
@@ -1293,7 +1293,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             ),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         result = q.filter(users.c.id == 10).all()
         u1 = result[0]
 
@@ -1334,7 +1334,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             },
         )
 
-        q = create_session().query(User)
+        q = fixture_session().query(User)
 
         def go():
             eq_(
@@ -1374,7 +1374,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             properties={"order": relationship(Order, uselist=False)},
         )
         mapper(Order, orders)
-        s = create_session()
+        s = fixture_session()
         assert_raises(
             sa.exc.SAWarning,
             s.query(User).options(selectinload(User.order)).all,
@@ -1405,7 +1405,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest):
         )
         mapper(Dingaling, self.tables.dingalings)
 
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
         return User, Address, Dingaling, sess
 
     def _collection_to_collection_fixture(self):
@@ -1426,7 +1426,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest):
         )
         mapper(Item, self.tables.items)
 
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
         return User, Order, Item, sess
 
     def _eager_config_fixture(self):
@@ -1437,7 +1437,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest):
             properties={"addresses": relationship(Address, lazy="selectin")},
         )
         mapper(Address, self.tables.addresses)
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
         return User, Address, sess
 
     def _deferred_config_fixture(self):
@@ -1451,7 +1451,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest):
             },
         )
         mapper(Address, self.tables.addresses)
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
         return User, Address, sess
 
     def test_runs_query_on_refresh(self):
@@ -1622,7 +1622,7 @@ class OrderBySecondaryTest(fixtures.MappedTest):
         )
         mapper(B, b)
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -1730,12 +1730,12 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic):
             Paperwork(description="tps report #2"),
         ]
         e2.paperwork = [Paperwork(description="tps report #3")]
-        sess = create_session(connection)
+        sess = Session(connection)
         sess.add_all([e1, e2])
         sess.flush()
 
     def test_correct_select_nofrom(self):
-        sess = create_session()
+        sess = fixture_session()
         # use Person.paperwork here just to give the least
         # amount of context
         q = (
@@ -1778,7 +1778,7 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic):
         )
 
     def test_correct_select_existingfrom(self):
-        sess = create_session()
+        sess = fixture_session()
         # use Person.paperwork here just to give the least
         # amount of context
         q = (
@@ -1829,7 +1829,7 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic):
 
     def test_correct_select_with_polymorphic_no_alias(self):
         # test #3106
-        sess = create_session()
+        sess = fixture_session()
 
         wp = with_polymorphic(Person, [Engineer])
         q = (
@@ -1875,7 +1875,7 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic):
 
     def test_correct_select_with_polymorphic_alias(self):
         # test #3106
-        sess = create_session()
+        sess = fixture_session()
 
         wp = with_polymorphic(Person, [Engineer], aliased=True)
         q = (
@@ -1929,7 +1929,7 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic):
 
     def test_correct_select_with_polymorphic_flat_alias(self):
         # test #3106
-        sess = create_session()
+        sess = fixture_session()
 
         wp = with_polymorphic(Person, [Engineer], aliased=True, flat=True)
         q = (
@@ -2061,7 +2061,7 @@ class HeterogeneousSubtypesTest(fixtures.DeclarativeMappedTest):
         Company, Programmer, Manager, GolfSwing, Language = self.classes(
             "Company", "Programmer", "Manager", "GolfSwing", "Language"
         )
-        sess = Session()
+        sess = fixture_session()
         company = (
             sess.query(Company)
             .filter(Company.id == 1)
@@ -2082,7 +2082,7 @@ class HeterogeneousSubtypesTest(fixtures.DeclarativeMappedTest):
         Company, Programmer, Manager, GolfSwing, Language = self.classes(
             "Company", "Programmer", "Manager", "GolfSwing", "Language"
         )
-        sess = Session()
+        sess = fixture_session()
         company = (
             sess.query(Company)
             .filter(Company.id == 2)
@@ -2105,7 +2105,7 @@ class HeterogeneousSubtypesTest(fixtures.DeclarativeMappedTest):
         Company, Programmer, Manager, GolfSwing, Language = self.classes(
             "Company", "Programmer", "Manager", "GolfSwing", "Language"
         )
-        sess = Session()
+        sess = fixture_session()
         rows = (
             sess.query(Company)
             .options(
@@ -2169,7 +2169,7 @@ class TupleTest(fixtures.DeclarativeMappedTest):
     def test_load_o2m(self):
         A, B = self.classes("A", "B")
 
-        session = Session()
+        session = fixture_session()
 
         def go():
             q = (
@@ -2205,7 +2205,7 @@ class TupleTest(fixtures.DeclarativeMappedTest):
     def test_load_m2o(self):
         A, B = self.classes("A", "B")
 
-        session = Session()
+        session = fixture_session()
 
         def go():
             q = session.query(B).options(selectinload(B.a)).order_by(B.id)
@@ -2277,7 +2277,7 @@ class ChunkingTest(fixtures.DeclarativeMappedTest):
     def test_odd_number_chunks(self):
         A, B = self.classes("A", "B")
 
-        session = Session()
+        session = fixture_session()
 
         def go():
             with mock.patch(
@@ -2320,7 +2320,7 @@ class ChunkingTest(fixtures.DeclarativeMappedTest):
 
         import random
 
-        session = Session()
+        session = fixture_session()
 
         yield_per = random.randint(8, 105)
         offset = random.randint(0, 19)
@@ -2350,7 +2350,7 @@ class ChunkingTest(fixtures.DeclarativeMappedTest):
     def test_dont_emit_for_redundant_m2o(self):
         A, B = self.classes("A", "B")
 
-        session = Session()
+        session = fixture_session()
 
         def go():
             with mock.patch(
@@ -2498,7 +2498,7 @@ class SubRelationFromJoinedSubclassMultiLevelTest(_Polymorphic):
     @classmethod
     def insert_data(cls, connection):
         c1 = cls._fixture()
-        sess = create_session(connection)
+        sess = Session(connection)
         sess.add(c1)
         sess.flush()
 
@@ -2526,7 +2526,7 @@ class SubRelationFromJoinedSubclassMultiLevelTest(_Polymorphic):
         )
 
     def test_chained_selectin_subclass(self):
-        s = Session()
+        s = fixture_session()
         q = s.query(Company).options(
             selectinload(Company.employees.of_type(Engineer))
             .selectinload(Engineer.machines)
@@ -2568,7 +2568,7 @@ class SelfReferentialTest(fixtures.MappedTest):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -2644,7 +2644,7 @@ class SelfReferentialTest(fixtures.MappedTest):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -2691,7 +2691,7 @@ class SelfReferentialTest(fixtures.MappedTest):
                 "data": deferred(nodes.c.data),
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -2744,7 +2744,7 @@ class SelfReferentialTest(fixtures.MappedTest):
             nodes,
             properties={"children": relationship(Node, order_by=nodes.c.id)},
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -2799,7 +2799,7 @@ class SelfReferentialTest(fixtures.MappedTest):
             nodes,
             properties={"children": relationship(Node, lazy="selectin")},
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -2891,7 +2891,7 @@ class SelfRefInheritanceAliasedTest(
             attr1 = Foo.foo.of_type(r)
             attr2 = r.foo
 
-            s = Session()
+            s = fixture_session()
             q = (
                 s.query(Foo)
                 .filter(Foo.id == 2)
@@ -2996,7 +2996,7 @@ class TestExistingRowPopulation(fixtures.DeclarativeMappedTest):
     def test_o2m(self):
         A, A2, B, C1o2m, C2o2m = self.classes("A", "A2", "B", "C1o2m", "C2o2m")
 
-        s = Session()
+        s = fixture_session()
 
         # A -J-> B -L-> C1
         # A -J-> B -S-> C2
@@ -3017,7 +3017,7 @@ class TestExistingRowPopulation(fixtures.DeclarativeMappedTest):
     def test_m2o(self):
         A, A2, B, C1m2o, C2m2o = self.classes("A", "A2", "B", "C1m2o", "C2m2o")
 
-        s = Session()
+        s = fixture_session()
 
         # A -J-> B -L-> C1
         # A -J-> B -S-> C2
@@ -3070,7 +3070,7 @@ class SingleInhSubclassTest(
 
     def test_load(self):
         (EmployerUser,) = self.classes("EmployerUser")
-        s = Session()
+        s = fixture_session()
 
         q = s.query(EmployerUser)
 
@@ -3132,7 +3132,7 @@ class MissingForeignTest(
     def test_missing_rec(self):
         A, B = self.classes("A", "B")
 
-        s = Session()
+        s = fixture_session()
         eq_(
             s.query(A).options(selectinload(A.b)).order_by(A.id).all(),
             [
@@ -3191,7 +3191,7 @@ class M2OWDegradeTest(
 
     def test_use_join_parent_criteria(self):
         A, B = self.classes("A", "B")
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(A)
             .filter(A.id.in_([1, 3]))
@@ -3220,7 +3220,7 @@ class M2OWDegradeTest(
 
     def test_use_join_parent_criteria_degrade_on_defer(self):
         A, B = self.classes("A", "B")
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(A)
             .filter(A.id.in_([1, 3]))
@@ -3255,7 +3255,7 @@ class M2OWDegradeTest(
 
     def test_use_join(self):
         A, B = self.classes("A", "B")
-        s = Session()
+        s = fixture_session()
         q = s.query(A).options(selectinload(A.b)).order_by(A.id)
         results = self.assert_sql_execution(
             testing.db,
@@ -3286,7 +3286,7 @@ class M2OWDegradeTest(
 
     def test_use_join_omit_join_false(self):
         A, B = self.classes("A", "B")
-        s = Session()
+        s = fixture_session()
         q = s.query(A).options(selectinload(A.b_no_omit_join)).order_by(A.id)
         results = self.assert_sql_execution(
             testing.db,
@@ -3318,7 +3318,7 @@ class M2OWDegradeTest(
 
     def test_use_join_parent_degrade_on_defer(self):
         A, B = self.classes("A", "B")
-        s = Session()
+        s = fixture_session()
         q = s.query(A).options(defer(A.b_id), selectinload(A.b)).order_by(A.id)
         results = self.assert_sql_execution(
             testing.db,
@@ -3423,7 +3423,7 @@ class SameNamePolymorphicTest(fixtures.DeclarativeMappedTest):
         GenericParent, ParentA, ParentB, ChildA, ChildB = self.classes(
             "GenericParent", "ParentA", "ParentB", "ChildA", "ChildB"
         )
-        session = Session()
+        session = fixture_session()
 
         parent_types = with_polymorphic(GenericParent, [ParentA, ParentB])
 
@@ -3516,7 +3516,7 @@ class TestBakedCancelsCorrectly(fixtures.DeclarativeMappedTest):
             # the cache spoil did not use full=True which kept the lead
             # entities around.
 
-            sess = Session()
+            sess = fixture_session()
             foo_polymorphic = with_polymorphic(Foo, [SubFoo], aliased=True)
 
             credit_adjustment_load = selectinload(
index c5cf275253e6dabf8a6112addf904cd4ee6ee388..20c4752b82dff08478744c35b9ea78ddaeb25a89 100644 (file)
@@ -35,7 +35,7 @@ from sqlalchemy.testing import is_not
 from sqlalchemy.testing import is_true
 from sqlalchemy.testing import mock
 from sqlalchemy.testing import pickleable
-from sqlalchemy.testing.fixtures import create_session
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from sqlalchemy.testing.util import gc_collect
@@ -203,11 +203,11 @@ class SessionUtilTest(_fixtures.FixtureTest):
 
         mapper(User, users)
 
-        s1 = Session()
+        s1 = fixture_session()
         u1 = User()
         s1.add(u1)
 
-        s2 = Session()
+        s2 = fixture_session()
         u2 = User()
         s2.add(u2)
 
@@ -224,11 +224,11 @@ class SessionUtilTest(_fixtures.FixtureTest):
 
         mapper(User, users)
 
-        s1 = Session()
+        s1 = fixture_session()
         u1 = User()
         s1.add(u1)
 
-        s2 = Session()
+        s2 = fixture_session()
         u2 = User()
         s2.add(u2)
 
@@ -255,7 +255,7 @@ class SessionUtilTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         sess.add(User(name="test"))
         sess.flush()
 
@@ -303,7 +303,7 @@ class SessionUtilTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="test")
         sess.add(u1)
         sess.commit()
@@ -318,7 +318,7 @@ class SessionUtilTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(id=1, name="test")
         sess.add(u1)
         sess.commit()
@@ -334,7 +334,7 @@ class SessionUtilTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(id=1, name="test")
         sess.add(u1)
         assert_raises_message(
@@ -348,7 +348,7 @@ class SessionUtilTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(id=1, name="test")
         sess.add(u1)
         sess.commit()
@@ -367,7 +367,7 @@ class SessionStateTest(_fixtures.FixtureTest):
     __prefer_requires__ = ("independent_connections",)
 
     def test_info(self):
-        s = Session()
+        s = fixture_session()
         eq_(s.info, {})
 
         maker = sessionmaker(info={"global": True, "s1": 5})
@@ -419,7 +419,7 @@ class SessionStateTest(_fixtures.FixtureTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
 
         u = User()
         u.name = "ed"
@@ -473,7 +473,7 @@ class SessionStateTest(_fixtures.FixtureTest):
 
         mapper(User, users)
 
-        sess = sessionmaker()()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -504,7 +504,7 @@ class SessionStateTest(_fixtures.FixtureTest):
 
         mapper(User, users)
 
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="u1")
         sess.add(u1)
         sess.commit()
@@ -537,7 +537,7 @@ class SessionStateTest(_fixtures.FixtureTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        with create_session(autocommit=False, autoflush=True) as sess:
+        with fixture_session(autocommit=False, autoflush=True) as sess:
             u = User()
             u.name = "ed"
             sess.add(u)
@@ -653,7 +653,7 @@ class SessionStateTest(_fixtures.FixtureTest):
             self.tables.users,
         )
 
-        s = create_session()
+        s = fixture_session()
         mapper(
             User,
             users,
@@ -692,7 +692,7 @@ class SessionStateTest(_fixtures.FixtureTest):
         assert user in s
         assert user not in s.dirty
 
-        s2 = create_session()
+        s2 = fixture_session()
         assert_raises_message(
             sa.exc.InvalidRequestError,
             "is already attached to session",
@@ -722,8 +722,8 @@ class SessionStateTest(_fixtures.FixtureTest):
         users = self.tables.users
         mapper(User, users)
 
-        s1 = Session()
-        s2 = Session()
+        s1 = fixture_session()
+        s2 = fixture_session()
 
         u1 = User(id=1, name="u1")
         make_transient_to_detached(u1)  # shorthand for actually persisting it
@@ -743,7 +743,7 @@ class SessionStateTest(_fixtures.FixtureTest):
 
         mapper(User, users)
 
-        with create_session() as s:
+        with fixture_session() as s:
             s.execute(users.delete())
             u1 = User(name="ed")
             s.add(u1)
@@ -775,7 +775,7 @@ class SessionStateTest(_fixtures.FixtureTest):
         )
         mapper(Address, addresses)
 
-        session = Session()
+        session = fixture_session()
 
         @event.listens_for(session, "after_flush")
         def load_collections(session, flush_context):
@@ -806,8 +806,8 @@ class SessionStateTest(_fixtures.FixtureTest):
         users, User = self.tables.users, pickleable.User
 
         mapper(User, users)
-        sess1 = create_session()
-        sess2 = create_session()
+        sess1 = fixture_session()
+        sess2 = fixture_session()
         u1 = User(name="u1")
         sess1.add(u1)
         assert_raises_message(
@@ -824,7 +824,7 @@ class SessionStateTest(_fixtures.FixtureTest):
 
         mapper(User, users)
         Session = sessionmaker()
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -870,7 +870,7 @@ class SessionStateTest(_fixtures.FixtureTest):
     def test_no_double_save(self):
         users = self.tables.users
 
-        sess = create_session()
+        sess = fixture_session()
 
         class Foo(object):
             def __init__(self):
@@ -893,7 +893,7 @@ class SessionStateTest(_fixtures.FixtureTest):
 
         mapper(User, users)
 
-        sess = Session()
+        sess = fixture_session()
 
         sess.add_all([User(name="u1"), User(name="u2"), User(name="u3")])
         sess.commit()
@@ -911,7 +911,7 @@ class SessionStateTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
         m = mapper(User, users)
 
-        s = Session()
+        s = fixture_session()
 
         @event.listens_for(m, "after_update")
         def e(mapper, conn, target):
@@ -955,7 +955,7 @@ class SessionStateTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
         sess.add(User(name="x"))
         sess.commit()
 
@@ -976,7 +976,7 @@ class SessionStateTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="x")
         sess.add(u1)
 
@@ -995,7 +995,7 @@ class SessionStateTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
         sess.add(User(name="x"))
         sess.commit()
 
@@ -1047,7 +1047,7 @@ class DeferredRelationshipExpressionTest(_fixtures.FixtureTest):
         """
         User, Address = self.classes("User", "Address")
 
-        sess = create_session(autoflush=True, autocommit=False)
+        sess = fixture_session(autoflush=True, autocommit=False)
         u = User(name="ed", addresses=[Address(email_address="foo")])
         sess.add(u)
         eq_(
@@ -1058,7 +1058,9 @@ class DeferredRelationshipExpressionTest(_fixtures.FixtureTest):
     def test_deferred_expression_obj_was_gced(self):
         User, Address = self.classes("User", "Address")
 
-        sess = create_session(autoflush=True, autocommit=False)
+        sess = fixture_session(
+            autoflush=True, autocommit=False, expire_on_commit=False
+        )
         u = User(name="ed", addresses=[Address(email_address="foo")])
         sess.add(u)
 
@@ -1078,7 +1080,9 @@ class DeferredRelationshipExpressionTest(_fixtures.FixtureTest):
 
         User, Address = self.classes("User", "Address")
 
-        sess = create_session(autoflush=True, autocommit=False)
+        sess = fixture_session(
+            autoflush=True, autocommit=False, expire_on_commit=False
+        )
         u = User(name="ed", addresses=[Address(email_address="foo")])
         sess.add(u)
         sess.commit()
@@ -1091,7 +1095,7 @@ class DeferredRelationshipExpressionTest(_fixtures.FixtureTest):
     def test_deferred_expression_obj_was_never_flushed(self):
         User, Address = self.classes("User", "Address")
 
-        sess = create_session(autoflush=True, autocommit=False)
+        sess = fixture_session(autoflush=True, autocommit=False)
         u = User(name="ed", addresses=[Address(email_address="foo")])
 
         assert_raises_message(
@@ -1120,7 +1124,7 @@ class DeferredRelationshipExpressionTest(_fixtures.FixtureTest):
     def test_deferred_expression_unflushed_obj_became_detached_unexpired(self):
         User, Address = self.classes("User", "Address")
 
-        sess = create_session(autoflush=True, autocommit=False)
+        sess = fixture_session(autoflush=True, autocommit=False)
         u = User(name="ed", addresses=[Address(email_address="foo")])
 
         q = sess.query(Address).filter(Address.user == u)
@@ -1134,7 +1138,7 @@ class DeferredRelationshipExpressionTest(_fixtures.FixtureTest):
     def test_deferred_expression_unflushed_obj_became_detached_expired(self):
         User, Address = self.classes("User", "Address")
 
-        sess = create_session(autoflush=True, autocommit=False)
+        sess = fixture_session(autoflush=True, autocommit=False)
         u = User(name="ed", addresses=[Address(email_address="foo")])
 
         q = sess.query(Address).filter(Address.user == u)
@@ -1149,7 +1153,7 @@ class DeferredRelationshipExpressionTest(_fixtures.FixtureTest):
     def test_deferred_expr_unflushed_obj_became_detached_expired_by_key(self):
         User, Address = self.classes("User", "Address")
 
-        sess = create_session(autoflush=True, autocommit=False)
+        sess = fixture_session(autoflush=True, autocommit=False)
         u = User(name="ed", addresses=[Address(email_address="foo")])
 
         q = sess.query(Address).filter(Address.user == u)
@@ -1164,7 +1168,7 @@ class DeferredRelationshipExpressionTest(_fixtures.FixtureTest):
     def test_deferred_expression_expired_obj_became_detached_expired(self):
         User, Address = self.classes("User", "Address")
 
-        sess = create_session(
+        sess = fixture_session(
             autoflush=True, autocommit=False, expire_on_commit=True
         )
         u = User(name="ed", addresses=[Address(email_address="foo")])
@@ -1207,7 +1211,7 @@ class SessionStateWFixtureTest(_fixtures.FixtureTest):
         mapper(Address, addresses)
         mapper(User, users, properties={"addresses": relationship(Address)})
 
-        sess = create_session(autocommit=False, autoflush=True)
+        sess = fixture_session(autocommit=False, autoflush=True)
         u = sess.query(User).get(8)
         newad = Address(email_address="a new address")
         u.addresses.append(newad)
@@ -1244,7 +1248,7 @@ class SessionStateWFixtureTest(_fixtures.FixtureTest):
             },
         )
 
-        session = create_session()
+        session = fixture_session()
         u = session.query(User).filter_by(id=7).one()
 
         # get everything to load in both directions
@@ -1288,7 +1292,7 @@ class NoCyclesOnTransientDetachedTest(_fixtures.FixtureTest):
         User = self.classes.User
         u1 = User()
         u1.name = "ed"
-        sess = Session()
+        sess = fixture_session()
         sess.add(u1)
         sess.flush()
         return sess, u1
@@ -1306,7 +1310,7 @@ class NoCyclesOnTransientDetachedTest(_fixtures.FixtureTest):
         u1.name = "ed"
         self._assert_modified(u1)
         self._assert_no_cycle(u1)
-        sess = Session()
+        sess = fixture_session()
         sess.add(u1)
         self._assert_cycle(u1)
         sess.flush()
@@ -1366,7 +1370,7 @@ class NoCyclesOnTransientDetachedTest(_fixtures.FixtureTest):
     def test_move_persistent_clean(self):
         sess, u1 = self._persistent_fixture()
         sess.close()
-        s2 = Session()
+        s2 = fixture_session()
         s2.add(u1)
         self._assert_no_cycle(u1)
         self._assert_not_modified(u1)
@@ -1378,7 +1382,7 @@ class NoCyclesOnTransientDetachedTest(_fixtures.FixtureTest):
         self._assert_modified(u1)
         sess.close()
         self._assert_no_cycle(u1)
-        s2 = Session()
+        s2 = fixture_session()
         s2.add(u1)
         self._assert_cycle(u1)
         self._assert_modified(u1)
@@ -1392,7 +1396,7 @@ class NoCyclesOnTransientDetachedTest(_fixtures.FixtureTest):
         del sess
         gc_collect()
         self._assert_cycle(u1)
-        s2 = Session()
+        s2 = fixture_session()
         s2.add(u1)
         self._assert_cycle(u1)
         self._assert_modified(u1)
@@ -1417,7 +1421,7 @@ class WeakIdentityMapTest(_fixtures.FixtureTest):
 
         users, User = self.tables.users, self.classes.User
 
-        s = create_session()
+        s = fixture_session()
         mapper(User, users)
 
         s.add(User(name="ed"))
@@ -1449,7 +1453,7 @@ class WeakIdentityMapTest(_fixtures.FixtureTest):
     def test_weakref_pickled(self):
         users, User = self.tables.users, pickleable.User
 
-        s = create_session()
+        s = fixture_session()
         mapper(User, users)
 
         s.add(User(name="ed"))
@@ -1486,7 +1490,7 @@ class WeakIdentityMapTest(_fixtures.FixtureTest):
             self.classes.User,
         )
 
-        s = sessionmaker()()
+        s = fixture_session()
         mapper(
             User,
             users,
@@ -1524,7 +1528,7 @@ class WeakIdentityMapTest(_fixtures.FixtureTest):
             self.classes.User,
         )
 
-        s = sessionmaker()()
+        s = fixture_session()
         mapper(
             User,
             users,
@@ -1561,7 +1565,7 @@ class WeakIdentityMapTest(_fixtures.FixtureTest):
 
         mapper(User, users)
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -1569,7 +1573,7 @@ class WeakIdentityMapTest(_fixtures.FixtureTest):
 
         # can't add u1 to Session,
         # already belongs to u2
-        s2 = Session()
+        s2 = fixture_session()
         assert_raises_message(
             sa.exc.InvalidRequestError,
             r".*is already attached to session",
@@ -1592,7 +1596,7 @@ class WeakIdentityMapTest(_fixtures.FixtureTest):
 
         mapper(User, users)
 
-        sess = Session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         sess.add(u1)
@@ -1629,7 +1633,7 @@ class IsModifiedTest(_fixtures.FixtureTest):
     def test_is_modified(self):
         User, Address = self._default_mapping_fixture()
 
-        s = create_session()
+        s = fixture_session()
 
         # save user
         u = User(name="fred")
@@ -1662,7 +1666,7 @@ class IsModifiedTest(_fixtures.FixtureTest):
 
         User, Address = self._default_mapping_fixture()
 
-        s = Session()
+        s = fixture_session()
         u = User(name="fred", addresses=[Address(email_address="foo")])
         s.add(u)
         s.commit()
@@ -1687,7 +1691,7 @@ class IsModifiedTest(_fixtures.FixtureTest):
     def test_is_modified_syn(self):
         User, users = self.classes.User, self.tables.users
 
-        s = sessionmaker()()
+        s = fixture_session()
 
         mapper(User, users, properties={"uname": sa.orm.synonym("name")})
         u = User(uname="fred")
@@ -1850,7 +1854,7 @@ class SessionInterface(fixtures.TestBase):
             )
 
         def raises_(method, *args, **kw):
-            x_raises_(create_session(), method, *args, **kw)
+            x_raises_(fixture_session(), method, *args, **kw)
 
         for name in [
             "__contains__",
@@ -1874,7 +1878,7 @@ class SessionInterface(fixtures.TestBase):
 
             self._map_it(OK)
 
-            s = create_session()
+            s = fixture_session()
             s.add(OK())
             x_raises_(s, "flush", (user_arg,))
 
@@ -1903,7 +1907,10 @@ class SessionInterface(fixtures.TestBase):
 
         def raises_(method, *args, **kw):
             watchdog.add(method)
-            callable_ = getattr(Session(), method)
+            callable_ = getattr(
+                Session(),
+                method,
+            )
             if is_class:
                 assert_raises(
                     sa.orm.exc.UnmappedClassError, callable_, *args, **kw
@@ -1976,7 +1983,7 @@ class SessionInterface(fixtures.TestBase):
         self._map_it(Mapped)
 
         m1 = Mapped()
-        s = create_session()
+        s = fixture_session()
 
         with mock.patch.object(s, "_validate_persistent"):
             assert_raises_message(
@@ -2107,7 +2114,7 @@ class FlushWarningsTest(fixtures.MappedTest):
         User = self.classes.User
         Address = self.classes.Address
 
-        s = Session()
+        s = fixture_session()
         event.listen(User, "after_insert", fn)
 
         u1 = User(name="u1", addresses=[Address(name="a1")])
index 280a4355ffd8e6e71807f0406c5eda4d38ed2390..fe20442a30f812ffa5e5130fb9dc96d2db184d2d 100644 (file)
@@ -10,7 +10,6 @@ from sqlalchemy.orm import aliased
 from sqlalchemy.orm import backref
 from sqlalchemy.orm import clear_mappers
 from sqlalchemy.orm import close_all_sessions
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import deferred
 from sqlalchemy.orm import joinedload
 from sqlalchemy.orm import mapper
@@ -28,6 +27,7 @@ from sqlalchemy.testing import is_not
 from sqlalchemy.testing import is_true
 from sqlalchemy.testing.assertsql import CompiledSQL
 from sqlalchemy.testing.entities import ComparableEntity
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from test.orm import _fixtures
@@ -62,7 +62,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User).options(subqueryload(User.addresses))
 
@@ -106,7 +106,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             },
         )
         query_cache = {}
-        sess = create_session()
+        sess = fixture_session()
 
         u1 = (
             sess.query(User)
@@ -155,7 +155,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         User, Dingaling, Address = self.user_dingaling_fixture()
 
         for i in range(3):
-            sess = create_session()
+            sess = fixture_session()
 
             u = aliased(User)
 
@@ -180,7 +180,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         User, Dingaling, Address = self.user_dingaling_fixture()
 
         for i in range(3):
-            sess = create_session()
+            sess = fixture_session()
 
             u = aliased(User)
 
@@ -195,7 +195,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         User, Dingaling, Address = self.user_dingaling_fixture()
 
         for i in range(3):
-            sess = create_session()
+            sess = fixture_session()
 
             u = aliased(User)
             q = sess.query(u).options(
@@ -248,7 +248,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User).options(subqueryload(User.addresses))
 
@@ -280,7 +280,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
 
         q = sess.query(User).options(subqueryload(User.addresses))
 
@@ -311,7 +311,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             properties={"addresses": relationship(Address, lazy="dynamic")},
         )
         mapper(Address, addresses)
-        sess = create_session()
+        sess = fixture_session()
 
         # previously this would not raise, but would emit
         # the query needlessly and put the result nowhere.
@@ -345,7 +345,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             ),
         )
 
-        q = create_session().query(Item).order_by(Item.id)
+        q = fixture_session().query(Item).order_by(Item.id)
 
         def go():
             eq_(self.static.item_keyword_result, q.all())
@@ -375,7 +375,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             ),
         )
 
-        q = create_session().query(Item).order_by(Item.id)
+        q = fixture_session().query(Item).order_by(Item.id)
 
         def go():
             eq_(
@@ -408,7 +408,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             ),
         )
 
-        q = create_session().query(Item).order_by(Item.id)
+        q = fixture_session().query(Item).order_by(Item.id)
 
         def go():
             ka = aliased(Keyword)
@@ -438,7 +438,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             },
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         eq_(
             [
                 User(id=7, addresses=[Address(id=1)]),
@@ -475,7 +475,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             },
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         eq_(
             [
                 User(id=7, addresses=[Address(id=1)]),
@@ -515,7 +515,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             ),
         )
 
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         result = (
             q.filter(User.id == Address.user_id)
             .order_by(Address.email_address)
@@ -558,7 +558,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             ),
         )
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             [
                 User(id=7, addresses=[Address(id=1)]),
@@ -734,7 +734,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
     def _do_query_tests(self, opts, count):
         Order, User = self.classes.Order, self.classes.User
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -753,7 +753,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             self.static.user_item_keyword_result[2:3],
         )
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             sess.query(User)
             .options(*opts)
@@ -793,7 +793,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         is_(sa.orm.class_mapper(Address).get_property("user").lazy, "subquery")
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             self.static.user_address_result,
             sess.query(User).order_by(User.id).all(),
@@ -831,7 +831,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         )
         is_(sa.orm.class_mapper(Address).get_property("user").lazy, "subquery")
 
-        sess = create_session()
+        sess = fixture_session()
         eq_(
             self.static.user_address_result,
             sess.query(User).order_by(User.id).all(),
@@ -852,7 +852,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             properties=dict(addresses=relationship(Address, lazy="subquery")),
         )
 
-        sess = create_session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(User, literal_column("1")),
@@ -1071,7 +1071,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
         User, Address, Order, Item = self.classes(
             "User", "Address", "Order", "Item"
         )
-        q = create_session().query(User).order_by(User.id)
+        q = fixture_session().query(User).order_by(User.id)
 
         def items(*ids):
             if no_items:
@@ -1170,7 +1170,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             },
         )
 
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(User)
 
         result = q.order_by(User.id).limit(2).offset(1).all()
@@ -1200,7 +1200,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             },
         )
 
-        q = create_session().query(User)
+        q = fixture_session().query(User)
         eq_(
             [
                 User(id=7, addresses=[Address(id=1)]),
@@ -1235,7 +1235,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 )
             ),
         )
-        q = create_session().query(User)
+        q = fixture_session().query(User)
 
         def go():
             result = q.filter(users.c.id == 7).all()
@@ -1258,7 +1258,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
                 user=relationship(mapper(User, users), lazy="subquery")
             ),
         )
-        sess = create_session()
+        sess = fixture_session()
         q = sess.query(Address)
 
         def go():
@@ -1304,7 +1304,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             },
         )
 
-        q = create_session().query(User)
+        q = fixture_session().query(User)
 
         def go():
             eq_(
@@ -1344,7 +1344,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
             properties={"order": relationship(Order, uselist=False)},
         )
         mapper(Order, orders)
-        s = create_session()
+        s = fixture_session()
         assert_raises(
             sa.exc.SAWarning,
             s.query(User).options(subqueryload(User.order)).all,
@@ -1375,7 +1375,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest):
         )
         mapper(Dingaling, self.tables.dingalings)
 
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
         return User, Address, Dingaling, sess
 
     def _collection_to_collection_fixture(self):
@@ -1396,7 +1396,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest):
         )
         mapper(Item, self.tables.items)
 
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
         return User, Order, Item, sess
 
     def _eager_config_fixture(self):
@@ -1407,7 +1407,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest):
             properties={"addresses": relationship(Address, lazy="subquery")},
         )
         mapper(Address, self.tables.addresses)
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
         return User, Address, sess
 
     def _deferred_config_fixture(self):
@@ -1421,7 +1421,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest):
             },
         )
         mapper(Address, self.tables.addresses)
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
         return User, Address, sess
 
     def test_runs_query_on_refresh(self):
@@ -1592,7 +1592,7 @@ class OrderBySecondaryTest(fixtures.MappedTest):
         )
         mapper(B, b)
 
-        sess = create_session()
+        sess = fixture_session()
 
         def go():
             eq_(
@@ -1721,12 +1721,12 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic):
             ),
         ]
         e2.paperwork = [Paperwork(description="tps report #3")]
-        sess = create_session(connection)
+        sess = Session(connection)
         sess.add_all([e1, e2])
         sess.flush()
 
     def test_correct_subquery_nofrom(self):
-        sess = create_session()
+        sess = fixture_session()
         # use Person.paperwork here just to give the least
         # amount of context
         q = (
@@ -1779,7 +1779,7 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic):
         )
 
     def test_correct_subquery_existingfrom(self):
-        sess = create_session()
+        sess = fixture_session()
         # use Person.paperwork here just to give the least
         # amount of context
         q = (
@@ -1839,7 +1839,7 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic):
         )
 
     def test_correct_subquery_multilevel(self):
-        sess = create_session()
+        sess = fixture_session()
         # use Person.paperwork here just to give the least
         # amount of context
         q = (
@@ -1917,7 +1917,7 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic):
 
     def test_correct_subquery_with_polymorphic_no_alias(self):
         # test #3106
-        sess = create_session()
+        sess = fixture_session()
 
         wp = with_polymorphic(Person, [Engineer])
         q = (
@@ -1966,7 +1966,7 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic):
 
     def test_correct_subquery_with_polymorphic_alias(self):
         # test #3106
-        sess = create_session()
+        sess = fixture_session()
 
         wp = with_polymorphic(Person, [Engineer], aliased=True)
         q = (
@@ -2033,7 +2033,7 @@ class BaseRelationFromJoinedSubclassTest(_Polymorphic):
 
     def test_correct_subquery_with_polymorphic_flat_alias(self):
         # test #3106
-        sess = create_session()
+        sess = fixture_session()
 
         wp = with_polymorphic(Person, [Engineer], aliased=True, flat=True)
         q = (
@@ -2193,7 +2193,7 @@ class SubRelationFromJoinedSubclassMultiLevelTest(_Polymorphic):
     @classmethod
     def insert_data(cls, connection):
         c1 = cls._fixture()
-        sess = create_session(connection)
+        sess = Session(connection)
         sess.add(c1)
         sess.flush()
 
@@ -2221,7 +2221,7 @@ class SubRelationFromJoinedSubclassMultiLevelTest(_Polymorphic):
         )
 
     def test_chained_subq_subclass(self):
-        s = Session()
+        s = fixture_session()
         q = s.query(Company).options(
             subqueryload(Company.employees.of_type(Engineer))
             .subqueryload(Engineer.machines)
@@ -2263,7 +2263,7 @@ class SelfReferentialTest(fixtures.MappedTest):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -2339,7 +2339,7 @@ class SelfReferentialTest(fixtures.MappedTest):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -2386,7 +2386,7 @@ class SelfReferentialTest(fixtures.MappedTest):
                 "data": deferred(nodes.c.data),
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -2439,7 +2439,7 @@ class SelfReferentialTest(fixtures.MappedTest):
             nodes,
             properties={"children": relationship(Node, order_by=nodes.c.id)},
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -2494,7 +2494,7 @@ class SelfReferentialTest(fixtures.MappedTest):
             nodes,
             properties={"children": relationship(Node, lazy="subquery")},
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.append(Node(data="n11"))
         n1.append(Node(data="n12"))
@@ -2725,7 +2725,7 @@ class CyclicalInheritingEagerTestOne(fixtures.MappedTest):
         mapper(SubT2, None, inherits=T2, polymorphic_identity="subt2")
 
         # testing a particular endless loop condition in eager load setup
-        create_session().query(SubT).all()
+        fixture_session().query(SubT).all()
 
 
 class CyclicalInheritingEagerTestTwo(
@@ -2765,7 +2765,7 @@ class CyclicalInheritingEagerTestTwo(
     def test_from_subclass(self):
         Director = self.classes.Director
 
-        s = create_session()
+        s = fixture_session()
 
         with self.sql_execution_asserter(testing.db) as asserter:
             s.query(Director).options(subqueryload("*")).all()
@@ -2869,7 +2869,7 @@ class SubqueryloadDistinctTest(
             Movie(title="Manhattan", credits=[Credit(), Credit()]),
             Movie(title="Sweet and Lowdown", credits=[Credit()]),
         ]
-        sess = create_session(connection)
+        sess = Session(connection)
         sess.add_all([d])
         sess.flush()
 
@@ -2897,7 +2897,7 @@ class SubqueryloadDistinctTest(
         # Director.photos
         expect_distinct = director_strategy_level in (True, None)
 
-        s = create_session(testing.db)
+        s = fixture_session()
 
         with self.sql_execution_asserter(testing.db) as asserter:
             result = (
@@ -2963,7 +2963,7 @@ class SubqueryloadDistinctTest(
         Movie = self.classes.Movie
         Credit = self.classes.Credit
 
-        s = create_session(testing.db)
+        s = fixture_session()
 
         with self.sql_execution_asserter(testing.db) as asserter:
             result = (
@@ -3047,7 +3047,7 @@ class JoinedNoLoadConflictTest(fixtures.DeclarativeMappedTest):
         Parent = self.classes.Parent
         Child = self.classes.Child
 
-        s = Session()
+        s = fixture_session()
 
         # here we have
         # Parent->subqueryload->Child->joinedload->parent->noload->children.
@@ -3101,7 +3101,7 @@ class SelfRefInheritanceAliasedTest(
         attr1 = Foo.foo.of_type(r)
         attr2 = r.foo
 
-        s = Session()
+        s = fixture_session()
         q = (
             s.query(Foo)
             .filter(Foo.id == 2)
@@ -3211,7 +3211,7 @@ class TestExistingRowPopulation(fixtures.DeclarativeMappedTest):
     def test_o2m(self):
         A, A2, B, C1o2m, C2o2m = self.classes("A", "A2", "B", "C1o2m", "C2o2m")
 
-        s = Session()
+        s = fixture_session()
 
         # A -J-> B -L-> C1
         # A -J-> B -S-> C2
@@ -3232,7 +3232,7 @@ class TestExistingRowPopulation(fixtures.DeclarativeMappedTest):
     def test_m2o(self):
         A, A2, B, C1m2o, C2m2o = self.classes("A", "A2", "B", "C1m2o", "C2m2o")
 
-        s = Session()
+        s = fixture_session()
 
         # A -J-> B -L-> C1
         # A -J-> B -S-> C2
@@ -3323,7 +3323,7 @@ class FromSubqTest(fixtures.DeclarativeMappedTest):
     def test_subq_w_from_self_one(self):
         A, B, C = self.classes("A", "B", "C")
 
-        s = Session()
+        s = fixture_session()
 
         cache = {}
 
@@ -3409,7 +3409,7 @@ class FromSubqTest(fixtures.DeclarativeMappedTest):
 
         A, B, C = self.classes("A", "B", "C")
 
-        s = Session()
+        s = fixture_session()
         cache = {}
 
         for i in range(3):
index 880f0bd1888606fd0c1e1a6969b78f6bc798b2a4..76cd7f7583a2d5dd76eada94ee5e5871cbdca36f 100644 (file)
@@ -3,7 +3,6 @@ from sqlalchemy import Integer
 from sqlalchemy import testing
 from sqlalchemy.orm import attributes
 from sqlalchemy.orm import class_mapper
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import exc as orm_exc
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import sync
@@ -11,6 +10,7 @@ from sqlalchemy.orm import unitofwork
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -61,7 +61,7 @@ class SyncTest(
 
     def _fixture(self):
         A, B = self.classes.A, self.classes.B
-        session = create_session()
+        session = fixture_session()
         uowcommit = self._get_test_uow(session)
         a_mapper = class_mapper(A)
         b_mapper = class_mapper(B)
index 6eda6fbb6821bbca3d543127991306eb6b1e89e3..550cf6535b04396e0b336c486e7553936dc8dca9 100644 (file)
@@ -14,7 +14,6 @@ from sqlalchemy import testing
 from sqlalchemy import text
 from sqlalchemy.future import Engine
 from sqlalchemy.orm import attributes
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import exc as orm_exc
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
@@ -33,6 +32,7 @@ from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
 from sqlalchemy.testing import is_not
 from sqlalchemy.testing import mock
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.util import gc_collect
 from test.orm._fixtures import FixtureTest
 
@@ -44,10 +44,9 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
     def test_no_close_transaction_on_flush(self):
         User, users = self.classes.User, self.tables.users
 
-        c = testing.db.connect()
-        try:
+        with testing.db.connect() as c:
             mapper(User, users)
-            s = create_session(bind=c)
+            s = Session(bind=c)
             s.begin()
             tran = s._legacy_transaction()
             s.add(User(name="first"))
@@ -61,8 +60,6 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
             s.flush()
             assert s._legacy_transaction() is tran
             tran.close()
-        finally:
-            c.close()
 
     @engines.close_open_connections
     def test_subtransaction_on_external_subtrans(self):
@@ -71,7 +68,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         mapper(User, users)
         conn = testing.db.connect()
         trans = conn.begin()
-        sess = create_session(bind=conn, autocommit=False, autoflush=True)
+        sess = Session(bind=conn, autocommit=False, autoflush=True)
         sess.begin(subtransactions=True)
         u = User(name="ed")
         sess.add(u)
@@ -88,7 +85,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         mapper(User, users)
         conn = testing.db.connect()
         trans = conn.begin()
-        sess = create_session(bind=conn, autocommit=False, autoflush=True)
+        sess = Session(bind=conn, autocommit=False, autoflush=True)
         u = User(name="ed")
         sess.add(u)
         sess.flush()
@@ -106,7 +103,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         try:
             conn = testing.db.connect()
             trans = conn.begin()
-            sess = create_session(bind=conn, autocommit=False, autoflush=True)
+            sess = Session(bind=conn, autocommit=False, autoflush=True)
             u1 = User(name="u1")
             sess.add(u1)
             sess.flush()
@@ -134,7 +131,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         conn = engine.connect()
         conn.begin()
 
-        sess = create_session(bind=conn, autocommit=False, autoflush=True)
+        sess = Session(bind=conn, autocommit=False, autoflush=True)
         u = User(name="ed")
         sess.add(u)
         sess.flush()
@@ -154,7 +151,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         conn = engine.connect()
         conn.begin()
 
-        sess = create_session(bind=conn, autocommit=False, autoflush=True)
+        sess = Session(bind=conn, autocommit=False, autoflush=True)
         u = User(name="ed")
         sess.add(u)
         sess.flush()
@@ -174,7 +171,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
 
         with engine.connect() as conn:
             conn.begin()
-            sess = create_session(bind=conn, autocommit=False, autoflush=True)
+            sess = Session(bind=conn, autocommit=False, autoflush=True)
             u1 = User(name="u1")
             sess.add(u1)
             sess.flush()
@@ -194,7 +191,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
 
         mapper(User, users)
 
-        session = create_session(bind=testing.db)
+        session = fixture_session()
         session.begin()
         session.begin_nested()
         u1 = User(name="u1")
@@ -210,7 +207,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
 
         mapper(User, users)
 
-        session = create_session(bind=testing.db)
+        session = fixture_session()
         session.begin()
         u1 = User(name="u1")
         session.add(u1)
@@ -230,7 +227,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
     def test_heavy_nesting(self):
         users = self.tables.users
 
-        session = create_session(bind=testing.db)
+        session = fixture_session()
         session.begin()
         session.connection().execute(users.insert().values(name="user1"))
         session.begin(subtransactions=True)
@@ -263,7 +260,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         users = self.tables.users
 
         engine = Engine._future_facade(testing.db)
-        session = create_session(engine, autocommit=False)
+        session = Session(engine, autocommit=False)
 
         session.begin()
         session.connection().execute(users.insert().values(name="user1"))
@@ -354,8 +351,8 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
 
         mapper(User, users)
 
-        s1 = create_session(bind=testing.db, autocommit=False)
-        s2 = create_session(bind=testing.db, autocommit=False)
+        s1 = fixture_session(autocommit=False)
+        s2 = fixture_session(autocommit=False)
         u1 = User(name="u1")
         s1.add(u1)
         s1.flush()
@@ -377,7 +374,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         mapper(Address, addresses)
 
         engine2 = engines.testing_engine()
-        sess = create_session(autocommit=True, autoflush=False, twophase=True)
+        sess = fixture_session(autocommit=True, autoflush=False, twophase=True)
         sess.bind_mapper(User, testing.db)
         sess.bind_mapper(Address, engine2)
         sess.begin()
@@ -387,14 +384,15 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         sess.commit()
         sess.close()
         engine2.dispose()
-        eq_(select(func.count("*")).select_from(users).scalar(), 1)
-        eq_(select(func.count("*")).select_from(addresses).scalar(), 1)
+        with testing.db.connect() as conn:
+            eq_(conn.scalar(select(func.count("*")).select_from(users)), 1)
+            eq_(conn.scalar(select(func.count("*")).select_from(addresses)), 1)
 
     @testing.requires.independent_connections
     def test_invalidate(self):
         User, users = self.classes.User, self.tables.users
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
         u = User(name="u1")
         sess.add(u)
         sess.flush()
@@ -423,7 +421,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        sess = create_session(autocommit=False, autoflush=True)
+        sess = fixture_session(autocommit=False, autoflush=True)
         sess.begin(subtransactions=True)
         u = User(name="u1")
         sess.add(u)
@@ -438,7 +436,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        sess = create_session()
+        sess = fixture_session()
         sess.begin()
 
         u = User(name="u1")
@@ -462,7 +460,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        sess = create_session(autocommit=False)
+        sess = fixture_session(autocommit=False)
         u = User(name="u1")
         sess.add(u)
         sess.flush()
@@ -484,7 +482,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        sess = create_session(testing.db, autocommit=False, future=True)
+        sess = fixture_session(autocommit=False, future=True)
         u = User(name="u1")
         sess.add(u)
         sess.flush()
@@ -507,7 +505,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
 
         mapper(User, users)
 
-        sess = create_session(autocommit=True)
+        sess = fixture_session(autocommit=True)
 
         sess.begin()
         sess.begin_nested()
@@ -543,7 +541,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
 
         mapper(User, users)
 
-        sess = create_session(autocommit=True)
+        sess = fixture_session(autocommit=True)
 
         sess.begin()
         sess.begin_nested()
@@ -575,7 +573,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
 
         mapper(User, users)
 
-        sess = create_session(autocommit=False)
+        sess = fixture_session(autocommit=False)
 
         sess.begin_nested()
 
@@ -653,7 +651,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
 
         to_flush = [User(name="ed"), User(name="jack"), User(name="wendy")]
 
@@ -677,7 +675,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
 
         @event.listens_for(sess, "after_flush_postexec")
         def add_another_user(session, ctx):
@@ -694,7 +692,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = create_session(autocommit=True)
+        sess = fixture_session(autocommit=True)
         sess.begin()
         sess.begin(subtransactions=True)
         sess.add(User(name="u1"))
@@ -711,7 +709,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         sess.close()
 
     def test_no_sql_during_commit(self):
-        sess = create_session(bind=testing.db, autocommit=False)
+        sess = fixture_session(autocommit=False)
 
         @event.listens_for(sess, "after_commit")
         def go(session):
@@ -725,7 +723,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         )
 
     def test_no_sql_during_prepare(self):
-        sess = create_session(bind=testing.db, autocommit=False, twophase=True)
+        sess = fixture_session(autocommit=False, twophase=True)
 
         sess.prepare()
 
@@ -738,7 +736,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         )
 
     def test_no_sql_during_rollback(self):
-        sess = create_session(bind=testing.db, autocommit=False)
+        sess = fixture_session(autocommit=False)
 
         sess.connection()
 
@@ -820,7 +818,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         eq_(session.is_active, True)
 
     def test_no_prepare_wo_twophase(self):
-        sess = create_session(bind=testing.db, autocommit=False)
+        sess = fixture_session(autocommit=False)
 
         assert_raises_message(
             sa_exc.InvalidRequestError,
@@ -830,7 +828,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         )
 
     def test_closed_status_check(self):
-        sess = create_session()
+        sess = fixture_session()
         trans = sess.begin()
         trans.rollback()
         assert_raises_message(
@@ -845,7 +843,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         )
 
     def test_deactive_status_check(self):
-        sess = create_session()
+        sess = fixture_session()
         trans = sess.begin()
         trans2 = sess.begin(subtransactions=True)
         trans2.rollback()
@@ -858,7 +856,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         )
 
     def test_deactive_status_check_w_exception(self):
-        sess = create_session()
+        sess = fixture_session()
         trans = sess.begin()
         trans2 = sess.begin(subtransactions=True)
         try:
@@ -878,7 +876,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(id=1, name="u1")
         sess.add(u1)
         sess.commit()
@@ -984,7 +982,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(id=1, name="u1")
         sess.add(u1)
         sess.commit()
@@ -1027,7 +1025,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        session = create_session(autocommit=False)
+        session = fixture_session(autocommit=False)
         session.add(User(name="ed"))
         session._legacy_transaction().commit()
 
@@ -1037,7 +1035,7 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
-        session = create_session(testing.db, autocommit=False, future=True)
+        session = fixture_session(autocommit=False, future=True)
         session.add(User(name="ed"))
         session._legacy_transaction().commit()
 
@@ -1073,7 +1071,6 @@ class SessionTransactionTest(fixtures.RemovesEvents, FixtureTest):
 class _LocalFixture(FixtureTest):
     run_setup_mappers = "once"
     run_inserts = None
-    session = sessionmaker()
 
     @classmethod
     def setup_mappers(cls):
@@ -1351,7 +1348,7 @@ class FixtureDataTest(_LocalFixture):
 
     def test_attrs_on_rollback(self):
         User = self.classes.User
-        sess = self.session()
+        sess = fixture_session()
         u1 = sess.query(User).get(7)
         u1.name = "ed"
         sess.rollback()
@@ -1359,7 +1356,7 @@ class FixtureDataTest(_LocalFixture):
 
     def test_commit_persistent(self):
         User = self.classes.User
-        sess = self.session()
+        sess = fixture_session()
         u1 = sess.query(User).get(7)
         u1.name = "ed"
         sess.flush()
@@ -1368,12 +1365,12 @@ class FixtureDataTest(_LocalFixture):
 
     def test_concurrent_commit_persistent(self):
         User = self.classes.User
-        s1 = self.session()
+        s1 = fixture_session()
         u1 = s1.query(User).get(7)
         u1.name = "ed"
         s1.commit()
 
-        s2 = self.session()
+        s2 = fixture_session()
         u2 = s2.query(User).get(7)
         assert u2.name == "ed"
         u2.name = "will"
@@ -1455,7 +1452,7 @@ class AutoExpireTest(_LocalFixture):
 
     def test_expunge_pending_on_rollback(self):
         User = self.classes.User
-        sess = self.session()
+        sess = fixture_session()
         u2 = User(name="newuser")
         sess.add(u2)
         assert u2 in sess
@@ -1464,7 +1461,7 @@ class AutoExpireTest(_LocalFixture):
 
     def test_trans_pending_cleared_on_commit(self):
         User = self.classes.User
-        sess = self.session()
+        sess = fixture_session()
         u2 = User(name="newuser")
         sess.add(u2)
         assert u2 in sess
@@ -1478,7 +1475,7 @@ class AutoExpireTest(_LocalFixture):
 
     def test_update_deleted_on_rollback(self):
         User = self.classes.User
-        s = self.session()
+        s = fixture_session()
         u1 = User(name="ed")
         s.add(u1)
         s.commit()
@@ -1496,7 +1493,7 @@ class AutoExpireTest(_LocalFixture):
     def test_gced_delete_on_rollback(self):
         User, users = self.classes.User, self.tables.users
 
-        s = self.session()
+        s = fixture_session()
         u1 = User(name="ed")
         s.add(u1)
         s.commit()
@@ -1531,7 +1528,7 @@ class AutoExpireTest(_LocalFixture):
 
     def test_trans_deleted_cleared_on_rollback(self):
         User = self.classes.User
-        s = self.session()
+        s = fixture_session()
         u1 = User(name="ed")
         s.add(u1)
         s.commit()
@@ -1545,7 +1542,7 @@ class AutoExpireTest(_LocalFixture):
     def test_update_deleted_on_rollback_cascade(self):
         User, Address = self.classes.User, self.classes.Address
 
-        s = self.session()
+        s = fixture_session()
         u1 = User(name="ed", addresses=[Address(email_address="foo")])
         s.add(u1)
         s.commit()
@@ -1561,7 +1558,7 @@ class AutoExpireTest(_LocalFixture):
     def test_update_deleted_on_rollback_orphan(self):
         User, Address = self.classes.User, self.classes.Address
 
-        s = self.session()
+        s = fixture_session()
         u1 = User(name="ed", addresses=[Address(email_address="foo")])
         s.add(u1)
         s.commit()
@@ -1577,7 +1574,7 @@ class AutoExpireTest(_LocalFixture):
 
     def test_commit_pending(self):
         User = self.classes.User
-        sess = self.session()
+        sess = fixture_session()
         u1 = User(name="newuser")
         sess.add(u1)
         sess.flush()
@@ -1586,12 +1583,12 @@ class AutoExpireTest(_LocalFixture):
 
     def test_concurrent_commit_pending(self):
         User = self.classes.User
-        s1 = self.session()
+        s1 = fixture_session()
         u1 = User(name="edward")
         s1.add(u1)
         s1.commit()
 
-        s2 = self.session()
+        s2 = fixture_session()
         u2 = s2.query(User).filter(User.name == "edward").one()
         u2.name = "will"
         s2.commit()
@@ -1605,7 +1602,7 @@ class TwoPhaseTest(_LocalFixture):
     @testing.requires.two_phase_transactions
     def test_rollback_on_prepare(self):
         User = self.classes.User
-        s = self.session(twophase=True)
+        s = fixture_session(twophase=True)
 
         u = User(name="ed")
         s.add(u)
@@ -1620,7 +1617,7 @@ class RollbackRecoverTest(_LocalFixture):
 
     def test_pk_violation(self):
         User, Address = self.classes.User, self.classes.Address
-        s = self.session()
+        s = fixture_session()
 
         a1 = Address(email_address="foo")
         u1 = User(id=1, name="ed", addresses=[a1])
@@ -1662,7 +1659,7 @@ class RollbackRecoverTest(_LocalFixture):
     @testing.requires.savepoints
     def test_pk_violation_with_savepoint(self):
         User, Address = self.classes.User, self.classes.Address
-        s = self.session()
+        s = fixture_session()
         a1 = Address(email_address="foo")
         u1 = User(id=1, name="ed", addresses=[a1])
         s.add(u1)
@@ -1704,7 +1701,7 @@ class SavepointTest(_LocalFixture):
     @testing.requires.savepoints
     def test_savepoint_rollback(self):
         User = self.classes.User
-        s = self.session()
+        s = fixture_session()
         u1 = User(name="ed")
         u2 = User(name="jack")
         s.add_all([u1, u2])
@@ -1731,7 +1728,7 @@ class SavepointTest(_LocalFixture):
     @testing.requires.savepoints
     def test_savepoint_delete(self):
         User = self.classes.User
-        s = self.session()
+        s = fixture_session()
         u1 = User(name="ed")
         s.add(u1)
         s.commit()
@@ -1745,7 +1742,7 @@ class SavepointTest(_LocalFixture):
     @testing.requires.savepoints
     def test_savepoint_commit(self):
         User = self.classes.User
-        s = self.session()
+        s = fixture_session()
         u1 = User(name="ed")
         u2 = User(name="jack")
         s.add_all([u1, u2])
@@ -1781,7 +1778,7 @@ class SavepointTest(_LocalFixture):
     @testing.requires.savepoints
     def test_savepoint_rollback_collections(self):
         User, Address = self.classes.User, self.classes.Address
-        s = self.session()
+        s = fixture_session()
         u1 = User(name="ed", addresses=[Address(email_address="foo")])
         s.add(u1)
         s.commit()
@@ -1834,7 +1831,7 @@ class SavepointTest(_LocalFixture):
     @testing.requires.savepoints
     def test_savepoint_commit_collections(self):
         User, Address = self.classes.User, self.classes.Address
-        s = self.session()
+        s = fixture_session()
         u1 = User(name="ed", addresses=[Address(email_address="foo")])
         s.add(u1)
         s.commit()
@@ -1889,7 +1886,7 @@ class SavepointTest(_LocalFixture):
     @testing.requires.savepoints
     def test_expunge_pending_on_rollback(self):
         User = self.classes.User
-        sess = self.session()
+        sess = fixture_session()
 
         sess.begin_nested()
         u2 = User(name="newuser")
@@ -1901,7 +1898,7 @@ class SavepointTest(_LocalFixture):
     @testing.requires.savepoints
     def test_update_deleted_on_rollback(self):
         User = self.classes.User
-        s = self.session()
+        s = fixture_session()
         u1 = User(name="ed")
         s.add(u1)
         s.commit()
@@ -1916,7 +1913,7 @@ class SavepointTest(_LocalFixture):
     @testing.requires.savepoints_w_release
     def test_savepoint_lost_still_runs(self):
         User = self.classes.User
-        s = self.session(bind=self.bind)
+        s = fixture_session()
         trans = s.begin_nested()
         s.connection()
         u1 = User(name="ed")
@@ -1951,7 +1948,7 @@ class AccountingFlagsTest(_LocalFixture):
     def test_no_expire_on_commit(self):
         User, users = self.classes.User, self.tables.users
 
-        sess = sessionmaker(expire_on_commit=False)()
+        sess = fixture_session(expire_on_commit=False)
         u1 = User(name="ed")
         sess.add(u1)
         sess.commit()
@@ -1967,12 +1964,12 @@ class AutoCommitTest(_LocalFixture):
     __backend__ = True
 
     def test_begin_nested_requires_trans(self):
-        sess = create_session(autocommit=True)
+        sess = fixture_session(autocommit=True)
         assert_raises(sa_exc.InvalidRequestError, sess.begin_nested)
 
     def test_begin_preflush(self):
         User = self.classes.User
-        sess = create_session(autocommit=True)
+        sess = fixture_session(autocommit=True)
 
         u1 = User(name="ed")
         sess.add(u1)
@@ -1987,7 +1984,7 @@ class AutoCommitTest(_LocalFixture):
 
     def test_accounting_commit_fails_add(self):
         User = self.classes.User
-        sess = create_session(autocommit=True)
+        sess = fixture_session(autocommit=True)
 
         fail = False
 
@@ -2016,7 +2013,7 @@ class AutoCommitTest(_LocalFixture):
 
     def test_accounting_commit_fails_delete(self):
         User = self.classes.User
-        sess = create_session(autocommit=True)
+        sess = fixture_session(autocommit=True)
 
         fail = False
 
@@ -2047,7 +2044,7 @@ class AutoCommitTest(_LocalFixture):
         when autocommit=True/expire_on_commit=True."""
 
         User = self.classes.User
-        sess = create_session(autocommit=True, expire_on_commit=True)
+        sess = fixture_session(autocommit=True, expire_on_commit=True)
 
         u1 = User(id=1, name="ed")
         sess.add(u1)
@@ -2071,7 +2068,7 @@ class ContextManagerPlusFutureTest(FixtureTest):
 
         mapper(User, users)
 
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             with sess.begin_nested():
@@ -2091,7 +2088,7 @@ class ContextManagerPlusFutureTest(FixtureTest):
 
         mapper(User, users)
 
-        sess = Session()
+        sess = fixture_session()
         with sess.begin():
             sess.add(User(name="u1"))
 
@@ -2103,7 +2100,7 @@ class ContextManagerPlusFutureTest(FixtureTest):
 
         mapper(User, users)
 
-        sess = Session()
+        sess = fixture_session()
 
         def go():
             with sess.begin():
@@ -2513,7 +2510,7 @@ class NaturalPKRollbackTest(fixtures.MappedTest):
 
         mapper(User, users)
 
-        session = sessionmaker()()
+        session = fixture_session()
 
         u1, u2, u3 = User(name="u1"), User(name="u2"), User(name="u3")
 
@@ -2544,7 +2541,7 @@ class NaturalPKRollbackTest(fixtures.MappedTest):
 
         u1 = User(name="u1")
 
-        s = Session()
+        s = fixture_session()
         s.add(u1)
         s.flush()
         del u1
@@ -2568,7 +2565,7 @@ class NaturalPKRollbackTest(fixtures.MappedTest):
         u1 = User(name="u1")
         u2 = User(name="u2")
 
-        s = Session()
+        s = fixture_session()
         s.add_all([u1, u2])
         s.commit()
 
@@ -2595,7 +2592,7 @@ class NaturalPKRollbackTest(fixtures.MappedTest):
 
         u1 = User(name="u1")
 
-        s = Session()
+        s = fixture_session()
         s.add(u1)
         s.commit()
 
@@ -2624,7 +2621,7 @@ class NaturalPKRollbackTest(fixtures.MappedTest):
         u2 = User(name="u2")
         u3 = User(name="u3")
 
-        s = Session()
+        s = fixture_session()
         s.add_all([u1, u2, u3])
         s.commit()
 
@@ -2655,7 +2652,7 @@ class NaturalPKRollbackTest(fixtures.MappedTest):
 
         u1 = User(name="u1")
 
-        s = Session()
+        s = fixture_session()
         s.add(u1)
         s.commit()
 
index 7583b9d22c73edb7ad4d9ab5aee76401c6ebaa29..84373b2dca576de475d6fb3a20df6bbdb3843522 100644 (file)
@@ -17,7 +17,6 @@ from sqlalchemy import String
 from sqlalchemy import testing
 from sqlalchemy.inspection import inspect
 from sqlalchemy.orm import column_property
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import exc as orm_exc
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
@@ -30,6 +29,7 @@ from sqlalchemy.testing import fixtures
 from sqlalchemy.testing.assertsql import AllOf
 from sqlalchemy.testing.assertsql import CompiledSQL
 from sqlalchemy.testing.assertsql import Conditional
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from sqlalchemy.util import OrderedDict
@@ -70,7 +70,7 @@ class HistoryTest(_fixtures.FixtureTest):
             ),
         )
 
-        session = create_session(autocommit=False)
+        session = fixture_session(autocommit=False)
 
         u = User(name="u1")
         a = Address(email_address="u1@e")
@@ -129,7 +129,7 @@ class UnicodeTest(fixtures.MappedTest):
         t1 = Test(id=1, txt=txt)
         self.assert_(t1.txt == txt)
 
-        session = create_session(autocommit=False)
+        session = fixture_session(autocommit=False)
         session.add(t1)
         session.commit()
 
@@ -150,12 +150,12 @@ class UnicodeTest(fixtures.MappedTest):
         t1 = Test(txt=txt)
         t1.t2s.append(Test2())
         t1.t2s.append(Test2())
-        session = create_session(autocommit=False)
+        session = fixture_session(autocommit=False, expire_on_commit=False)
         session.add(t1)
         session.commit()
         session.close()
 
-        session = create_session()
+        session = fixture_session()
         t1 = session.query(Test).filter_by(id=t1.id).one()
         assert len(t1.t2s) == 2
 
@@ -227,7 +227,7 @@ class UnicodeSchemaTest(fixtures.MappedTest):
         b1 = B()
         a1.t2s.append(b1)
 
-        session = create_session()
+        session = fixture_session()
         session.add(a1)
         session.flush()
         session.expunge_all()
@@ -265,7 +265,7 @@ class UnicodeSchemaTest(fixtures.MappedTest):
         a1 = A(b=5)
         b1 = B(e=7)
 
-        session = create_session()
+        session = fixture_session()
         session.add_all((a1, b1))
         session.flush()
         session.expunge_all()
@@ -302,7 +302,7 @@ class BinaryHistTest(fixtures.MappedTest, testing.AssertsExecutionResults):
 
         mapper(Foo, t1)
 
-        s = create_session()
+        s = fixture_session()
 
         f1 = Foo(data=data)
         s.add(f1)
@@ -367,7 +367,7 @@ class PKTest(fixtures.MappedTest):
 
         e = Entry(name="entry1", value="this is entry 1", multi_rev=2)
 
-        session = create_session()
+        session = fixture_session()
         session.add(e)
         session.flush()
         session.expunge_all()
@@ -386,7 +386,7 @@ class PKTest(fixtures.MappedTest):
 
         e = Entry(pk_col_1="pk1", pk_col_2="pk1_related", data="im the data")
 
-        session = create_session()
+        session = fixture_session()
         session.add(e)
         session.flush()
 
@@ -402,7 +402,7 @@ class PKTest(fixtures.MappedTest):
             data="some more data",
         )
 
-        session = create_session()
+        session = fixture_session()
         session.add(e)
         session.flush()
 
@@ -463,20 +463,21 @@ class ForeignPKTest(fixtures.MappedTest):
         ps = PersonSite(site="asdf")
         p.sites.append(ps)
 
-        session = create_session()
+        session = fixture_session()
         session.add(p)
         session.flush()
 
-        p_count = (
-            select(func.count("*"))
-            .where(people.c.person == "im the key")
-            .scalar()
+        conn = session.connection()
+        p_count = conn.scalar(
+            select(func.count("*")).where(people.c.person == "im the key")
         )
         eq_(p_count, 1)
         eq_(
-            select(func.count("*"))
-            .where(peoplesites.c.person == "im the key")
-            .scalar(),
+            conn.scalar(
+                select(func.count("*")).where(
+                    peoplesites.c.person == "im the key"
+                )
+            ),
             1,
         )
 
@@ -539,7 +540,7 @@ class ClauseAttributesTest(fixtures.MappedTest):
 
         u = User(name="test")
 
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
 
@@ -557,7 +558,7 @@ class ClauseAttributesTest(fixtures.MappedTest):
 
         u = User(name="test")
 
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
 
@@ -582,7 +583,7 @@ class ClauseAttributesTest(fixtures.MappedTest):
 
         u = User(name="test", counter=sa.select(5).scalar_subquery())
 
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
 
@@ -593,7 +594,7 @@ class ClauseAttributesTest(fixtures.MappedTest):
         PkDefault = self.classes.PkDefault
 
         pk = PkDefault(id=literal(5) + 10, data="some data")
-        session = Session()
+        session = fixture_session()
         session.add(pk)
         session.flush()
 
@@ -613,7 +614,7 @@ class ClauseAttributesTest(fixtures.MappedTest):
             bool,
             None == sa.false(),  # noqa
         )
-        s = create_session()
+        s = fixture_session()
         hb = HasBoolean(value=None)
         s.add(hb)
         s.flush()
@@ -638,7 +639,7 @@ class ClauseAttributesTest(fixtures.MappedTest):
 
         u = User(id=5, name="test", counter=Thing(3))
 
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
 
@@ -706,24 +707,32 @@ class PassiveDeletesTest(fixtures.MappedTest):
                 )
             },
         )
-        session = create_session()
-        mc = MyClass()
-        mc.children.append(MyOtherClass())
-        mc.children.append(MyOtherClass())
-        mc.children.append(MyOtherClass())
-        mc.children.append(MyOtherClass())
+        with fixture_session() as session:
+            mc = MyClass()
+            mc.children.append(MyOtherClass())
+            mc.children.append(MyOtherClass())
+            mc.children.append(MyOtherClass())
+            mc.children.append(MyOtherClass())
 
-        session.add(mc)
-        session.flush()
-        session.expunge_all()
+            session.add(mc)
+            session.flush()
+            session.expunge_all()
 
-        eq_(select(func.count("*")).select_from(myothertable).scalar(), 4)
-        mc = session.query(MyClass).get(mc.id)
-        session.delete(mc)
-        session.flush()
+            conn = session.connection()
+
+            eq_(
+                conn.scalar(select(func.count("*")).select_from(myothertable)),
+                4,
+            )
+            mc = session.query(MyClass).get(mc.id)
+            session.delete(mc)
+            session.flush()
 
-        eq_(select(func.count("*")).select_from(mytable).scalar(), 0)
-        eq_(select(func.count("*")).select_from(myothertable).scalar(), 0)
+            eq_(conn.scalar(select(func.count("*")).select_from(mytable)), 0)
+            eq_(
+                conn.scalar(select(func.count("*")).select_from(myothertable)),
+                0,
+            )
 
     @testing.emits_warning(
         r".*'passive_deletes' is normally configured on one-to-many"
@@ -754,7 +763,7 @@ class PassiveDeletesTest(fixtures.MappedTest):
         )
         mapper(MyClass, mytable)
 
-        session = Session()
+        session = fixture_session()
         mc = MyClass()
         mco = MyOtherClass()
         mco.myclass = mc
@@ -882,20 +891,24 @@ class ExtraPassiveDeletesTest(fixtures.MappedTest):
             },
         )
 
-        session = create_session()
-        mc = MyClass()
-        mc.children.append(MyOtherClass())
-        mc.children.append(MyOtherClass())
-        mc.children.append(MyOtherClass())
-        mc.children.append(MyOtherClass())
-        session.add(mc)
-        session.flush()
-        session.expunge_all()
+        with fixture_session(expire_on_commit=False) as session:
+            mc = MyClass()
+            mc.children.append(MyOtherClass())
+            mc.children.append(MyOtherClass())
+            mc.children.append(MyOtherClass())
+            mc.children.append(MyOtherClass())
+            session.add(mc)
+            session.commit()
 
-        eq_(select(func.count("*")).select_from(myothertable).scalar(), 4)
-        mc = session.query(MyClass).get(mc.id)
-        session.delete(mc)
-        assert_raises(sa.exc.DBAPIError, session.flush)
+        with fixture_session(expire_on_commit=False) as session:
+            conn = session.connection()
+            eq_(
+                conn.scalar(select(func.count("*")).select_from(myothertable)),
+                4,
+            )
+            mc = session.query(MyClass).get(mc.id)
+            session.delete(mc)
+            assert_raises(sa.exc.DBAPIError, session.flush)
 
     def test_extra_passive_2(self):
         myothertable, MyClass, MyOtherClass, mytable = (
@@ -916,19 +929,23 @@ class ExtraPassiveDeletesTest(fixtures.MappedTest):
             },
         )
 
-        session = create_session()
-        mc = MyClass()
-        mc.children.append(MyOtherClass())
-        session.add(mc)
-        session.flush()
-        session.expunge_all()
+        with fixture_session(expire_on_commit=False) as session:
+            mc = MyClass()
+            mc.children.append(MyOtherClass())
+            session.add(mc)
+            session.commit()
 
-        eq_(select(func.count("*")).select_from(myothertable).scalar(), 1)
+        with fixture_session(autoflush=False) as session:
+            conn = session.connection()
+            eq_(
+                conn.scalar(select(func.count("*")).select_from(myothertable)),
+                1,
+            )
 
-        mc = session.query(MyClass).get(mc.id)
-        session.delete(mc)
-        mc.children[0].data = "some new data"
-        assert_raises(sa.exc.DBAPIError, session.flush)
+            mc = session.query(MyClass).get(mc.id)
+            session.delete(mc)
+            mc.children[0].data = "some new data"
+            assert_raises(sa.exc.DBAPIError, session.flush)
 
     def test_extra_passive_obj_removed_o2m(self):
         myothertable, MyClass, MyOtherClass, mytable = (
@@ -947,7 +964,7 @@ class ExtraPassiveDeletesTest(fixtures.MappedTest):
             },
         )
 
-        session = create_session()
+        session = fixture_session()
         mc = MyClass()
         moc1 = MyOtherClass()
         moc2 = MyOtherClass()
@@ -982,7 +999,7 @@ class ExtraPassiveDeletesTest(fixtures.MappedTest):
                 )
             },
         )
-        session = Session()
+        session = fixture_session()
         mc = MyClass()
         session.add(mc)
         session.commit()
@@ -1016,16 +1033,18 @@ class ColumnCollisionTest(fixtures.MappedTest):
             pass
 
         mapper(Book, book)
-        sess = create_session()
+        with fixture_session() as sess:
 
-        b1 = Book(book_id="abc", title="def")
-        sess.add(b1)
-        sess.flush()
+            b1 = Book(book_id="abc", title="def")
+            sess.add(b1)
+            sess.flush()
 
-        b1.title = "ghi"
-        sess.flush()
-        sess.close()
-        eq_(sess.query(Book).first(), Book(book_id="abc", title="ghi"))
+            b1.title = "ghi"
+            sess.flush()
+            sess.commit()
+
+        with fixture_session() as sess:
+            eq_(sess.query(Book).first(), Book(book_id="abc", title="ghi"))
 
 
 class DefaultTest(fixtures.MappedTest):
@@ -1133,7 +1152,7 @@ class DefaultTest(fixtures.MappedTest):
         h4 = Hoho()
         h5 = Hoho(foober="im the new foober")
 
-        session = create_session(autocommit=False)
+        session = fixture_session(autocommit=False, expire_on_commit=False)
         session.add_all((h1, h2, h3, h4, h5))
         session.commit()
 
@@ -1193,7 +1212,7 @@ class DefaultTest(fixtures.MappedTest):
         mapper(Secondary, self.tables.secondary_table)
         h1 = Hoho()
 
-        session = create_session()
+        session = fixture_session()
         session.add(h1)
 
         if testing.db.dialect.implicit_returning:
@@ -1218,7 +1237,7 @@ class DefaultTest(fixtures.MappedTest):
         mapper(Hoho, default_t)
 
         h1 = Hoho(hoho="15", counter=15)
-        session = create_session()
+        session = fixture_session()
         session.add(h1)
         session.flush()
 
@@ -1236,7 +1255,7 @@ class DefaultTest(fixtures.MappedTest):
         mapper(Hoho, default_t)
 
         h1 = Hoho()
-        session = create_session()
+        session = fixture_session()
         session.add(h1)
         session.flush()
 
@@ -1272,7 +1291,7 @@ class DefaultTest(fixtures.MappedTest):
         s1 = Secondary(data="s1")
         h1.secondaries.append(s1)
 
-        session = create_session()
+        session = fixture_session()
         session.add(h1)
         session.flush()
         session.expunge_all()
@@ -1428,7 +1447,7 @@ class ColumnPropertyTest(fixtures.MappedTest):
         )
         mapper(SubData, subdata, inherits=Data)
 
-        sess = create_session()
+        sess = fixture_session()
         sd1 = SubData(a="hello", b="there", c="hi")
         sess.add(sd1)
         sess.flush()
@@ -1437,25 +1456,27 @@ class ColumnPropertyTest(fixtures.MappedTest):
     def _test(self, expect_expiry, expect_deferred_load=False):
         Data = self.classes.Data
 
-        sess = create_session()
+        with fixture_session() as sess:
 
-        d1 = Data(a="hello", b="there")
-        sess.add(d1)
-        sess.flush()
+            d1 = Data(a="hello", b="there")
+            sess.add(d1)
+            sess.flush()
 
-        eq_(d1.aplusb, "hello there")
-
-        d1.b = "bye"
-        sess.flush()
-        if expect_expiry:
-            eq_(d1.aplusb, "hello bye")
-        else:
             eq_(d1.aplusb, "hello there")
 
-        d1.b = "foobar"
-        d1.aplusb = "im setting this explicitly"
-        sess.flush()
-        eq_(d1.aplusb, "im setting this explicitly")
+            d1.b = "bye"
+            sess.flush()
+            if expect_expiry:
+                eq_(d1.aplusb, "hello bye")
+            else:
+                eq_(d1.aplusb, "hello there")
+
+            d1.b = "foobar"
+            d1.aplusb = "im setting this explicitly"
+            sess.flush()
+            eq_(d1.aplusb, "im setting this explicitly")
+
+            sess.commit()
 
         # test issue #3984.
         # NOTE: if we only expire_all() here rather than start with brand new
@@ -1463,18 +1484,18 @@ class ColumnPropertyTest(fixtures.MappedTest):
         # "undeferred".  this is questionable but not as severe as the never-
         # loaded attribute being loaded during an unexpire.
 
-        sess.close()
-        d1 = sess.query(Data).first()
+        with fixture_session() as sess:
+            d1 = sess.query(Data).first()
 
-        d1.b = "so long"
-        sess.flush()
-        sess.expire_all()
-        eq_(d1.b, "so long")
-        if expect_deferred_load:
-            eq_("aplusb" in d1.__dict__, False)
-        else:
-            eq_("aplusb" in d1.__dict__, True)
-        eq_(d1.aplusb, "hello so long")
+            d1.b = "so long"
+            sess.flush()
+            sess.expire_all()
+            eq_(d1.b, "so long")
+            if expect_deferred_load:
+                eq_("aplusb" in d1.__dict__, False)
+            else:
+                eq_("aplusb" in d1.__dict__, True)
+            eq_(d1.aplusb, "hello so long")
 
 
 class OneToManyTest(_fixtures.FixtureTest):
@@ -1506,21 +1527,22 @@ class OneToManyTest(_fixtures.FixtureTest):
         a2 = Address(email_address="lala@test.org")
         u.addresses.append(a2)
 
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
 
-        user_rows = users.select(users.c.id.in_([u.id])).execute().fetchall()
+        conn = session.connection()
+        user_rows = conn.execute(
+            users.select(users.c.id.in_([u.id]))
+        ).fetchall()
         eq_(list(user_rows[0]), [u.id, "one2manytester"])
 
-        address_rows = (
+        address_rows = conn.execute(
             addresses.select(
                 addresses.c.id.in_([a.id, a2.id]),
                 order_by=[addresses.c.email_address],
             )
-            .execute()
-            .fetchall()
-        )
+        ).fetchall()
         eq_(list(address_rows[0]), [a2.id, u.id, "lala@test.org"])
         eq_(list(address_rows[1]), [a.id, u.id, "one2many@test.org"])
 
@@ -1531,9 +1553,9 @@ class OneToManyTest(_fixtures.FixtureTest):
 
         session.flush()
 
-        address_rows = (
-            addresses.select(addresses.c.id == addressid).execute().fetchall()
-        )
+        address_rows = conn.execute(
+            addresses.select(addresses.c.id == addressid)
+        ).fetchall()
         eq_(list(address_rows[0]), [addressid, userid, "somethingnew@foo.com"])
         self.assert_(u.id == userid and a2.id == addressid)
 
@@ -1569,7 +1591,7 @@ class OneToManyTest(_fixtures.FixtureTest):
 
         a3 = Address(email_address="emailaddress3")
 
-        session = create_session()
+        session = fixture_session()
         session.add_all((u1, u2, a3))
         session.flush()
 
@@ -1631,7 +1653,7 @@ class OneToManyTest(_fixtures.FixtureTest):
         a = Address(email_address="address1")
         u1.addresses.append(a)
 
-        session = create_session()
+        session = fixture_session()
         session.add_all((u1, u2))
         session.flush()
 
@@ -1668,7 +1690,7 @@ class OneToManyTest(_fixtures.FixtureTest):
         a = Address(email_address="address1")
         u1.addresses.append(a)
 
-        session = create_session()
+        session = fixture_session()
         session.add_all((u1, u2))
         session.flush()
 
@@ -1703,7 +1725,7 @@ class OneToManyTest(_fixtures.FixtureTest):
         a = Address(email_address="myonlyaddress@foo.com")
         u.address = a
 
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
 
@@ -1738,7 +1760,7 @@ class OneToManyTest(_fixtures.FixtureTest):
         u = User(name="one2onetester")
         u.address = Address(email_address="myonlyaddress@foo.com")
 
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
 
@@ -1768,7 +1790,7 @@ class OneToManyTest(_fixtures.FixtureTest):
         u = User(name="test")
         Address(email_address="testaddress", user=u)
 
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
         session.delete(u)
@@ -1812,7 +1834,7 @@ class OneToManyTest(_fixtures.FixtureTest):
         u.boston_addresses.append(a)
         u.newyork_addresses.append(b)
 
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
 
@@ -1829,40 +1851,42 @@ class SaveTest(_fixtures.FixtureTest):
         u = User(name="savetester")
         u2 = User(name="savetester2")
 
-        session = create_session()
-        session.add_all((u, u2))
-        session.flush()
+        with fixture_session() as session:
+            session.add_all((u, u2))
+            session.flush()
 
-        # assert the first one retrieves the same from the identity map
-        nu = session.query(m).get(u.id)
-        assert u is nu
+            # assert the first one retrieves the same from the identity map
+            nu = session.query(m).get(u.id)
+            assert u is nu
 
-        # clear out the identity map, so next get forces a SELECT
-        session.expunge_all()
+            # clear out the identity map, so next get forces a SELECT
+            session.expunge_all()
 
-        # check it again, identity should be different but ids the same
-        nu = session.query(m).get(u.id)
-        assert u is not nu and u.id == nu.id and nu.name == "savetester"
+            # check it again, identity should be different but ids the same
+            nu = session.query(m).get(u.id)
+            assert u is not nu and u.id == nu.id and nu.name == "savetester"
+
+            session.commit()
 
         # change first users name and save
-        session = create_session()
-        session.add(u)
-        u.name = "modifiedname"
-        assert u in session.dirty
-        session.flush()
+        with fixture_session() as session:
+            session.add(u)
+            u.name = "modifiedname"
+            assert u in session.dirty
+            session.flush()
 
-        # select both
-        userlist = (
-            session.query(User)
-            .filter(users.c.id.in_([u.id, u2.id]))
-            .order_by(users.c.name)
-            .all()
-        )
+            # select both
+            userlist = (
+                session.query(User)
+                .filter(users.c.id.in_([u.id, u2.id]))
+                .order_by(users.c.name)
+                .all()
+            )
 
-        eq_(u.id, userlist[0].id)
-        eq_(userlist[0].name, "modifiedname")
-        eq_(u2.id, userlist[1].id)
-        eq_(userlist[1].name, "savetester2")
+            eq_(u.id, userlist[0].id)
+            eq_(userlist[0].name, "modifiedname")
+            eq_(u2.id, userlist[1].id)
+            eq_(userlist[1].name, "savetester2")
 
     def test_synonym(self):
         users = self.tables.users
@@ -1881,7 +1905,7 @@ class SaveTest(_fixtures.FixtureTest):
         u = SUser(syn_name="some name")
         eq_(u.syn_name, "User:some name:User")
 
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
         session.expunge_all()
@@ -1916,7 +1940,7 @@ class SaveTest(_fixtures.FixtureTest):
         u.addresses.append(Address(email_address="u1@e3"))
         u.addresses.append(Address(email_address="u1@e4"))
 
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
         session.expunge_all()
@@ -1951,7 +1975,7 @@ class SaveTest(_fixtures.FixtureTest):
 
         au = AddressUser(name="u", email_address="u@e")
 
-        session = create_session()
+        session = fixture_session()
         session.add(au)
         session.flush()
         session.expunge_all()
@@ -1973,7 +1997,7 @@ class SaveTest(_fixtures.FixtureTest):
 
         # don't set deferred attribute, commit session
         o = Order(id=42)
-        session = create_session(autocommit=False)
+        session = fixture_session(autocommit=False)
         session.add(o)
         session.commit()
 
@@ -2022,7 +2046,7 @@ class SaveTest(_fixtures.FixtureTest):
         mapper(User, users)
 
         u = User(name="")
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
         session.expunge_all()
@@ -2058,7 +2082,7 @@ class SaveTest(_fixtures.FixtureTest):
         )
 
         u = User(name="multitester", email="multi@test.org")
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
         session.expunge_all()
@@ -2068,26 +2092,27 @@ class SaveTest(_fixtures.FixtureTest):
         u = session.query(User).get(id_)
         assert u.name == "multitester"
 
-        user_rows = (
-            users.select(users.c.id.in_([u.foo_id])).execute().fetchall()
-        )
+        conn = session.connection()
+        user_rows = conn.execute(
+            users.select(users.c.id.in_([u.foo_id]))
+        ).fetchall()
         eq_(list(user_rows[0]), [u.foo_id, "multitester"])
-        address_rows = (
-            addresses.select(addresses.c.id.in_([u.id])).execute().fetchall()
-        )
+        address_rows = conn.execute(
+            addresses.select(addresses.c.id.in_([u.id]))
+        ).fetchall()
         eq_(list(address_rows[0]), [u.id, u.foo_id, "multi@test.org"])
 
         u.email = "lala@hey.com"
         u.name = "imnew"
         session.flush()
 
-        user_rows = (
-            users.select(users.c.id.in_([u.foo_id])).execute().fetchall()
-        )
+        user_rows = conn.execute(
+            users.select(users.c.id.in_([u.foo_id]))
+        ).fetchall()
         eq_(list(user_rows[0]), [u.foo_id, "imnew"])
-        address_rows = (
-            addresses.select(addresses.c.id.in_([u.id])).execute().fetchall()
-        )
+        address_rows = conn.execute(
+            addresses.select(addresses.c.id.in_([u.id]))
+        ).fetchall()
         eq_(list(address_rows[0]), [u.id, u.foo_id, "lala@hey.com"])
 
         session.expunge_all()
@@ -2118,7 +2143,7 @@ class SaveTest(_fixtures.FixtureTest):
         u = User(name="u1")
         u.addresses.append(Address(email_address="u1@e1"))
         u.addresses.append(Address(email_address="u1@e2"))
-        session = create_session()
+        session = fixture_session()
         session.add(u)
         session.flush()
         session.expunge_all()
@@ -2126,8 +2151,18 @@ class SaveTest(_fixtures.FixtureTest):
         u = session.query(User).get(u.id)
         session.delete(u)
         session.flush()
-        eq_(select(func.count("*")).select_from(users).scalar(), 0)
-        eq_(select(func.count("*")).select_from(addresses).scalar(), 0)
+        eq_(
+            session.connection().scalar(
+                select(func.count("*")).select_from(users)
+            ),
+            0,
+        )
+        eq_(
+            session.connection().scalar(
+                select(func.count("*")).select_from(addresses)
+            ),
+            0,
+        )
 
     def test_batch_mode(self):
         """The 'batch=False' flag on mapper()"""
@@ -2153,7 +2188,7 @@ class SaveTest(_fixtures.FixtureTest):
         u1 = User(name="user1")
         u2 = User(name="user2")
 
-        session = create_session()
+        session = fixture_session()
         session.add_all((u1, u2))
         session.flush()
 
@@ -2202,7 +2237,7 @@ class ManyToOneTest(_fixtures.FixtureTest):
             ),
         )
 
-        session = create_session()
+        session = fixture_session()
 
         data = [
             {"name": "thesub", "email_address": "bar@foo.com"},
@@ -2253,14 +2288,13 @@ class ManyToOneTest(_fixtures.FixtureTest):
             ),
         )
 
-        result = (
-            sa.select(users, addresses)
-            .where(
+        conn = session.connection()
+        result = conn.execute(
+            sa.select(users, addresses).where(
                 sa.and_(
                     users.c.id == addresses.c.user_id, addresses.c.id == a.id
                 ),
             )
-            .execute()
         )
         eq_(
             list(result.first()),
@@ -2287,7 +2321,7 @@ class ManyToOneTest(_fixtures.FixtureTest):
         u1 = User(name="user1")
         a1.user = u1
 
-        session = create_session()
+        session = fixture_session()
         session.add(a1)
         session.flush()
         session.expunge_all()
@@ -2324,7 +2358,7 @@ class ManyToOneTest(_fixtures.FixtureTest):
         u1 = User(name="user1")
         a1.user = u1
 
-        session = create_session()
+        session = fixture_session()
         session.add_all((a1, a2))
         session.flush()
         session.expunge_all()
@@ -2366,7 +2400,7 @@ class ManyToOneTest(_fixtures.FixtureTest):
         u2 = User(name="user2")
         a1.user = u1
 
-        session = create_session()
+        session = fixture_session()
         session.add_all((a1, u1, u2))
         session.flush()
         session.expunge_all()
@@ -2408,7 +2442,7 @@ class ManyToOneTest(_fixtures.FixtureTest):
         a1 = Address(email_address="e1")
         a1.user = u1
 
-        session = create_session()
+        session = fixture_session()
         session.add(u1)
         session.flush()
         session.expunge_all()
@@ -2496,7 +2530,7 @@ class ManyToManyTest(_fixtures.FixtureTest):
             },
         ]
 
-        session = create_session()
+        session = fixture_session()
 
         objects = []
         _keywords = dict([(k.name, k) for k in session.query(Keyword)])
@@ -2600,14 +2634,15 @@ class ManyToManyTest(_fixtures.FixtureTest):
         i.keywords.append(k1)
         i.keywords.append(k2)
 
-        session = create_session()
+        session = fixture_session()
         session.add(i)
         session.flush()
 
-        eq_(select(func.count("*")).select_from(item_keywords).scalar(), 2)
+        conn = session.connection()
+        eq_(conn.scalar(select(func.count("*")).select_from(item_keywords)), 2)
         i.keywords = []
         session.flush()
-        eq_(select(func.count("*")).select_from(item_keywords).scalar(), 0)
+        eq_(conn.scalar(select(func.count("*")).select_from(item_keywords)), 0)
 
     def test_scalar(self):
         """sa.dependency won't delete an m2m relationship referencing None."""
@@ -2633,7 +2668,7 @@ class ManyToManyTest(_fixtures.FixtureTest):
         )
 
         i = Item(description="x")
-        session = create_session()
+        session = fixture_session()
         session.add(i)
         session.flush()
         session.delete(i)
@@ -2671,7 +2706,7 @@ class ManyToManyTest(_fixtures.FixtureTest):
         item = Item(description="item 1")
         item.keywords.extend([k1, k2, k3])
 
-        session = create_session()
+        session = fixture_session()
         session.add(item)
         session.flush()
 
@@ -2727,7 +2762,7 @@ class ManyToManyTest(_fixtures.FixtureTest):
             ),
         )
 
-        session = create_session()
+        session = fixture_session()
 
         def fixture():
             _kw = dict([(k.name, k) for k in session.query(Keyword)])
@@ -2786,7 +2821,7 @@ class SaveTest2(_fixtures.FixtureTest):
             ),
         )
 
-        session = create_session()
+        session = fixture_session()
 
         def fixture():
             return [
@@ -2909,14 +2944,24 @@ class SaveTest3(fixtures.MappedTest):
         i.keywords.append(k1)
         i.keywords.append(k2)
 
-        session = create_session()
+        session = fixture_session()
         session.add(i)
         session.flush()
 
-        eq_(select(func.count("*")).select_from(assoc).scalar(), 2)
+        eq_(
+            session.connection().scalar(
+                select(func.count("*")).select_from(assoc)
+            ),
+            2,
+        )
         i.keywords = []
         session.flush()
-        eq_(select(func.count("*")).select_from(assoc).scalar(), 0)
+        eq_(
+            session.connection().scalar(
+                select(func.count("*")).select_from(assoc)
+            ),
+            0,
+        )
 
 
 class BooleanColTest(fixtures.MappedTest):
@@ -2941,7 +2986,7 @@ class BooleanColTest(fixtures.MappedTest):
 
         mapper(T, t1_t)
 
-        sess = create_session()
+        sess = fixture_session()
         t1 = T(value=True, name="t1")
         t2 = T(value=False, name="t2")
         t3 = T(value=True, name="t3")
@@ -3060,7 +3105,7 @@ class RowSwitchTest(fixtures.MappedTest):
         )
         mapper(T6, t6)
 
-        sess = create_session()
+        sess = fixture_session()
 
         o5 = T5(data="some t5", id=1)
         o5.t6s.append(T6(data="some t6", id=1))
@@ -3108,7 +3153,7 @@ class RowSwitchTest(fixtures.MappedTest):
         )
         mapper(T7, t7)
 
-        sess = create_session()
+        sess = fixture_session()
 
         o5 = T5(data="some t5", id=1)
         o5.t7s.append(T7(data="some t7", id=1))
@@ -3159,7 +3204,7 @@ class RowSwitchTest(fixtures.MappedTest):
         mapper(T6, t6, properties={"t5": relationship(T5)})
         mapper(T5, t5)
 
-        sess = create_session()
+        sess = fixture_session()
 
         o5 = T6(data="some t6", id=1)
         o5.t5 = T5(data="some t5", id=1)
@@ -3222,7 +3267,7 @@ class InheritingRowSwitchTest(fixtures.MappedTest):
         mapper(P, parent)
         mapper(C, child, inherits=P)
 
-        sess = create_session()
+        sess = fixture_session()
         c1 = C(pid=1, cid=1, pdata="c1", cdata="c1")
         sess.add(c1)
         sess.flush()
@@ -3253,67 +3298,6 @@ class InheritingRowSwitchTest(fixtures.MappedTest):
         )
 
 
-class TransactionTest(fixtures.MappedTest):
-    __requires__ = ("deferrable_or_no_constraints",)
-
-    @classmethod
-    def define_tables(cls, metadata):
-        Table("t1", metadata, Column("id", Integer, primary_key=True))
-
-        Table(
-            "t2",
-            metadata,
-            Column("id", Integer, primary_key=True),
-            Column(
-                "t1_id",
-                Integer,
-                ForeignKey("t1.id", deferrable=True, initially="deferred"),
-            ),
-        )
-
-    @classmethod
-    def setup_classes(cls):
-        class T1(cls.Comparable):
-            pass
-
-        class T2(cls.Comparable):
-            pass
-
-    @classmethod
-    def setup_mappers(cls):
-        T2, T1, t2, t1 = (
-            cls.classes.T2,
-            cls.classes.T1,
-            cls.tables.t2,
-            cls.tables.t1,
-        )
-
-        mapper(T1, t1)
-        mapper(T2, t2)
-
-    def test_close_transaction_on_commit_fail(self):
-        T2, t1 = self.classes.T2, self.tables.t1
-
-        session = create_session(autocommit=True)
-
-        # with a deferred constraint, this fails at COMMIT time instead
-        # of at INSERT time.
-        session.add(T2(t1_id=123))
-
-        try:
-            session.flush()
-            assert False
-        except Exception:
-            # Flush needs to rollback also when commit fails
-            assert session._legacy_transaction() is None
-
-        # todo: on 8.3 at least, the failed commit seems to close the cursor?
-        # needs investigation.  leaving in the DDL above now to help verify
-        # that the new deferrable support on FK isn't involved in this issue.
-        if testing.against("postgresql"):
-            t1.bind.engine.dispose()
-
-
 class PartialNullPKTest(fixtures.MappedTest):
     # sqlite totally fine with NULLs in pk columns.
     # no other DB is like this.
@@ -3340,7 +3324,7 @@ class PartialNullPKTest(fixtures.MappedTest):
 
     def test_key_switch(self):
         T1 = self.classes.T1
-        s = Session()
+        s = fixture_session()
         s.add(T1(col1="1", col2=None))
 
         t1 = s.query(T1).first()
@@ -3354,7 +3338,7 @@ class PartialNullPKTest(fixtures.MappedTest):
 
     def test_plain_update(self):
         T1 = self.classes.T1
-        s = Session()
+        s = fixture_session()
         s.add(T1(col1="1", col2=None))
 
         t1 = s.query(T1).first()
@@ -3368,7 +3352,7 @@ class PartialNullPKTest(fixtures.MappedTest):
 
     def test_delete(self):
         T1 = self.classes.T1
-        s = Session()
+        s = fixture_session()
         s.add(T1(col1="1", col2=None))
 
         t1 = s.query(T1).first()
@@ -3382,7 +3366,7 @@ class PartialNullPKTest(fixtures.MappedTest):
 
     def test_total_null(self):
         T1 = self.classes.T1
-        s = Session()
+        s = fixture_session()
         s.add(T1(col1=None, col2=None))
         assert_raises_message(
             orm_exc.FlushError,
@@ -3394,7 +3378,7 @@ class PartialNullPKTest(fixtures.MappedTest):
 
     def test_dont_complain_if_no_update(self):
         T1 = self.classes.T1
-        s = Session()
+        s = fixture_session()
         t = T1(col1="1", col2=None)
         s.add(t)
         s.commit()
@@ -3494,7 +3478,7 @@ class EnsurePKSortableTest(fixtures.MappedTest):
         mapper(cls.classes.T3, cls.tables.t3)
 
     def test_exception_persistent_flush_py3k(self):
-        s = Session()
+        s = fixture_session()
 
         a, b = self.classes.T2(id=self.three), self.classes.T2(id=self.four)
         s.add_all([a, b])
@@ -3520,7 +3504,7 @@ class EnsurePKSortableTest(fixtures.MappedTest):
         s.close()
 
     def test_persistent_flush_sortable(self):
-        s = Session()
+        s = fixture_session()
 
         a, b = self.classes.T1(id=self.one), self.classes.T1(id=self.two)
         s.add_all([a, b])
@@ -3531,7 +3515,7 @@ class EnsurePKSortableTest(fixtures.MappedTest):
         s.commit()
 
     def test_pep435_custom_sort_key(self):
-        s = Session()
+        s = fixture_session()
 
         a = self.classes.T3(id=self.three, value=1)
         b = self.classes.T3(id=self.four, value=2)
index 97b7b9edd0ea3907679243af44c3d968f3ba282e..4e713627c1ef1936d46068243a7b26decfb1fe16 100644 (file)
@@ -15,7 +15,6 @@ from sqlalchemy import text
 from sqlalchemy import util
 from sqlalchemy.orm import attributes
 from sqlalchemy.orm import backref
-from sqlalchemy.orm import create_session
 from sqlalchemy.orm import exc as orm_exc
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
@@ -30,6 +29,7 @@ from sqlalchemy.testing import is_
 from sqlalchemy.testing.assertsql import AllOf
 from sqlalchemy.testing.assertsql import CompiledSQL
 from sqlalchemy.testing.assertsql import Conditional
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.mock import Mock
 from sqlalchemy.testing.mock import patch
 from sqlalchemy.testing.schema import Column
@@ -73,7 +73,7 @@ class RudimentaryFlushTest(UOWTest):
 
         mapper(User, users, properties={"addresses": relationship(Address)})
         mapper(Address, addresses)
-        sess = create_session()
+        sess = fixture_session()
 
         a1, a2 = Address(email_address="a1"), Address(email_address="a2")
         u1 = User(name="u1", addresses=[a1, a2])
@@ -122,7 +122,7 @@ class RudimentaryFlushTest(UOWTest):
 
         mapper(User, users, properties={"addresses": relationship(Address)})
         mapper(Address, addresses)
-        sess = create_session()
+        sess = fixture_session()
         a1, a2 = Address(email_address="a1"), Address(email_address="a2")
         u1 = User(name="u1", addresses=[a1, a2])
         sess.add(u1)
@@ -153,7 +153,7 @@ class RudimentaryFlushTest(UOWTest):
 
         mapper(User, users, properties={"addresses": relationship(Address)})
         mapper(Address, addresses)
-        sess = create_session()
+        sess = fixture_session()
         a1, a2 = Address(email_address="a1"), Address(email_address="a2")
         u1 = User(name="u1", addresses=[a1, a2])
         sess.add(u1)
@@ -186,7 +186,7 @@ class RudimentaryFlushTest(UOWTest):
 
         mapper(User, users)
         mapper(Address, addresses, properties={"user": relationship(User)})
-        sess = create_session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         a1, a2 = (
@@ -238,7 +238,7 @@ class RudimentaryFlushTest(UOWTest):
 
         mapper(User, users)
         mapper(Address, addresses, properties={"user": relationship(User)})
-        sess = create_session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         a1, a2 = (
@@ -273,7 +273,7 @@ class RudimentaryFlushTest(UOWTest):
 
         mapper(User, users)
         mapper(Address, addresses, properties={"user": relationship(User)})
-        sess = create_session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         a1, a2 = (
@@ -318,7 +318,7 @@ class RudimentaryFlushTest(UOWTest):
             Address(email_address="c2", parent=parent),
         )
 
-        session = Session()
+        session = fixture_session()
         session.add_all([c1, c2])
         session.add(parent)
 
@@ -399,7 +399,7 @@ class RudimentaryFlushTest(UOWTest):
             Address(email_address="c2", parent=parent),
         )
 
-        session = Session()
+        session = fixture_session()
         session.add_all([c1, c2])
         session.add(parent)
 
@@ -464,7 +464,7 @@ class RudimentaryFlushTest(UOWTest):
             Address(email_address="c2", parent=parent),
         )
 
-        session = Session()
+        session = fixture_session()
         session.add_all([c1, c2])
         session.add(parent)
 
@@ -521,7 +521,7 @@ class RudimentaryFlushTest(UOWTest):
 
         mapper(User, users)
         mapper(Address, addresses, properties={"user": relationship(User)})
-        sess = create_session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         a1, a2 = (
@@ -552,7 +552,7 @@ class RudimentaryFlushTest(UOWTest):
 
         mapper(User, users)
         mapper(Address, addresses, properties={"user": relationship(User)})
-        sess = create_session()
+        sess = fixture_session()
 
         u1 = User(name="u1")
         a1, a2 = (
@@ -593,7 +593,7 @@ class RudimentaryFlushTest(UOWTest):
         mapper(User, users)
         mapper(Address, addresses, properties={"parent": relationship(User)})
 
-        sess = create_session()
+        sess = fixture_session()
 
         u1 = User(id=1, name="u1")
         a1 = Address(id=1, user_id=1, email_address="a2")
@@ -632,7 +632,7 @@ class RudimentaryFlushTest(UOWTest):
 
         mapper(Node, nodes, properties={"children": relationship(Node)})
 
-        sess = create_session()
+        sess = fixture_session()
 
         n1 = Node(id=1)
         n2 = Node(id=2, parent_id=1)
@@ -674,7 +674,7 @@ class RudimentaryFlushTest(UOWTest):
         )
         mapper(Keyword, keywords)
 
-        sess = create_session()
+        sess = fixture_session()
         k1 = Keyword(name="k1")
         i1 = Item(description="i1", keywords=[k1])
         sess.add(i1)
@@ -723,7 +723,7 @@ class RudimentaryFlushTest(UOWTest):
             addresses,
             properties={"user": relationship(User, passive_updates=True)},
         )
-        sess = create_session()
+        sess = fixture_session()
         u1 = User(name="ed")
         sess.add(u1)
         self._assert_uow_size(sess, 2)
@@ -739,35 +739,35 @@ class RudimentaryFlushTest(UOWTest):
         mapper(User, users, properties={"addresses": relationship(Address)})
         mapper(Address, addresses)
 
-        sess = create_session()
-        u1 = User(name="ed")
-        sess.add(u1)
-        self._assert_uow_size(sess, 2)
+        with fixture_session(autoflush=False) as sess:
+            u1 = User(name="ed")
+            sess.add(u1)
+            self._assert_uow_size(sess, 2)
 
-        sess.flush()
+            sess.flush()
 
-        u1.name = "jack"
+            u1.name = "jack"
 
-        self._assert_uow_size(sess, 2)
-        sess.flush()
+            self._assert_uow_size(sess, 2)
+            sess.flush()
 
-        a1 = Address(email_address="foo")
-        sess.add(a1)
-        sess.flush()
+            a1 = Address(email_address="foo")
+            sess.add(a1)
+            sess.flush()
 
-        u1.addresses.append(a1)
+            u1.addresses.append(a1)
 
-        self._assert_uow_size(sess, 6)
+            self._assert_uow_size(sess, 6)
 
-        sess.flush()
+            sess.commit()
 
-        sess = create_session()
-        u1 = sess.query(User).first()
-        u1.name = "ed"
-        self._assert_uow_size(sess, 2)
+        with fixture_session(autoflush=False) as sess:
+            u1 = sess.query(User).first()
+            u1.name = "ed"
+            self._assert_uow_size(sess, 2)
 
-        u1.addresses
-        self._assert_uow_size(sess, 6)
+            u1.addresses
+            self._assert_uow_size(sess, 6)
 
 
 class SingleCycleTest(UOWTest):
@@ -784,7 +784,7 @@ class SingleCycleTest(UOWTest):
         Node, nodes = self.classes.Node, self.tables.nodes
 
         mapper(Node, nodes, properties={"children": relationship(Node)})
-        sess = create_session()
+        sess = fixture_session()
 
         n2, n3 = Node(data="n2"), Node(data="n3")
         n1 = Node(data="n1", children=[n2, n3])
@@ -832,7 +832,7 @@ class SingleCycleTest(UOWTest):
         Node, nodes = self.classes.Node, self.tables.nodes
 
         mapper(Node, nodes, properties={"children": relationship(Node)})
-        sess = create_session()
+        sess = fixture_session()
 
         n2, n3 = Node(data="n2", children=[]), Node(data="n3", children=[])
         n1 = Node(data="n1", children=[n2, n3])
@@ -860,7 +860,7 @@ class SingleCycleTest(UOWTest):
         Node, nodes = self.classes.Node, self.tables.nodes
 
         mapper(Node, nodes, properties={"children": relationship(Node)})
-        sess = create_session()
+        sess = fixture_session()
 
         n2, n3 = Node(data="n2", children=[]), Node(data="n3", children=[])
         n1 = Node(data="n1", children=[n2, n3])
@@ -894,7 +894,7 @@ class SingleCycleTest(UOWTest):
             nodes,
             properties={"parent": relationship(Node, remote_side=nodes.c.id)},
         )
-        sess = create_session()
+        sess = fixture_session()
 
         n1 = Node(data="n1")
         n2, n3 = Node(data="n2", parent=n1), Node(data="n3", parent=n1)
@@ -946,7 +946,7 @@ class SingleCycleTest(UOWTest):
             nodes,
             properties={"parent": relationship(Node, remote_side=nodes.c.id)},
         )
-        sess = create_session()
+        sess = fixture_session()
 
         n1 = Node(data="n1")
         n2, n3 = Node(data="n2", parent=n1), Node(data="n3", parent=n1)
@@ -978,30 +978,30 @@ class SingleCycleTest(UOWTest):
             nodes,
             properties={"parent": relationship(Node, remote_side=nodes.c.id)},
         )
-        sess = create_session()
-        n1 = Node(data="n1")
-        n2 = Node(data="n2", parent=n1)
-        sess.add_all([n1, n2])
-        sess.flush()
-        sess.close()
+        with fixture_session() as sess:
+            n1 = Node(data="n1")
+            n2 = Node(data="n2", parent=n1)
+            sess.add_all([n1, n2])
+            sess.commit()
 
-        n2 = sess.query(Node).filter_by(data="n2").one()
-        n2.parent = None
-        self.assert_sql_execution(
-            testing.db,
-            sess.flush,
-            CompiledSQL(
-                "UPDATE nodes SET parent_id=:parent_id WHERE "
-                "nodes.id = :nodes_id",
-                lambda ctx: {"parent_id": None, "nodes_id": n2.id},
-            ),
-        )
+        with fixture_session() as sess:
+            n2 = sess.query(Node).filter_by(data="n2").one()
+            n2.parent = None
+            self.assert_sql_execution(
+                testing.db,
+                sess.flush,
+                CompiledSQL(
+                    "UPDATE nodes SET parent_id=:parent_id WHERE "
+                    "nodes.id = :nodes_id",
+                    lambda ctx: {"parent_id": None, "nodes_id": n2.id},
+                ),
+            )
 
     def test_cycle_rowswitch(self):
         Node, nodes = self.classes.Node, self.tables.nodes
 
         mapper(Node, nodes, properties={"children": relationship(Node)})
-        sess = create_session()
+        sess = fixture_session()
 
         n2, n3 = Node(data="n2", children=[]), Node(data="n3", children=[])
         n1 = Node(data="n1", children=[n2])
@@ -1025,7 +1025,7 @@ class SingleCycleTest(UOWTest):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
 
         n2, n3 = Node(data="n2", children=[]), Node(data="n3", children=[])
         n1 = Node(data="n1", children=[n2])
@@ -1051,7 +1051,7 @@ class SingleCycleTest(UOWTest):
                 )
             },
         )
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n1.children.append(Node(data="n11"))
         n12 = Node(data="n12")
@@ -1137,29 +1137,29 @@ class SingleCycleTest(UOWTest):
         Node, nodes = self.classes.Node, self.tables.nodes
 
         mapper(Node, nodes, properties={"children": relationship(Node)})
-        sess = create_session()
-        n1 = Node(data="ed")
-        sess.add(n1)
-        self._assert_uow_size(sess, 2)
+        with fixture_session() as sess:
+            n1 = Node(data="ed")
+            sess.add(n1)
+            self._assert_uow_size(sess, 2)
 
-        sess.flush()
+            sess.flush()
 
-        n1.data = "jack"
+            n1.data = "jack"
 
-        self._assert_uow_size(sess, 2)
-        sess.flush()
+            self._assert_uow_size(sess, 2)
+            sess.flush()
 
-        n2 = Node(data="foo")
-        sess.add(n2)
-        sess.flush()
+            n2 = Node(data="foo")
+            sess.add(n2)
+            sess.flush()
 
-        n1.children.append(n2)
+            n1.children.append(n2)
 
-        self._assert_uow_size(sess, 3)
+            self._assert_uow_size(sess, 3)
 
-        sess.flush()
+            sess.commit()
 
-        sess = create_session()
+        sess = fixture_session(autoflush=False)
         n1 = sess.query(Node).first()
         n1.data = "ed"
         self._assert_uow_size(sess, 2)
@@ -1179,7 +1179,7 @@ class SingleCycleTest(UOWTest):
         parent = Node()
         c1, c2 = Node(parent=parent), Node(parent=parent)
 
-        session = Session()
+        session = fixture_session()
         session.add_all([c1, c2])
         session.add(parent)
 
@@ -1285,7 +1285,7 @@ class SingleCyclePlusAttributeTest(
         )
         mapper(FooBar, foobars)
 
-        sess = create_session()
+        sess = fixture_session()
         n1 = Node(data="n1")
         n2 = Node(data="n2")
         n1.children.append(n2)
@@ -1355,110 +1355,111 @@ class SingleCycleM2MTest(
             },
         )
 
-        sess = create_session()
-        n1 = Node(data="n1")
-        n2 = Node(data="n2")
-        n3 = Node(data="n3")
-        n4 = Node(data="n4")
-        n5 = Node(data="n5")
+        with fixture_session(autoflush=False) as sess:
+            n1 = Node(data="n1")
+            n2 = Node(data="n2")
+            n3 = Node(data="n3")
+            n4 = Node(data="n4")
+            n5 = Node(data="n5")
 
-        n4.favorite = n3
-        n1.favorite = n5
-        n5.favorite = n2
+            n4.favorite = n3
+            n1.favorite = n5
+            n5.favorite = n2
 
-        n1.children = [n2, n3, n4]
-        n2.children = [n3, n5]
-        n3.children = [n5, n4]
+            n1.children = [n2, n3, n4]
+            n2.children = [n3, n5]
+            n3.children = [n5, n4]
 
-        sess.add_all([n1, n2, n3, n4, n5])
+            sess.add_all([n1, n2, n3, n4, n5])
 
-        # can't really assert the SQL on this easily
-        # since there's too many ways to insert the rows.
-        # so check the end result
-        sess.flush()
-        eq_(
-            sess.query(
-                node_to_nodes.c.left_node_id, node_to_nodes.c.right_node_id
-            )
-            .order_by(
-                node_to_nodes.c.left_node_id, node_to_nodes.c.right_node_id
+            # can't really assert the SQL on this easily
+            # since there's too many ways to insert the rows.
+            # so check the end result
+            sess.flush()
+            eq_(
+                sess.query(
+                    node_to_nodes.c.left_node_id, node_to_nodes.c.right_node_id
+                )
+                .order_by(
+                    node_to_nodes.c.left_node_id, node_to_nodes.c.right_node_id
+                )
+                .all(),
+                sorted(
+                    [
+                        (n1.id, n2.id),
+                        (n1.id, n3.id),
+                        (n1.id, n4.id),
+                        (n2.id, n3.id),
+                        (n2.id, n5.id),
+                        (n3.id, n5.id),
+                        (n3.id, n4.id),
+                    ]
+                ),
             )
-            .all(),
-            sorted(
-                [
-                    (n1.id, n2.id),
-                    (n1.id, n3.id),
-                    (n1.id, n4.id),
-                    (n2.id, n3.id),
-                    (n2.id, n5.id),
-                    (n3.id, n5.id),
-                    (n3.id, n4.id),
-                ]
-            ),
-        )
 
-        sess.delete(n1)
+            sess.delete(n1)
 
-        self.assert_sql_execution(
-            testing.db,
-            sess.flush,
-            # this is n1.parents firing off, as it should, since
-            # passive_deletes is False for n1.parents
-            CompiledSQL(
-                "SELECT nodes.id AS nodes_id, nodes.data AS nodes_data, "
-                "nodes.favorite_node_id AS nodes_favorite_node_id FROM "
-                "nodes, node_to_nodes WHERE :param_1 = "
-                "node_to_nodes.right_node_id AND nodes.id = "
-                "node_to_nodes.left_node_id",
-                lambda ctx: {"param_1": n1.id},
-            ),
-            CompiledSQL(
-                "DELETE FROM node_to_nodes WHERE "
-                "node_to_nodes.left_node_id = :left_node_id AND "
-                "node_to_nodes.right_node_id = :right_node_id",
-                lambda ctx: [
-                    {"right_node_id": n2.id, "left_node_id": n1.id},
-                    {"right_node_id": n3.id, "left_node_id": n1.id},
-                    {"right_node_id": n4.id, "left_node_id": n1.id},
-                ],
-            ),
-            CompiledSQL(
-                "DELETE FROM nodes WHERE nodes.id = :id",
-                lambda ctx: {"id": n1.id},
-            ),
-        )
+            self.assert_sql_execution(
+                testing.db,
+                sess.flush,
+                # this is n1.parents firing off, as it should, since
+                # passive_deletes is False for n1.parents
+                CompiledSQL(
+                    "SELECT nodes.id AS nodes_id, nodes.data AS nodes_data, "
+                    "nodes.favorite_node_id AS nodes_favorite_node_id FROM "
+                    "nodes, node_to_nodes WHERE :param_1 = "
+                    "node_to_nodes.right_node_id AND nodes.id = "
+                    "node_to_nodes.left_node_id",
+                    lambda ctx: {"param_1": n1.id},
+                ),
+                CompiledSQL(
+                    "DELETE FROM node_to_nodes WHERE "
+                    "node_to_nodes.left_node_id = :left_node_id AND "
+                    "node_to_nodes.right_node_id = :right_node_id",
+                    lambda ctx: [
+                        {"right_node_id": n2.id, "left_node_id": n1.id},
+                        {"right_node_id": n3.id, "left_node_id": n1.id},
+                        {"right_node_id": n4.id, "left_node_id": n1.id},
+                    ],
+                ),
+                CompiledSQL(
+                    "DELETE FROM nodes WHERE nodes.id = :id",
+                    lambda ctx: {"id": n1.id},
+                ),
+            )
 
-        for n in [n2, n3, n4, n5]:
-            sess.delete(n)
+            for n in [n2, n3, n4, n5]:
+                sess.delete(n)
 
-        # load these collections
-        # outside of the flush() below
-        n4.children
-        n5.children
+            # load these collections
+            # outside of the flush() below
+            n4.children
+            n5.children
 
-        self.assert_sql_execution(
-            testing.db,
-            sess.flush,
-            CompiledSQL(
-                "DELETE FROM node_to_nodes WHERE node_to_nodes.left_node_id "
-                "= :left_node_id AND node_to_nodes.right_node_id = "
-                ":right_node_id",
-                lambda ctx: [
-                    {"right_node_id": n5.id, "left_node_id": n3.id},
-                    {"right_node_id": n4.id, "left_node_id": n3.id},
-                    {"right_node_id": n3.id, "left_node_id": n2.id},
-                    {"right_node_id": n5.id, "left_node_id": n2.id},
-                ],
-            ),
-            CompiledSQL(
-                "DELETE FROM nodes WHERE nodes.id = :id",
-                lambda ctx: [{"id": n4.id}, {"id": n5.id}],
-            ),
-            CompiledSQL(
-                "DELETE FROM nodes WHERE nodes.id = :id",
-                lambda ctx: [{"id": n2.id}, {"id": n3.id}],
-            ),
-        )
+            self.assert_sql_execution(
+                testing.db,
+                sess.flush,
+                CompiledSQL(
+                    "DELETE FROM node_to_nodes "
+                    "WHERE node_to_nodes.left_node_id "
+                    "= :left_node_id AND node_to_nodes.right_node_id = "
+                    ":right_node_id",
+                    lambda ctx: [
+                        {"right_node_id": n5.id, "left_node_id": n3.id},
+                        {"right_node_id": n4.id, "left_node_id": n3.id},
+                        {"right_node_id": n3.id, "left_node_id": n2.id},
+                        {"right_node_id": n5.id, "left_node_id": n2.id},
+                    ],
+                ),
+                CompiledSQL(
+                    "DELETE FROM nodes WHERE nodes.id = :id",
+                    lambda ctx: [{"id": n4.id}, {"id": n5.id}],
+                ),
+                CompiledSQL(
+                    "DELETE FROM nodes WHERE nodes.id = :id",
+                    lambda ctx: [{"id": n2.id}, {"id": n3.id}],
+                ),
+            )
 
 
 class RowswitchAccountingTest(fixtures.MappedTest):
@@ -1504,7 +1505,7 @@ class RowswitchAccountingTest(fixtures.MappedTest):
     def test_switch_on_update(self):
         Parent, Child = self._fixture()
 
-        sess = create_session(autocommit=False)
+        sess = fixture_session(autocommit=False)
 
         p1 = Parent(id=1, child=Child())
         sess.add(p1)
@@ -1535,7 +1536,7 @@ class RowswitchAccountingTest(fixtures.MappedTest):
     def test_switch_on_delete(self):
         Parent, Child = self._fixture()
 
-        sess = Session()
+        sess = fixture_session()
         p1 = Parent(id=1, data=2, child=None)
         sess.add(p1)
         sess.flush()
@@ -1603,7 +1604,7 @@ class RowswitchM2OTest(fixtures.MappedTest):
         # change that previously showed up as nothing.
 
         A, B, C = self._fixture()
-        sess = Session()
+        sess = fixture_session()
 
         sess.add(A(id=1, bs=[B(id=1, c=C(id=1))]))
         sess.commit()
@@ -1615,7 +1616,7 @@ class RowswitchM2OTest(fixtures.MappedTest):
 
     def test_set_none_w_get_replaces_m2o(self):
         A, B, C = self._fixture()
-        sess = Session()
+        sess = fixture_session()
 
         sess.add(A(id=1, bs=[B(id=1, c=C(id=1))]))
         sess.commit()
@@ -1634,7 +1635,7 @@ class RowswitchM2OTest(fixtures.MappedTest):
         # shows, we can't rely on this - the get of None will blow
         # away the history.
         A, B, C = self._fixture()
-        sess = Session()
+        sess = fixture_session()
 
         sess.add(A(id=1, bs=[B(id=1, data="somedata")]))
         sess.commit()
@@ -1646,7 +1647,7 @@ class RowswitchM2OTest(fixtures.MappedTest):
 
     def test_set_none_w_get_replaces_scalar(self):
         A, B, C = self._fixture()
-        sess = Session()
+        sess = fixture_session()
 
         sess.add(A(id=1, bs=[B(id=1, data="somedata")]))
         sess.commit()
@@ -1706,7 +1707,7 @@ class BasicStaleChecksTest(fixtures.MappedTest):
     @testing.requires.sane_rowcount
     def test_update_single_missing(self):
         Parent, Child = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         p1 = Parent(id=1, data=2)
         sess.add(p1)
         sess.flush()
@@ -1737,7 +1738,7 @@ class BasicStaleChecksTest(fixtures.MappedTest):
                 "sqlalchemy.engine.cursor.CursorResult.rowcount", rowcount
             ):
                 Parent, Child = self._fixture()
-                sess = Session()
+                sess = fixture_session()
                 p1 = Parent(id=1, data=2)
                 sess.add(p1)
                 sess.flush()
@@ -1767,7 +1768,7 @@ class BasicStaleChecksTest(fixtures.MappedTest):
                 "sqlalchemy.engine.cursor.CursorResult.rowcount", rowcount
             ):
                 Parent, Child = self._fixture()
-                sess = Session()
+                sess = fixture_session()
                 p1 = Parent(id=1, data=2)
                 p2 = Parent(id=2, data=3)
                 sess.add_all([p1, p2])
@@ -1797,7 +1798,7 @@ class BasicStaleChecksTest(fixtures.MappedTest):
                 "sqlalchemy.engine.cursor.CursorResult.rowcount", rowcount
             ):
                 Parent, Child = self._fixture()
-                sess = Session()
+                sess = fixture_session()
                 p1 = Parent(id=1, data=1)
                 sess.add(p1)
                 sess.flush()
@@ -1815,7 +1816,7 @@ class BasicStaleChecksTest(fixtures.MappedTest):
     @testing.requires.sane_rowcount
     def test_delete_twice(self):
         Parent, Child = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         p1 = Parent(id=1, data=2, child=None)
         sess.add(p1)
         sess.commit()
@@ -1835,7 +1836,7 @@ class BasicStaleChecksTest(fixtures.MappedTest):
     @testing.requires.sane_multi_rowcount
     def test_delete_multi_missing_warning(self):
         Parent, Child = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         p1 = Parent(id=1, data=2, child=None)
         p2 = Parent(id=2, data=3, child=None)
         sess.add_all([p1, p2])
@@ -1856,7 +1857,7 @@ class BasicStaleChecksTest(fixtures.MappedTest):
         # raise occurs for single row UPDATE that misses even if
         # supports_sane_multi_rowcount is False
         Parent, Child = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         p1 = Parent(id=1, data=2, child=None)
         sess.add(p1)
         sess.flush()
@@ -1879,7 +1880,7 @@ class BasicStaleChecksTest(fixtures.MappedTest):
         # supports_sane_multi_rowcount is False, even if rowcount is still
         # correct
         Parent, Child = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         p1 = Parent(id=1, data=2, child=None)
         p2 = Parent(id=2, data=3, child=None)
         sess.add_all([p1, p2])
@@ -1897,7 +1898,7 @@ class BasicStaleChecksTest(fixtures.MappedTest):
 
     def test_delete_single_broken_multi_rowcount_still_warns(self):
         Parent, Child = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         p1 = Parent(id=1, data=2, child=None)
         sess.add(p1)
         sess.flush()
@@ -1919,7 +1920,7 @@ class BasicStaleChecksTest(fixtures.MappedTest):
 
     def test_delete_multi_broken_multi_rowcount_doesnt_warn(self):
         Parent, Child = self._fixture()
-        sess = Session()
+        sess = fixture_session()
         p1 = Parent(id=1, data=2, child=None)
         p2 = Parent(id=2, data=3, child=None)
         sess.add_all([p1, p2])
@@ -1941,7 +1942,7 @@ class BasicStaleChecksTest(fixtures.MappedTest):
 
     def test_delete_multi_missing_allow(self):
         Parent, Child = self._fixture(confirm_deleted_rows=False)
-        sess = Session()
+        sess = fixture_session()
         p1 = Parent(id=1, data=2, child=None)
         p2 = Parent(id=2, data=3, child=None)
         sess.add_all([p1, p2])
@@ -1979,7 +1980,7 @@ class BatchInsertsTest(fixtures.MappedTest, testing.AssertsExecutionResults):
             pass
 
         mapper(T, t)
-        sess = Session()
+        sess = fixture_session()
         sess.add_all(
             [
                 T(data="t1"),
@@ -2078,7 +2079,7 @@ class LoadersUsingCommittedTest(UOWTest):
             },
         )
         mapper(Address, addresses)
-        return create_session(autocommit=False)
+        return fixture_session(expire_on_commit=False)
 
     def test_before_update_m2o(self):
         """Expect normal many to one attribute load behavior
@@ -2225,7 +2226,7 @@ class NoAttrEventInFlushTest(fixtures.MappedTest):
         event.listen(Thing.prefetch_val, "set", mock.prefetch_val)
         event.listen(Thing.returning_val, "set", mock.prefetch_val)
         t1 = Thing()
-        s = Session()
+        s = fixture_session()
         s.add(t1)
         s.flush()
 
@@ -2275,7 +2276,7 @@ class EagerDefaultsTest(fixtures.MappedTest):
 
     def test_insert_defaults_present(self):
         Thing = self.classes.Thing
-        s = Session()
+        s = fixture_session()
 
         t1, t2 = (Thing(id=1, foo=5), Thing(id=2, foo=10))
 
@@ -2298,7 +2299,7 @@ class EagerDefaultsTest(fixtures.MappedTest):
 
     def test_insert_defaults_present_as_expr(self):
         Thing = self.classes.Thing
-        s = Session()
+        s = fixture_session()
 
         t1, t2 = (
             Thing(id=1, foo=text("2 + 5")),
@@ -2357,7 +2358,7 @@ class EagerDefaultsTest(fixtures.MappedTest):
 
     def test_insert_defaults_nonpresent(self):
         Thing = self.classes.Thing
-        s = Session()
+        s = fixture_session()
 
         t1, t2 = (Thing(id=1), Thing(id=2))
 
@@ -2416,7 +2417,7 @@ class EagerDefaultsTest(fixtures.MappedTest):
 
     def test_update_defaults_nonpresent(self):
         Thing2 = self.classes.Thing2
-        s = Session()
+        s = fixture_session()
 
         t1, t2, t3, t4 = (
             Thing2(id=1, foo=1, bar=2),
@@ -2511,7 +2512,7 @@ class EagerDefaultsTest(fixtures.MappedTest):
 
     def test_update_defaults_present_as_expr(self):
         Thing2 = self.classes.Thing2
-        s = Session()
+        s = fixture_session()
 
         t1, t2, t3, t4 = (
             Thing2(id=1, foo=1, bar=2),
@@ -2612,7 +2613,7 @@ class EagerDefaultsTest(fixtures.MappedTest):
 
     def test_insert_defaults_bulk_insert(self):
         Thing = self.classes.Thing
-        s = Session()
+        s = fixture_session()
 
         mappings = [{"id": 1}, {"id": 2}]
 
@@ -2626,7 +2627,7 @@ class EagerDefaultsTest(fixtures.MappedTest):
 
     def test_update_defaults_bulk_update(self):
         Thing2 = self.classes.Thing2
-        s = Session()
+        s = fixture_session()
 
         t1, t2, t3, t4 = (
             Thing2(id=1, foo=1, bar=2),
@@ -2665,7 +2666,7 @@ class EagerDefaultsTest(fixtures.MappedTest):
 
     def test_update_defaults_present(self):
         Thing2 = self.classes.Thing2
-        s = Session()
+        s = fixture_session()
 
         t1, t2 = (Thing2(id=1, foo=1, bar=2), Thing2(id=2, foo=2, bar=3))
 
@@ -2687,7 +2688,7 @@ class EagerDefaultsTest(fixtures.MappedTest):
 
     def test_insert_dont_fetch_nondefaults(self):
         Thing2 = self.classes.Thing2
-        s = Session()
+        s = fixture_session()
 
         t1 = Thing2(id=1, bar=2)
 
@@ -2704,7 +2705,7 @@ class EagerDefaultsTest(fixtures.MappedTest):
 
     def test_update_dont_fetch_nondefaults(self):
         Thing2 = self.classes.Thing2
-        s = Session()
+        s = fixture_session()
 
         t1 = Thing2(id=1, bar=2)
 
@@ -2783,7 +2784,7 @@ class TypeWoBoolTest(fixtures.MappedTest, testing.AssertsExecutionResults):
     def test_update_against_none(self):
         Thing = self.classes.Thing
 
-        s = Session()
+        s = fixture_session()
         s.add(Thing(value=self.MyWidget("foo")))
         s.commit()
 
@@ -2796,7 +2797,7 @@ class TypeWoBoolTest(fixtures.MappedTest, testing.AssertsExecutionResults):
     def test_update_against_something_else(self):
         Thing = self.classes.Thing
 
-        s = Session()
+        s = fixture_session()
         s.add(Thing(value=self.MyWidget("foo")))
         s.commit()
 
@@ -2809,7 +2810,7 @@ class TypeWoBoolTest(fixtures.MappedTest, testing.AssertsExecutionResults):
     def test_no_update_no_change(self):
         Thing = self.classes.Thing
 
-        s = Session()
+        s = fixture_session()
         s.add(Thing(value=self.MyWidget("foo"), unrelated="unrelated"))
         s.commit()
 
@@ -2923,7 +2924,7 @@ class NullEvaluatingTest(fixtures.MappedTest, testing.AssertsExecutionResults):
 
     def _assert_col(self, name, value):
         Thing, AltNameThing = self.classes.Thing, self.classes.AltNameThing
-        s = Session()
+        s = fixture_session()
 
         col = getattr(Thing, name)
         obj = s.query(col).filter(col == value).one()
@@ -2936,7 +2937,7 @@ class NullEvaluatingTest(fixtures.MappedTest, testing.AssertsExecutionResults):
     def _test_insert(self, attr, expected):
         Thing, AltNameThing = self.classes.Thing, self.classes.AltNameThing
 
-        s = Session()
+        s = fixture_session()
         t1 = Thing(**{attr: None})
         s.add(t1)
 
@@ -2950,7 +2951,7 @@ class NullEvaluatingTest(fixtures.MappedTest, testing.AssertsExecutionResults):
     def _test_bulk_insert(self, attr, expected):
         Thing, AltNameThing = self.classes.Thing, self.classes.AltNameThing
 
-        s = Session()
+        s = fixture_session()
         s.bulk_insert_mappings(Thing, [{attr: None}])
         s.bulk_insert_mappings(AltNameThing, [{"_foo_" + attr: None}])
         s.commit()
@@ -2960,7 +2961,7 @@ class NullEvaluatingTest(fixtures.MappedTest, testing.AssertsExecutionResults):
     def _test_insert_novalue(self, attr, expected):
         Thing, AltNameThing = self.classes.Thing, self.classes.AltNameThing
 
-        s = Session()
+        s = fixture_session()
         t1 = Thing()
         s.add(t1)
 
@@ -2974,7 +2975,7 @@ class NullEvaluatingTest(fixtures.MappedTest, testing.AssertsExecutionResults):
     def _test_bulk_insert_novalue(self, attr, expected):
         Thing, AltNameThing = self.classes.Thing, self.classes.AltNameThing
 
-        s = Session()
+        s = fixture_session()
         s.bulk_insert_mappings(Thing, [{}])
         s.bulk_insert_mappings(AltNameThing, [{}])
         s.commit()
@@ -3059,7 +3060,7 @@ class NullEvaluatingTest(fixtures.MappedTest, testing.AssertsExecutionResults):
     def test_json_none_as_null(self):
         JSONThing = self.classes.JSONThing
 
-        s = Session()
+        s = fixture_session()
         f1 = JSONThing(data=None, data_null=None)
         s.add(f1)
         s.commit()
index 0b0c9cea76fd18f29a244be162c1c1c2a01a1be5..e350ee018c989aa1e129fcbc69ed814c3bbb6b99 100644 (file)
@@ -29,6 +29,7 @@ from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import in_
 from sqlalchemy.testing import not_in
 from sqlalchemy.testing.assertsql import CompiledSQL
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 
@@ -96,7 +97,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
 
     def test_illegal_eval(self):
         User = self.classes.User
-        s = Session()
+        s = fixture_session()
         assert_raises_message(
             exc.ArgumentError,
             "Valid strategies for session synchronization "
@@ -110,7 +111,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
         User = self.classes.User
         Address = self.classes.Address
 
-        s = Session()
+        s = fixture_session()
 
         for q, mname in (
             (s.query(User).limit(2), r"limit\(\)"),
@@ -197,7 +198,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
             def __clause_element__(self):
                 return User.name.__clause_element__()
 
-        s = Session()
+        s = fixture_session()
         jill = s.query(User).get(3)
         s.query(User).update(
             {Thing(): "moonbeam"}, synchronize_session="evaluate"
@@ -211,7 +212,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
             def __clause_element__(self):
                 return 5
 
-        s = Session()
+        s = fixture_session()
 
         assert_raises_message(
             exc.ArgumentError,
@@ -224,7 +225,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_evaluate_unmapped_col(self):
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
         jill = s.query(User).get(3)
         s.query(User).update(
             {column("name"): "moonbeam"}, synchronize_session="evaluate"
@@ -239,7 +240,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
 
         mapper(Foo, self.tables.users, properties={"uname": synonym("name")})
 
-        s = Session()
+        s = fixture_session()
         jill = s.query(Foo).get(3)
         s.query(Foo).update(
             {"uname": "moonbeam"}, synchronize_session="evaluate"
@@ -252,7 +253,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
 
         mapper(Foo, self.tables.users, properties={"uname": synonym("name")})
 
-        s = Session()
+        s = fixture_session()
         jill = s.query(Foo).get(3)
         s.query(Foo).update(
             {Foo.uname: "moonbeam"}, synchronize_session="evaluate"
@@ -269,7 +270,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
             properties={"uname": synonym("name"), "ufoo": synonym("uname")},
         )
 
-        s = Session()
+        s = fixture_session()
         jill = s.query(Foo).get(3)
         s.query(Foo).update(
             {Foo.ufoo: "moonbeam"}, synchronize_session="evaluate"
@@ -287,7 +288,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     ):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
 
@@ -392,7 +393,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_fetch_dont_refresh_expired_objects(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
 
@@ -455,7 +456,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_delete(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
         sess.query(User).filter(
@@ -470,14 +471,14 @@ class UpdateDeleteTest(fixtures.MappedTest):
         User = self.classes.User
         users = self.tables.users
 
-        sess = Session()
+        sess = fixture_session()
         sess.query(users).delete(synchronize_session=False)
         eq_(sess.query(User).count(), 0)
 
     def test_delete_with_bindparams(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
         sess.query(User).filter(text("name = :name")).params(
@@ -490,7 +491,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_delete_rollback(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
         sess.query(User).filter(
             or_(User.name == "john", User.name == "jill")
@@ -502,7 +503,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_delete_rollback_with_fetch(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
         sess.query(User).filter(
             or_(User.name == "john", User.name == "jill")
@@ -514,7 +515,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_delete_without_session_sync(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
         sess.query(User).filter(
@@ -528,7 +529,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_delete_with_fetch_strategy(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
         sess.query(User).filter(
@@ -543,7 +544,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_delete_invalid_evaluation(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
 
@@ -566,7 +567,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_update(self):
         User, users = self.classes.User, self.tables.users
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
         sess.query(User).filter(User.age > 29).update(
@@ -779,7 +780,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_update_against_table_col(self):
         User, users = self.classes.User, self.tables.users
 
-        sess = Session()
+        sess = fixture_session()
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
         eq_([john.age, jack.age, jill.age, jane.age], [25, 47, 29, 37])
         sess.query(User).filter(User.age > 27).update(
@@ -790,7 +791,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_update_against_metadata(self):
         User, users = self.classes.User, self.tables.users
 
-        sess = Session()
+        sess = fixture_session()
 
         sess.query(users).update(
             {users.c.age_int: 29}, synchronize_session=False
@@ -803,7 +804,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_update_with_bindparams(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
 
@@ -820,7 +821,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_update_fetch_returning(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
 
@@ -905,7 +906,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_delete_fetch_returning(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
 
@@ -994,7 +995,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
 
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         assert_raises(
             exc.ArgumentError,
             lambda: sess.query(User.name == "filter").update(
@@ -1005,7 +1006,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_update_without_load(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         sess.query(User).filter(User.id == 3).update(
             {"age": 44}, synchronize_session="fetch"
@@ -1018,7 +1019,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_update_changes_resets_dirty(self):
         User = self.classes.User
 
-        sess = Session(autoflush=False)
+        sess = fixture_session(autoflush=False)
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
 
@@ -1047,7 +1048,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_update_changes_with_autoflush(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
 
@@ -1073,7 +1074,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_update_with_expire_strategy(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
         sess.query(User).filter(User.age > 29).update(
@@ -1090,7 +1091,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_update_returns_rowcount(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         rowcount = (
             sess.query(User)
@@ -1110,7 +1111,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_delete_returns_rowcount(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         rowcount = (
             sess.query(User)
@@ -1122,7 +1123,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_update_all(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
         sess.query(User).update({"age": 42}, synchronize_session="evaluate")
@@ -1136,7 +1137,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_delete_all(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
         sess.query(User).delete(synchronize_session="evaluate")
@@ -1149,7 +1150,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_autoflush_before_evaluate_update(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         john = sess.query(User).filter_by(name="john").one()
         john.name = "j2"
 
@@ -1161,7 +1162,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_autoflush_before_fetch_update(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         john = sess.query(User).filter_by(name="john").one()
         john.name = "j2"
 
@@ -1173,7 +1174,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_autoflush_before_evaluate_delete(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         john = sess.query(User).filter_by(name="john").one()
         john.name = "j2"
 
@@ -1185,7 +1186,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_autoflush_before_fetch_delete(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         john = sess.query(User).filter_by(name="john").one()
         john.name = "j2"
 
@@ -1197,7 +1198,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_evaluate_before_update(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         john = sess.query(User).filter_by(name="john").one()
         sess.expire(john, ["age"])
 
@@ -1213,7 +1214,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_fetch_before_update(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         john = sess.query(User).filter_by(name="john").one()
         sess.expire(john, ["age"])
 
@@ -1226,7 +1227,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_evaluate_before_delete(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         john = sess.query(User).filter_by(name="john").one()
         sess.expire(john, ["age"])
 
@@ -1238,7 +1239,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
     def test_fetch_before_delete(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
         john = sess.query(User).filter_by(name="john").one()
         sess.expire(john, ["age"])
 
@@ -1249,7 +1250,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
 
     def test_update_unordered_dict(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
 
         # Do an update using unordered dict and check that the parameters used
         # are ordered in table order
@@ -1266,7 +1267,7 @@ class UpdateDeleteTest(fixtures.MappedTest):
 
     def test_update_preserve_parameter_order_query(self):
         User = self.classes.User
-        session = Session()
+        session = fixture_session()
 
         # Do update using a tuple and check that order is preserved
 
@@ -1444,7 +1445,7 @@ class UpdateDeleteIgnoresLoadersTest(fixtures.MappedTest):
     def test_update_with_eager_relationships(self):
         Document = self.classes.Document
 
-        sess = Session()
+        sess = fixture_session()
 
         foo, bar, baz = sess.query(Document).order_by(Document.id).all()
         sess.query(Document).filter(Document.user_id == 1).update(
@@ -1461,7 +1462,7 @@ class UpdateDeleteIgnoresLoadersTest(fixtures.MappedTest):
     def test_update_with_explicit_joinedload(self):
         User = self.classes.User
 
-        sess = Session()
+        sess = fixture_session()
 
         john, jack, jill, jane = sess.query(User).order_by(User.id).all()
         sess.query(User).options(joinedload(User.documents)).filter(
@@ -1477,7 +1478,7 @@ class UpdateDeleteIgnoresLoadersTest(fixtures.MappedTest):
     def test_delete_with_eager_relationships(self):
         Document = self.classes.Document
 
-        sess = Session()
+        sess = fixture_session()
 
         sess.query(Document).filter(Document.user_id == 1).delete(
             synchronize_session=False
@@ -1556,7 +1557,7 @@ class UpdateDeleteFromTest(fixtures.MappedTest):
     @testing.requires.update_from
     def test_update_from_joined_subq_test(self):
         Document = self.classes.Document
-        s = Session()
+        s = fixture_session()
 
         subq = (
             s.query(func.max(Document.title).label("title"))
@@ -1585,7 +1586,7 @@ class UpdateDeleteFromTest(fixtures.MappedTest):
     @testing.requires.delete_from
     def test_delete_from_joined_subq_test(self):
         Document = self.classes.Document
-        s = Session()
+        s = fixture_session()
 
         subq = (
             s.query(func.max(Document.title).label("title"))
@@ -1606,7 +1607,7 @@ class UpdateDeleteFromTest(fixtures.MappedTest):
         User = self.classes.User
         Document = self.classes.Document
 
-        s = Session()
+        s = fixture_session()
 
         q = s.query(User).filter(User.id == Document.user_id)
         assert_raises_message(
@@ -1619,7 +1620,7 @@ class UpdateDeleteFromTest(fixtures.MappedTest):
     @testing.requires.update_where_target_in_subquery
     def test_update_using_in(self):
         Document = self.classes.Document
-        s = Session()
+        s = fixture_session()
 
         subq = (
             s.query(func.max(Document.title).label("title"))
@@ -1649,7 +1650,7 @@ class UpdateDeleteFromTest(fixtures.MappedTest):
     @testing.requires.standalone_binds
     def test_update_using_case(self):
         Document = self.classes.Document
-        s = Session()
+        s = fixture_session()
 
         subq = (
             s.query(func.max(Document.title).label("title"))
@@ -1684,7 +1685,7 @@ class UpdateDeleteFromTest(fixtures.MappedTest):
         Document = self.classes.Document
         User = self.classes.User
 
-        s = Session()
+        s = fixture_session()
 
         s.query(Document).filter(User.id == Document.user_id).filter(
             User.id == 2
@@ -1735,7 +1736,7 @@ class ExpressionUpdateTest(fixtures.MappedTest):
         Data = self.classes.Data
 
         d1 = Data()
-        sess = Session()
+        sess = fixture_session()
         sess.add(d1)
         sess.commit()
         eq_(d1.cnt, 0)
@@ -1753,7 +1754,7 @@ class ExpressionUpdateTest(fixtures.MappedTest):
 
     def test_update_args(self):
         Data = self.classes.Data
-        session = Session()
+        session = fixture_session()
         update_args = {"mysql_limit": 1}
 
         m1 = testing.mock.Mock()
@@ -1937,7 +1938,7 @@ class SingleTablePolymorphicTest(fixtures.DeclarativeMappedTest):
     def test_update(self, fetchstyle, future):
         Staff, Sales, Support = self.classes("Staff", "Sales", "Support")
 
-        sess = Session()
+        sess = fixture_session()
 
         en1, en2 = (
             sess.execute(select(Sales).order_by(Sales.sales_stats))
@@ -1987,7 +1988,7 @@ class SingleTablePolymorphicTest(fixtures.DeclarativeMappedTest):
     def test_delete(self, fetchstyle, future):
         Staff, Sales, Support = self.classes("Staff", "Sales", "Support")
 
-        sess = Session()
+        sess = fixture_session()
         en1, en2 = sess.query(Sales).order_by(Sales.sales_stats).all()
         mn1, mn2 = sess.query(Support).order_by(Support.support_stats).all()
 
index d3082accdaf8b3459a1ed2154f3e52070e651694..260cae37bd40dd57e2cbbb5f7cefa82d18b0f58c 100644 (file)
@@ -8,9 +8,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 create_session
 from sqlalchemy.orm import mapper
-from sqlalchemy.orm import Session
 from sqlalchemy.orm import synonym
 from sqlalchemy.orm import util as orm_util
 from sqlalchemy.orm import with_polymorphic
@@ -22,6 +20,7 @@ from sqlalchemy.testing import eq_
 from sqlalchemy.testing import expect_warnings
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.util import compat
 from test.orm import _fixtures
 from .inheritance import _poly_fixtures
@@ -177,7 +176,7 @@ class AliasedClassTest(fixtures.TestBase, AssertsCompiledSQL):
 
         self._fixture(Point)
         alias = aliased(Point)
-        sess = Session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(alias).filter(alias.left_of(Point)),
@@ -203,7 +202,7 @@ class AliasedClassTest(fixtures.TestBase, AssertsCompiledSQL):
         eq_(str(Point.double_x.__clause_element__()), "point.x * :x_1")
         eq_(str(alias.double_x.__clause_element__()), "point_1.x * :x_1")
 
-        sess = Session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(alias).filter(alias.double_x > Point.x),
@@ -262,7 +261,7 @@ class AliasedClassTest(fixtures.TestBase, AssertsCompiledSQL):
         a2 = aliased(Point)
         eq_(str(a2.x_alone == alias.x), "point_1.x = point_2.x")
 
-        sess = Session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(alias).filter(alias.x_alone > Point.x),
@@ -282,7 +281,7 @@ class AliasedClassTest(fixtures.TestBase, AssertsCompiledSQL):
         eq_(str(Point.x_syn), "Point.x_syn")
         eq_(str(alias.x_syn), "AliasedClass_Point.x_syn")
 
-        sess = Session()
+        sess = fixture_session()
         self.assert_compile(
             sess.query(alias.x_syn).filter(alias.x_syn > Point.x_syn),
             "SELECT point_1.x AS point_1_x FROM point AS point_1, point "
@@ -321,7 +320,7 @@ class AliasedClassTest(fixtures.TestBase, AssertsCompiledSQL):
         a2 = aliased(Point)
         eq_(str(a2.x_syn == alias.x), "point_1.x = point_2.x")
 
-        sess = Session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(alias).filter(alias.x_syn > Point.x),
@@ -350,7 +349,7 @@ class AliasedClassTest(fixtures.TestBase, AssertsCompiledSQL):
         eq_(str(Point.double_x.__clause_element__()), "point.x * :x_1")
         eq_(str(alias.double_x.__clause_element__()), "point_1.x * :x_1")
 
-        sess = Session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(alias).filter(alias.double_x > Point.x),
@@ -380,7 +379,7 @@ class AliasedClassTest(fixtures.TestBase, AssertsCompiledSQL):
         eq_(str(Point.double_x.__clause_element__()), "point.x * :x_1")
         eq_(str(alias.double_x.__clause_element__()), "point_1.x * :x_1")
 
-        sess = Session()
+        sess = fixture_session()
 
         self.assert_compile(
             sess.query(alias).filter(alias.double_x > Point.x),
@@ -469,7 +468,7 @@ class IdentityKeyTest(_fixtures.FixtureTest):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
-        s = create_session()
+        s = fixture_session()
         u = User(name="u1")
         s.add(u)
         s.flush()
index 547815745fd024f36c1ad547080af88f7e1b5f95..887ff7754a3e6e8aa702b980ed413c32b201aef9 100644 (file)
@@ -2,13 +2,13 @@ from sqlalchemy import exc
 from sqlalchemy.orm import collections
 from sqlalchemy.orm import mapper
 from sqlalchemy.orm import relationship
-from sqlalchemy.orm import Session
 from sqlalchemy.orm import validates
 from sqlalchemy.testing import assert_raises
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import ne_
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.mock import call
 from sqlalchemy.testing.mock import Mock
 from test.orm import _fixtures
@@ -27,7 +27,7 @@ class ValidatorTest(_fixtures.FixtureTest):
                 return name + " modified"
 
         mapper(User, users)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="ed")
         eq_(u1.name, "ed modified")
         assert_raises(AssertionError, setattr, u1, "name", "fred")
@@ -60,7 +60,7 @@ class ValidatorTest(_fixtures.FixtureTest):
 
         mapper(User, users, properties={"addresses": relationship(Address)})
         mapper(Address, addresses)
-        sess = Session()
+        sess = fixture_session()
         u1 = User(name="edward")
         a0 = Address(email_address="noemail")
         assert_raises(AssertionError, u1.addresses.append, a0)
index 32f18e47ca3cc55c679ce7eb81263260efd494e3..c185c59d02fda539e0dd208560bf47e056db3c07 100644 (file)
@@ -15,12 +15,10 @@ from sqlalchemy import testing
 from sqlalchemy import TypeDecorator
 from sqlalchemy import util
 from sqlalchemy.orm import configure_mappers
-from sqlalchemy.orm import create_session
 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 sessionmaker
 from sqlalchemy.testing import assert_raises
 from sqlalchemy.testing import assert_raises_message
 from sqlalchemy.testing import config
@@ -31,6 +29,7 @@ from sqlalchemy.testing import fixtures
 from sqlalchemy.testing import is_false
 from sqlalchemy.testing import is_true
 from sqlalchemy.testing.assertsql import CompiledSQL
+from sqlalchemy.testing.fixtures import fixture_session
 from sqlalchemy.testing.mock import patch
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
@@ -98,7 +97,7 @@ class NullVersionIdTest(fixtures.MappedTest):
             version_id_generator=False,
         )
 
-        s1 = Session()
+        s1 = fixture_session()
         return s1
 
     def test_null_version_id_insert(self):
@@ -175,7 +174,7 @@ class VersioningTest(fixtures.MappedTest):
         Foo, version_table = self.classes.Foo, self.tables.version_table
 
         mapper(Foo, version_table, version_id_col=version_table.c.version_id)
-        s1 = Session()
+        s1 = fixture_session()
         return s1
 
     @engines.close_open_connections
@@ -211,7 +210,7 @@ class VersioningTest(fixtures.MappedTest):
         ):
             s1.commit()
 
-        s2 = create_session(autocommit=False)
+        s2 = fixture_session(autocommit=False)
         f1_s = s2.query(Foo).get(f1.id)
         f1_s.value = "f1rev3"
         with conditional_sane_rowcount_warnings(
@@ -371,7 +370,7 @@ class VersioningTest(fixtures.MappedTest):
         s1.add(f1s1)
         s1.commit()
 
-        s2 = create_session(autocommit=False)
+        s2 = fixture_session(autocommit=False)
         f1s2 = s2.query(Foo).get(f1s1.id)
         f1s2.value = "f1 new value"
         with conditional_sane_rowcount_warnings(
@@ -406,7 +405,7 @@ class VersioningTest(fixtures.MappedTest):
         version_table = self.tables.version_table
 
         mapper(Foo, version_table)
-        s1 = Session()
+        s1 = fixture_session()
         f1s1 = Foo(value="f1 value", version_id=1)
         s1.add(f1s1)
         s1.commit()
@@ -425,7 +424,7 @@ class VersioningTest(fixtures.MappedTest):
         s1.add(f1s1)
         s1.commit()
 
-        s2 = create_session(autocommit=False)
+        s2 = fixture_session(autocommit=False)
         f1s2 = s2.query(Foo).get(f1s1.id)
         # not sure if I like this API
         s2.refresh(f1s2, with_for_update=True)
@@ -502,13 +501,13 @@ class VersioningTest(fixtures.MappedTest):
 
         Foo, version_table = self.classes.Foo, self.tables.version_table
 
-        s1 = create_session(autocommit=False)
+        s1 = fixture_session(autocommit=False)
         mapper(Foo, version_table)
         f1s1 = Foo(value="foo", version_id=0)
         s1.add(f1s1)
         s1.commit()
 
-        s2 = create_session(autocommit=False)
+        s2 = fixture_session(autocommit=False)
         f1s2 = s2.query(Foo).with_for_update(read=True).get(f1s1.id)
         assert f1s2.id == f1s1.id
         assert f1s2.value == f1s1.value
@@ -647,7 +646,7 @@ class VersionOnPostUpdateTest(fixtures.MappedTest):
             version_id_col=node.c.version_id,
         )
 
-        s = Session()
+        s = fixture_session()
         n1 = Node(id=1)
         n2 = Node(id=2)
 
@@ -827,7 +826,7 @@ class NoBumpOnRelationshipTest(fixtures.MappedTest):
 
     def _run_test(self, auto_version_counter=True):
         A, B = self.classes("A", "B")
-        s = Session()
+        s = fixture_session()
         if auto_version_counter:
             a1 = A()
         else:
@@ -918,7 +917,7 @@ class ColumnTypeTest(fixtures.MappedTest):
         Foo, version_table = self.classes.Foo, self.tables.version_table
 
         mapper(Foo, version_table, version_id_col=version_table.c.version_id)
-        s1 = Session()
+        s1 = fixture_session()
         return s1
 
     @engines.close_open_connections
@@ -984,7 +983,7 @@ class RowSwitchTest(fixtures.MappedTest):
     def test_row_switch(self):
         P = self.classes.P
 
-        session = sessionmaker()()
+        session = fixture_session()
         session.add(P(id="P1", data="P version 1"))
         session.commit()
         session.close()
@@ -1002,7 +1001,7 @@ class RowSwitchTest(fixtures.MappedTest):
 
         assert P.c.property.strategy.use_get
 
-        session = sessionmaker()()
+        session = fixture_session()
         session.add(P(id="P1", data="P version 1"))
         session.commit()
         session.close()
@@ -1073,7 +1072,7 @@ class AlternateGeneratorTest(fixtures.MappedTest):
     def test_row_switch(self):
         P = self.classes.P
 
-        session = sessionmaker()()
+        session = fixture_session()
         session.add(P(id="P1", data="P version 1"))
         session.commit()
         session.close()
@@ -1091,7 +1090,7 @@ class AlternateGeneratorTest(fixtures.MappedTest):
 
         assert P.c.property.strategy.use_get
 
-        session = sessionmaker()()
+        session = fixture_session()
         session.add(P(id="P1", data="P version 1"))
         session.commit()
         session.close()
@@ -1111,19 +1110,17 @@ class AlternateGeneratorTest(fixtures.MappedTest):
     def test_child_row_switch_two(self):
         P = self.classes.P
 
-        Session = sessionmaker()
-
         # TODO: not sure this test is
         # testing exactly what its looking for
 
-        sess1 = Session()
+        sess1 = fixture_session()
         sess1.add(P(id="P1", data="P version 1"))
         sess1.commit()
         sess1.close()
 
         p1 = sess1.query(P).first()
 
-        sess2 = Session()
+        sess2 = fixture_session()
         p2 = sess2.query(P).first()
 
         sess1.delete(p1)
@@ -1185,7 +1182,7 @@ class PlainInheritanceTest(fixtures.MappedTest):
         mapper(Base, base, version_id_col=base.c.version_id)
         mapper(Sub, sub, inherits=Base)
 
-        s = Session()
+        s = fixture_session()
         s1 = Sub(data="b", sub_data="s")
         s.add(s1)
         s.commit()
@@ -1245,13 +1242,13 @@ class InheritanceTwoVersionIdsTest(fixtures.MappedTest):
         mapper(Base, base, version_id_col=base.c.version_id)
         mapper(Sub, sub, inherits=Base)
 
-        session = Session()
+        session = fixture_session()
         b1 = Base(data="b1")
         session.add(b1)
         session.commit()
         eq_(b1.version_id, 1)
         # base is populated
-        eq_(select(base.c.version_id).scalar(), 1)
+        eq_(session.connection().scalar(select(base.c.version_id)), 1)
 
     def test_sub_both(self):
         Base, sub, base, Sub = (
@@ -1264,16 +1261,16 @@ class InheritanceTwoVersionIdsTest(fixtures.MappedTest):
         mapper(Base, base, version_id_col=base.c.version_id)
         mapper(Sub, sub, inherits=Base)
 
-        session = Session()
+        session = fixture_session()
         s1 = Sub(data="s1", sub_data="s1")
         session.add(s1)
         session.commit()
 
         # table is populated
-        eq_(select(sub.c.version_id).scalar(), 1)
+        eq_(session.connection().scalar(select(sub.c.version_id)), 1)
 
         # base is populated
-        eq_(select(base.c.version_id).scalar(), 1)
+        eq_(session.connection().scalar(select(base.c.version_id)), 1)
 
     def test_sub_only(self):
         Base, sub, base, Sub = (
@@ -1286,16 +1283,16 @@ class InheritanceTwoVersionIdsTest(fixtures.MappedTest):
         mapper(Base, base)
         mapper(Sub, sub, inherits=Base, version_id_col=sub.c.version_id)
 
-        session = Session()
+        session = fixture_session()
         s1 = Sub(data="s1", sub_data="s1")
         session.add(s1)
         session.commit()
 
         # table is populated
-        eq_(select(sub.c.version_id).scalar(), 1)
+        eq_(session.connection().scalar(select(sub.c.version_id)), 1)
 
         # base is not
-        eq_(select(base.c.version_id).scalar(), None)
+        eq_(session.connection().scalar(select(base.c.version_id)), None)
 
     def test_mismatch_version_col_warning(self):
         Base, sub, base, Sub = (
@@ -1384,7 +1381,7 @@ class ServerVersioningTest(fixtures.MappedTest):
             eager_defaults=eager_defaults,
         )
 
-        s1 = Session(expire_on_commit=expire_on_commit)
+        s1 = fixture_session(expire_on_commit=expire_on_commit)
         return s1
 
     def test_insert_col(self):
@@ -1625,7 +1622,7 @@ class ServerVersioningTest(fixtures.MappedTest):
 
         f1.value
 
-        s2 = Session()
+        s2 = fixture_session()
         f2 = s2.query(self.classes.Foo).first()
         f2.value = "f2"
         s2.commit()
@@ -1652,7 +1649,7 @@ class ServerVersioningTest(fixtures.MappedTest):
         # a SELECT for it within the flush.
         f1.value
 
-        s2 = Session(expire_on_commit=False)
+        s2 = fixture_session(expire_on_commit=False)
         f2 = s2.query(self.classes.Foo).first()
         f2.value = "f2"
         s2.commit()
@@ -1698,7 +1695,7 @@ class ManualVersionTest(fixtures.MappedTest):
         )
 
     def test_insert(self):
-        sess = Session()
+        sess = fixture_session()
         a1 = self.classes.A()
 
         a1.vid = 1
@@ -1708,7 +1705,7 @@ class ManualVersionTest(fixtures.MappedTest):
         eq_(a1.vid, 1)
 
     def test_update(self):
-        sess = Session()
+        sess = fixture_session()
         a1 = self.classes.A()
 
         a1.vid = 1
@@ -1728,7 +1725,7 @@ class ManualVersionTest(fixtures.MappedTest):
 
     @testing.requires.sane_rowcount_w_returning
     def test_update_concurrent_check(self):
-        sess = Session()
+        sess = fixture_session()
         a1 = self.classes.A()
 
         a1.vid = 1
@@ -1742,7 +1739,7 @@ class ManualVersionTest(fixtures.MappedTest):
         assert_raises(orm_exc.StaleDataError, sess.commit)
 
     def test_update_version_conditional(self):
-        sess = Session()
+        sess = fixture_session()
         a1 = self.classes.A()
 
         a1.vid = 1
@@ -1814,7 +1811,7 @@ class ManualInheritanceVersionTest(fixtures.MappedTest):
         mapper(cls.classes.B, cls.tables.b, inherits=cls.classes.A)
 
     def test_no_increment(self):
-        sess = Session()
+        sess = fixture_session()
         b1 = self.classes.B()
 
         b1.vid = 1
@@ -1874,7 +1871,7 @@ class VersioningMappedSelectTest(fixtures.MappedTest):
         )
 
         mapper(Foo, current, version_id_col=version_table.c.version_id)
-        s1 = Session()
+        s1 = fixture_session()
         return s1
 
     def _explicit_version_fixture(self):
@@ -1892,7 +1889,7 @@ class VersioningMappedSelectTest(fixtures.MappedTest):
             version_id_col=version_table.c.version_id,
             version_id_generator=False,
         )
-        s1 = Session()
+        s1 = fixture_session()
         return s1
 
     def test_implicit(self):
index 1722a1e690102653dea78b0c58e4fbcbfaad8499..91076f9c388e4501b9655bf98d4e60448ffca7da 100644 (file)
@@ -1064,14 +1064,10 @@ class ExecuteTest(fixtures.TestBase):
     @testing.fails_on_everything_except("postgresql")
     def test_as_from(self, connection):
         # TODO: shouldn't this work on oracle too ?
-        x = connection.execute(func.current_date(bind=testing.db)).scalar()
-        y = connection.execute(
-            func.current_date(bind=testing.db).select()
-        ).scalar()
-        z = connection.scalar(func.current_date(bind=testing.db))
-        w = connection.scalar(
-            select("*").select_from(func.current_date(bind=testing.db))
-        )
+        x = connection.execute(func.current_date()).scalar()
+        y = connection.execute(func.current_date().select()).scalar()
+        z = connection.scalar(func.current_date())
+        w = connection.scalar(select("*").select_from(func.current_date()))
 
         assert x == y == z == w
 
index 9af8ef6da85f3df058309d44420f4f57d9863375..3047b5d0968736fecf481812ea2ff7c74582a742 100644 (file)
@@ -264,15 +264,23 @@ class QueryTest(fixtures.TablesTest):
     def test_compiled_execute(self, connection):
         users = self.tables.users
         connection.execute(users.insert(), user_id=7, user_name="jack")
-        s = select(users).where(users.c.user_id == bindparam("id")).compile()
+        s = (
+            select(users)
+            .where(users.c.user_id == bindparam("id"))
+            .compile(connection)
+        )
         eq_(connection.execute(s, id=7).first()._mapping["user_id"], 7)
 
     def test_compiled_insert_execute(self, connection):
         users = self.tables.users
         connection.execute(
-            users.insert().compile(), user_id=7, user_name="jack"
+            users.insert().compile(connection), user_id=7, user_name="jack"
+        )
+        s = (
+            select(users)
+            .where(users.c.user_id == bindparam("id"))
+            .compile(connection)
         )
-        s = select(users).where(users.c.user_id == bindparam("id")).compile()
         eq_(connection.execute(s, id=7).first()._mapping["user_id"], 7)
 
     def test_repeated_bindparams(self, connection):
index b5ba28df73abd4dfbd4dbf5b744f0af5fa455efa..65325aa6f70194aab41c6eaa9979ec67a28396da 100644 (file)
@@ -520,7 +520,7 @@ class SequenceAsServerDefaultTest(
 
     def test_drop_ordering(self):
         with self.sql_execution_asserter(testing.db) as asserter:
-            self.tables_test_metadata.drop_all(checkfirst=False)
+            self.tables_test_metadata.drop_all(testing.db, checkfirst=False)
 
         asserter.assert_(
             AllOf(