diff options
Diffstat (limited to 'test')
94 files changed, 3899 insertions, 3731 deletions
diff --git a/test/aaa_profiling/test_memusage.py b/test/aaa_profiling/test_memusage.py index 7858e697d..75a4f51cf 100644 --- a/test/aaa_profiling/test_memusage.py +++ b/test/aaa_profiling/test_memusage.py @@ -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 diff --git a/test/aaa_profiling/test_orm.py b/test/aaa_profiling/test_orm.py index 547672961..f163078d8 100644 --- a/test/aaa_profiling/test_orm.py +++ b/test/aaa_profiling/test_orm.py @@ -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) diff --git a/test/aaa_profiling/test_resultset.py b/test/aaa_profiling/test_resultset.py index c48ff53d4..ae0ea4992 100644 --- a/test/aaa_profiling/test_resultset.py +++ b/test/aaa_profiling/test_resultset.py @@ -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 ) diff --git a/test/dialect/mssql/test_query.py b/test/dialect/mssql/test_query.py index ea0bfa4d2..cdb37cc61 100644 --- a/test/dialect/mssql/test_query.py +++ b/test/dialect/mssql/test_query.py @@ -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): diff --git a/test/dialect/oracle/test_types.py b/test/dialect/oracle/test_types.py index 60f47bf30..f008ea019 100644 --- a/test/dialect/oracle/test_types.py +++ b/test/dialect/oracle/test_types.py @@ -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): diff --git a/test/engine/test_deprecations.py b/test/engine/test_deprecations.py index 286231614..a18cf756b 100644 --- a/test/engine/test_deprecations.py +++ b/test/engine/test_deprecations.py @@ -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): diff --git a/test/engine/test_pool.py b/test/engine/test_pool.py index 1a49cf4b9..550fedb8e 100644 --- a/test/engine/test_pool.py +++ b/test/engine/test_pool.py @@ -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)) diff --git a/test/ext/declarative/test_inheritance.py b/test/ext/declarative/test_inheritance.py index 77d4a80fe..2b80b753e 100644 --- a/test/ext/declarative/test_inheritance.py +++ b/test/ext/declarative/test_inheritance.py @@ -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( [ diff --git a/test/ext/test_associationproxy.py b/test/ext/test_associationproxy.py index 026b3cd03..b1f5cc956 100644 --- a/test/ext/test_associationproxy.py +++ b/test/ext/test_associationproxy.py @@ -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 " diff --git a/test/ext/test_baked.py b/test/ext/test_baked.py index eff3ccdae..71fabc629 100644 --- a/test/ext/test_baked.py +++ b/test/ext/test_baked.py @@ -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): diff --git a/test/ext/test_hybrid.py b/test/ext/test_hybrid.py index fbac35f7e..048a8b52d 100644 --- a/test/ext/test_hybrid.py +++ b/test/ext/test_hybrid.py @@ -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"))) diff --git a/test/ext/test_mutable.py b/test/ext/test_mutable.py index acb0ad490..eba2ac0cb 100644 --- a/test/ext/test_mutable.py +++ b/test/ext/test_mutable.py @@ -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 diff --git a/test/ext/test_serializer.py b/test/ext/test_serializer.py index 6d7b8da33..12e4255fa 100644 --- a/test/ext/test_serializer.py +++ b/test/ext/test_serializer.py @@ -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")], ) diff --git a/test/orm/declarative/test_basic.py b/test/orm/declarative/test_basic.py index a1bbce53d..4c005d336 100644 --- a/test/orm/declarative/test_basic.py +++ b/test/orm/declarative/test_basic.py @@ -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) diff --git a/test/orm/declarative/test_concurrency.py b/test/orm/declarative/test_concurrency.py index d731c6afa..5f12d8272 100644 --- a/test/orm/declarative/test_concurrency.py +++ b/test/orm/declarative/test_concurrency.py @@ -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: diff --git a/test/orm/declarative/test_inheritance.py b/test/orm/declarative/test_inheritance.py index d8847ed40..cc29cab7d 100644 --- a/test/orm/declarative/test_inheritance.py +++ b/test/orm/declarative/test_inheritance.py @@ -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"), diff --git a/test/orm/declarative/test_mixin.py b/test/orm/declarative/test_mixin.py index ca2fb83ca..631527daf 100644 --- a/test/orm/declarative/test_mixin.py +++ b/test/orm/declarative/test_mixin.py @@ -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 " diff --git a/test/orm/declarative/test_reflection.py b/test/orm/declarative/test_reflection.py index 32514a473..241528c44 100644 --- a/test/orm/declarative/test_reflection.py +++ b/test/orm/declarative/test_reflection.py @@ -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() diff --git a/test/orm/inheritance/test_abc_inheritance.py b/test/orm/inheritance/test_abc_inheritance.py index bce554f30..a368e7b2f 100644 --- a/test/orm/inheritance/test_abc_inheritance.py +++ b/test/orm/inheritance/test_abc_inheritance.py @@ -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") diff --git a/test/orm/inheritance/test_abc_polymorphic.py b/test/orm/inheritance/test_abc_polymorphic.py index 0d28ef342..fd3d50ddd 100644 --- a/test/orm/inheritance/test_abc_polymorphic.py +++ b/test/orm/inheritance/test_abc_polymorphic.py @@ -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() diff --git a/test/orm/inheritance/test_assorted_poly.py b/test/orm/inheritance/test_assorted_poly.py index ce8d76a53..3cf9c9837 100644 --- a/test/orm/inheritance/test_assorted_poly.py +++ b/test/orm/inheritance/test_assorted_poly.py @@ -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)) diff --git a/test/orm/inheritance/test_basic.py b/test/orm/inheritance/test_basic.py index af960625e..bdcdedc44 100644 --- a/test/orm/inheritance/test_basic.py +++ b/test/orm/inheritance/test_basic.py @@ -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) diff --git a/test/orm/inheritance/test_concrete.py b/test/orm/inheritance/test_concrete.py index e2777e9e9..f2f8d629b 100644 --- a/test/orm/inheritance/test_concrete.py +++ b/test/orm/inheritance/test_concrete.py @@ -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") diff --git a/test/orm/inheritance/test_magazine.py b/test/orm/inheritance/test_magazine.py index 334ed22f3..7f347e40f 100644 --- a/test/orm/inheritance/test_magazine.py +++ b/test/orm/inheritance/test_magazine.py @@ -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) diff --git a/test/orm/inheritance/test_manytomany.py b/test/orm/inheritance/test_manytomany.py index 207ac09c7..f790b11ac 100644 --- a/test/orm/inheritance/test_manytomany.py +++ b/test/orm/inheritance/test_manytomany.py @@ -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") diff --git a/test/orm/inheritance/test_poly_linked_list.py b/test/orm/inheritance/test_poly_linked_list.py index 83c3e75a0..d5305c473 100644 --- a/test/orm/inheritance/test_poly_linked_list.py +++ b/test/orm/inheritance/test_poly_linked_list.py @@ -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 diff --git a/test/orm/inheritance/test_poly_loading.py b/test/orm/inheritance/test_poly_loading.py index d7040e822..2f31ab0c4 100644 --- a/test/orm/inheritance/test_poly_loading.py +++ b/test/orm/inheritance/test_poly_loading.py @@ -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( diff --git a/test/orm/inheritance/test_poly_persistence.py b/test/orm/inheritance/test_poly_persistence.py index 99cab870b..c33f3e0de 100644 --- a/test/orm/inheritance/test_poly_persistence.py +++ b/test/orm/inheritance/test_poly_persistence.py @@ -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", diff --git a/test/orm/inheritance/test_polymorphic_rel.py b/test/orm/inheritance/test_polymorphic_rel.py index 84ef22d52..581fa45fd 100644 --- a/test/orm/inheritance/test_polymorphic_rel.py +++ b/test/orm/inheritance/test_polymorphic_rel.py @@ -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) diff --git a/test/orm/inheritance/test_productspec.py b/test/orm/inheritance/test_productspec.py index 35c7565fb..e940cb0f4 100644 --- a/test/orm/inheritance/test_productspec.py +++ b/test/orm/inheritance/test_productspec.py @@ -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"))) diff --git a/test/orm/inheritance/test_relationship.py b/test/orm/inheritance/test_relationship.py index 6879e1465..214be5e9a 100644 --- a/test/orm/inheritance/test_relationship.py +++ b/test/orm/inheritance/test_relationship.py @@ -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() diff --git a/test/orm/inheritance/test_selects.py b/test/orm/inheritance/test_selects.py index dab184194..24297dd0e 100644 --- a/test/orm/inheritance/test_selects.py +++ b/test/orm/inheritance/test_selects.py @@ -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 diff --git a/test/orm/inheritance/test_single.py b/test/orm/inheritance/test_single.py index cbe6bd238..11c6bb212 100644 --- a/test/orm/inheritance/test_single.py +++ b/test/orm/inheritance/test_single.py @@ -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() diff --git a/test/orm/inheritance/test_with_poly.py b/test/orm/inheritance/test_with_poly.py index dee76fc7b..2492e593c 100644 --- a/test/orm/inheritance/test_with_poly.py +++ b/test/orm/inheritance/test_with_poly.py @@ -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) diff --git a/test/orm/test_ac_relationships.py b/test/orm/test_ac_relationships.py index fbbf192a0..40f099fc8 100644 --- a/test/orm/test_ac_relationships.py +++ b/test/orm/test_ac_relationships.py @@ -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), diff --git a/test/orm/test_association.py b/test/orm/test_association.py index b4c689c01..30e6f3541 100644 --- a/test/orm/test_association.py +++ b/test/orm/test_association.py @@ -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, + ) diff --git a/test/orm/test_assorted_eager.py b/test/orm/test_assorted_eager.py index 310e50eb2..8ca6a8d86 100644 --- a/test/orm/test_assorted_eager.py +++ b/test/orm/test_assorted_eager.py @@ -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") diff --git a/test/orm/test_backref_mutations.py b/test/orm/test_backref_mutations.py index c873f46c7..a6d651d22 100644 --- a/test/orm/test_backref_mutations.py +++ b/test/orm/test_backref_mutations.py @@ -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) diff --git a/test/orm/test_bind.py b/test/orm/test_bind.py index 09ceaf827..2f54f7fff 100644 --- a/test/orm/test_bind.py +++ b/test/orm/test_bind.py @@ -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") diff --git a/test/orm/test_bulk.py b/test/orm/test_bulk.py index 27b187342..83f74f055 100644 --- a/test/orm/test_bulk.py +++ b/test/orm/test_bulk.py @@ -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, diff --git a/test/orm/test_bundle.py b/test/orm/test_bundle.py index 956645506..b0113f1fc 100644 --- a/test/orm/test_bundle.py +++ b/test/orm/test_bundle.py @@ -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")], diff --git a/test/orm/test_cache_key.py b/test/orm/test_cache_key.py index 59d747012..7ef9d1b60 100644 --- a/test/orm/test_cache_key.py +++ b/test/orm/test_cache_key.py @@ -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") diff --git a/test/orm/test_cascade.py b/test/orm/test_cascade.py index 6a916e28a..180b479ba 100644 --- a/test/orm/test_cascade.py +++ b/test/orm/test_cascade.py @@ -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 = ( diff --git a/test/orm/test_collection.py b/test/orm/test_collection.py index 7c7662618..3d09bd446 100644 --- a/test/orm/test_collection.py +++ b/test/orm/test_collection.py @@ -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() diff --git a/test/orm/test_compile.py b/test/orm/test_compile.py index 2404bf128..df652daf4 100644 --- a/test/orm/test_compile.py +++ b/test/orm/test_compile.py @@ -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): diff --git a/test/orm/test_composites.py b/test/orm/test_composites.py index a164034da..6ee87eefe 100644 --- a/test/orm/test_composites.py +++ b/test/orm/test_composites.py @@ -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), diff --git a/test/orm/test_core_compilation.py b/test/orm/test_core_compilation.py index 12d3f7bfb..1a58356e3 100644 --- a/test/orm/test_core_compilation.py +++ b/test/orm/test_core_compilation.py @@ -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) diff --git a/test/orm/test_cycles.py b/test/orm/test_cycles.py index 47b5404c9..e1ef67fed 100644 --- a/test/orm/test_cycles.py +++ b/test/orm/test_cycles.py @@ -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() diff --git a/test/orm/test_default_strategies.py b/test/orm/test_default_strategies.py index 3bd5d97db..e5206d2ae 100644 --- a/test/orm/test_default_strategies.py +++ b/test/orm/test_default_strategies.py @@ -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) diff --git a/test/orm/test_defaults.py b/test/orm/test_defaults.py index aa1f2b88d..97743b5de 100644 --- a/test/orm/test_defaults.py +++ b/test/orm/test_defaults.py @@ -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)) diff --git a/test/orm/test_deferred.py b/test/orm/test_deferred.py index 6be967337..6d1cd0184 100644 --- a/test/orm/test_deferred.py +++ b/test/orm/test_deferred.py @@ -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() ) diff --git a/test/orm/test_deprecations.py b/test/orm/test_deprecations.py index 7989026d1..7d7432d55 100644 --- a/test/orm/test_deprecations.py +++ b/test/orm/test_deprecations.py @@ -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) diff --git a/test/orm/test_dynamic.py b/test/orm/test_dynamic.py index 5f18b9bce..942e8383a 100644 --- a/test/orm/test_dynamic.py +++ b/test/orm/test_dynamic.py @@ -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 diff --git a/test/orm/test_eager_relations.py b/test/orm/test_eager_relations.py index 7bc82b2a3..4498fc1ff 100644 --- a/test/orm/test_eager_relations.py +++ b/test/orm/test_eager_relations.py @@ -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) diff --git a/test/orm/test_evaluator.py b/test/orm/test_evaluator.py index ec843d1c5..db56eeb83 100644 --- a/test/orm/test_evaluator.py +++ b/test/orm/test_evaluator.py @@ -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) diff --git a/test/orm/test_events.py b/test/orm/test_events.py index fb05f6601..1c918a88c 100644 --- a/test/orm/test_events.py +++ b/test/orm/test_events.py @@ -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() diff --git a/test/orm/test_expire.py b/test/orm/test_expire.py index 5abaa03db..5771ee538 100644 --- a/test/orm/test_expire.py +++ b/test/orm/test_expire.py @@ -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( diff --git a/test/orm/test_froms.py b/test/orm/test_froms.py index 055f24b5c..cc9596466 100644 --- a/test/orm/test_froms.py +++ b/test/orm/test_froms.py @@ -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) diff --git a/test/orm/test_generative.py b/test/orm/test_generative.py index 0bca2f975..f6f1b5d74 100644 --- a/test/orm/test_generative.py +++ b/test/orm/test_generative.py @@ -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) diff --git a/test/orm/test_hasparent.py b/test/orm/test_hasparent.py index ffc41fb86..50f577240 100644 --- a/test/orm/test_hasparent.py +++ b/test/orm/test_hasparent.py @@ -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() diff --git a/test/orm/test_immediate_load.py b/test/orm/test_immediate_load.py index 2fdf1afd9..7efd3436c 100644 --- a/test/orm/test_immediate_load.py +++ b/test/orm/test_immediate_load.py @@ -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) diff --git a/test/orm/test_inspect.py b/test/orm/test_inspect.py index 8effb583c..d19d65e22 100644 --- a/test/orm/test_inspect.py +++ b/test/orm/test_inspect.py @@ -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) diff --git a/test/orm/test_instrumentation.py b/test/orm/test_instrumentation.py index 16ccff936..c9b2442be 100644 --- a/test/orm/test_instrumentation.py +++ b/test/orm/test_instrumentation.py @@ -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() diff --git a/test/orm/test_joins.py b/test/orm/test_joins.py index c2548c879..79d3db8f0 100644 --- a/test/orm/test_joins.py +++ b/test/orm/test_joins.py @@ -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() diff --git a/test/orm/test_lambdas.py b/test/orm/test_lambdas.py index b190f46d6..7591f844f 100644 --- a/test/orm/test_lambdas.py +++ b/test/orm/test_lambdas.py @@ -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( diff --git a/test/orm/test_lazy_relations.py b/test/orm/test_lazy_relations.py index f439b6b08..3061de309 100644 --- a/test/orm/test_lazy_relations.py +++ b/test/orm/test_lazy_relations.py @@ -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() diff --git a/test/orm/test_loading.py b/test/orm/test_loading.py index 819bc8bed..e15dbb09f 100644 --- a/test/orm/test_loading.py +++ b/test/orm/test_loading.py @@ -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,)] diff --git a/test/orm/test_lockmode.py b/test/orm/test_lockmode.py index a3dd42fc2..f82c5cf7c 100644 --- a/test/orm/test_lockmode.py +++ b/test/orm/test_lockmode.py @@ -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)) diff --git a/test/orm/test_manytomany.py b/test/orm/test_manytomany.py index 8b51d7e20..79c63872d 100644 --- a/test/orm/test_manytomany.py +++ b/test/orm/test_manytomany.py @@ -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() diff --git a/test/orm/test_mapper.py b/test/orm/test_mapper.py index 35e0b0042..013eb21e1 100644 --- a/test/orm/test_mapper.py +++ b/test/orm/test_mapper.py @@ -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() diff --git a/test/orm/test_merge.py b/test/orm/test_merge.py index 57d3ce01d..e0a76c6a0 100644 --- a/test/orm/test_merge.py +++ b/test/orm/test_merge.py @@ -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 diff --git a/test/orm/test_naturalpks.py b/test/orm/test_naturalpks.py index d814b0cab..a609c89ae 100644 --- a/test/orm/test_naturalpks.py +++ b/test/orm/test_naturalpks.py @@ -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) diff --git a/test/orm/test_of_type.py b/test/orm/test_of_type.py index e40e815aa..bc32e322d 100644 --- a/test/orm/test_of_type.py +++ b/test/orm/test_of_type.py @@ -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: diff --git a/test/orm/test_onetoone.py b/test/orm/test_onetoone.py index a487c17e6..ae9f9b3a1 100644 --- a/test/orm/test_onetoone.py +++ b/test/orm/test_onetoone.py @@ -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) diff --git a/test/orm/test_options.py b/test/orm/test_options.py index b4befcea3..b22b318e9 100644 --- a/test/orm/test_options.py +++ b/test/orm/test_options.py @@ -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) diff --git a/test/orm/test_pickled.py b/test/orm/test_pickled.py index a5a983740..189fd2d27 100644 --- a/test/orm/test_pickled.py +++ b/test/orm/test_pickled.py @@ -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: diff --git a/test/orm/test_query.py b/test/orm/test_query.py index cee87c805..fd8e849fb 100644 --- a/test/orm/test_query.py +++ b/test/orm/test_query.py @@ -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) diff --git a/test/orm/test_relationships.py b/test/orm/test_relationships.py index 996488fb1..5143d98c5 100644 --- a/test/orm/test_relationships.py +++ b/test/orm/test_relationships.py @@ -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 = ( diff --git a/test/orm/test_scoping.py b/test/orm/test_scoping.py index d1ed9acc1..5386fd112 100644 --- a/test/orm/test_scoping.py +++ b/test/orm/test_scoping.py @@ -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 diff --git a/test/orm/test_selectable.py b/test/orm/test_selectable.py index 502df314a..c22391b44 100644 --- a/test/orm/test_selectable.py +++ b/test/orm/test_selectable.py @@ -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, diff --git a/test/orm/test_selectin_relations.py b/test/orm/test_selectin_relations.py index de6282da5..5535fe5d6 100644 --- a/test/orm/test_selectin_relations.py +++ b/test/orm/test_selectin_relations.py @@ -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( diff --git a/test/orm/test_session.py b/test/orm/test_session.py index c5cf27525..20c4752b8 100644 --- a/test/orm/test_session.py +++ b/test/orm/test_session.py @@ -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")]) diff --git a/test/orm/test_subquery_relations.py b/test/orm/test_subquery_relations.py index 280a4355f..fe20442a3 100644 --- a/test/orm/test_subquery_relations.py +++ b/test/orm/test_subquery_relations.py @@ -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): diff --git a/test/orm/test_sync.py b/test/orm/test_sync.py index 880f0bd18..76cd7f758 100644 --- a/test/orm/test_sync.py +++ b/test/orm/test_sync.py @@ -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) diff --git a/test/orm/test_transaction.py b/test/orm/test_transaction.py index 6eda6fbb6..550cf6535 100644 --- a/test/orm/test_transaction.py +++ b/test/orm/test_transaction.py @@ -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() diff --git a/test/orm/test_unitofwork.py b/test/orm/test_unitofwork.py index 7583b9d22..84373b2dc 100644 --- a/test/orm/test_unitofwork.py +++ b/test/orm/test_unitofwork.py @@ -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) diff --git a/test/orm/test_unitofworkv2.py b/test/orm/test_unitofworkv2.py index 97b7b9edd..4e713627c 100644 --- a/test/orm/test_unitofworkv2.py +++ b/test/orm/test_unitofworkv2.py @@ -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() diff --git a/test/orm/test_update_delete.py b/test/orm/test_update_delete.py index 0b0c9cea7..e350ee018 100644 --- a/test/orm/test_update_delete.py +++ b/test/orm/test_update_delete.py @@ -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() diff --git a/test/orm/test_utils.py b/test/orm/test_utils.py index d3082accd..260cae37b 100644 --- a/test/orm/test_utils.py +++ b/test/orm/test_utils.py @@ -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() diff --git a/test/orm/test_validators.py b/test/orm/test_validators.py index 547815745..887ff7754 100644 --- a/test/orm/test_validators.py +++ b/test/orm/test_validators.py @@ -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) diff --git a/test/orm/test_versioning.py b/test/orm/test_versioning.py index 32f18e47c..c185c59d0 100644 --- a/test/orm/test_versioning.py +++ b/test/orm/test_versioning.py @@ -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): diff --git a/test/sql/test_functions.py b/test/sql/test_functions.py index 1722a1e69..91076f9c3 100644 --- a/test/sql/test_functions.py +++ b/test/sql/test_functions.py @@ -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 diff --git a/test/sql/test_query.py b/test/sql/test_query.py index 9af8ef6da..3047b5d09 100644 --- a/test/sql/test_query.py +++ b/test/sql/test_query.py @@ -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): diff --git a/test/sql/test_sequences.py b/test/sql/test_sequences.py index b5ba28df7..65325aa6f 100644 --- a/test/sql/test_sequences.py +++ b/test/sql/test_sequences.py @@ -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( |
