From: Mike Bayer Date: Mon, 4 Jan 2021 20:18:25 +0000 (-0500) Subject: remove more bound metadata X-Git-Tag: rel_1_4_0b2~66^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6fccdf4a285d5332ef49f23dc18c3ce45501d78b;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git remove more bound metadata in Iae6ab95938a7e92b6d42086aec534af27b5577d3 I missed that the "bind" was being stuck onto the MetaData in TablesTest, which led thousands of ORM tests to still use bound metadata. Keep looking for bound metadata. standardize all ORM tests on a single means of getting a Session when the Session API isn't the thing we are directly testing, using a new function fixture_session() that replaces create_session() and uses modern defaults. Change-Id: Iaf71206e9ee568151496d8bc213a069504bf65ef --- diff --git a/lib/sqlalchemy/sql/schema.py b/lib/sqlalchemy/sql/schema.py index 0ffb6bcc3b..36d69456ef 100644 --- a/lib/sqlalchemy/sql/schema.py +++ b/lib/sqlalchemy/sql/schema.py @@ -2685,9 +2685,12 @@ class Sequence(IdentityOptions, roles.StatementRole, DefaultGenerator): for this :class:`.Sequence` within any SQL expression. """ - return util.preloaded.sql_functions.func.next_value( - self, bind=self.bind - ) + if self.bind: + return util.preloaded.sql_functions.func.next_value( + self, bind=self.bind + ) + else: + return util.preloaded.sql_functions.func.next_value(self) def _set_parent(self, column, **kw): super(Sequence, self)._set_parent(column) diff --git a/lib/sqlalchemy/testing/fixtures.py b/lib/sqlalchemy/testing/fixtures.py index 209ea415e2..ac4d3d8fa0 100644 --- a/lib/sqlalchemy/testing/fixtures.py +++ b/lib/sqlalchemy/testing/fixtures.py @@ -176,7 +176,6 @@ class TablesTest(TestBase): cls.bind = cls.setup_bind() cls._tables_metadata = sa.MetaData() - cls._tables_metadata.bind = cls.bind @classmethod def _setup_once_inserts(cls): @@ -354,6 +353,12 @@ def create_session(**kw): return sa.orm.Session(config.db, **kw) +def fixture_session(**kw): + kw.setdefault("autoflush", True) + kw.setdefault("expire_on_commit", True) + return sa.orm.Session(config.db, **kw) + + class ORMTest(_ORMTest, TestBase): pass diff --git a/lib/sqlalchemy/testing/suite/test_rowcount.py b/lib/sqlalchemy/testing/suite/test_rowcount.py index f3f902abd2..bb344237a2 100644 --- a/lib/sqlalchemy/testing/suite/test_rowcount.py +++ b/lib/sqlalchemy/testing/suite/test_rowcount.py @@ -1,6 +1,7 @@ from sqlalchemy import bindparam from sqlalchemy import Column from sqlalchemy import Integer +from sqlalchemy import select from sqlalchemy import Sequence from sqlalchemy import String from sqlalchemy import Table @@ -51,12 +52,14 @@ class RowCountTest(fixtures.TablesTest): [{"name": n, "department": d} for n, d in data], ) - def test_basic(self): + def test_basic(self, connection): employees_table = self.tables.employees - s = employees_table.select() - r = s.execute().fetchall() + s = select( + employees_table.c.name, employees_table.c.department + ).order_by(employees_table.c.employee_id) + rows = connection.execute(s).fetchall() - assert len(r) == len(self.data) + eq_(rows, self.data) def test_update_rowcount1(self, connection): employees_table = self.tables.employees diff --git a/lib/sqlalchemy/testing/warnings.py b/lib/sqlalchemy/testing/warnings.py index c948ba66f5..1b078a2634 100644 --- a/lib/sqlalchemy/testing/warnings.py +++ b/lib/sqlalchemy/testing/warnings.py @@ -62,11 +62,6 @@ def setup_filters(): r"The Connection.connect\(\) method is considered legacy", # r".*DefaultGenerator.execute\(\)", # - # bound metadaa - # - r"The ``bind`` argument for schema methods that invoke SQL ", - r"The Function.bind argument", - r"The select.bind argument", # # result sets # diff --git a/test/aaa_profiling/test_memusage.py b/test/aaa_profiling/test_memusage.py index 7858e697d9..75a4f51cf8 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 5476729612..f163078d80 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 c48ff53d4a..ae0ea49921 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 ea0bfa4d27..cdb37cc615 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 60f47bf30e..f008ea0192 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 2862316147..a18cf756b1 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 1a49cf4b92..550fedb8e6 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 77d4a80fe0..2b80b753eb 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 026b3cd03e..b1f5cc956f 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 eff3ccdaef..71fabc629f 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 fbac35f7ee..048a8b52d1 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 acb0ad490d..eba2ac0cbb 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 6d7b8da33c..12e4255fa7 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 a1bbce53d9..4c005d336c 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 d731c6afae..5f12d82723 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 d8847ed402..cc29cab7de 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 ca2fb83ca9..631527daf9 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 32514a473e..241528c44e 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 bce554f30d..a368e7b2f3 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 0d28ef342d..fd3d50dddc 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 ce8d76a533..3cf9c98372 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 af960625e7..bdcdedc44e 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 e2777e9e95..f2f8d629b1 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 334ed22f37..7f347e40f9 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 207ac09c73..f790b11ac2 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 83c3e75a00..d5305c4730 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 d7040e8224..2f31ab0c42 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 99cab870bd..c33f3e0de0 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 84ef22d52f..581fa45fd9 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 35c7565fb9..e940cb0f42 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 6879e14658..214be5e9aa 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 dab1841943..24297dd0eb 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 cbe6bd238e..11c6bb2128 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 dee76fc7b7..2492e593c8 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 fbbf192a0b..40f099fc84 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 b4c689c018..30e6f3541f 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 310e50eb2b..8ca6a8d86b 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 c873f46c70..a6d651d22b 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 09ceaf8272..2f54f7fff0 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 27b187342d..83f74f055c 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 956645506f..b0113f1fcc 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 59d7470122..7ef9d1b604 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 6a916e28a8..180b479baa 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 7c76626185..3d09bd4460 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 2404bf1289..df652daf45 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 a164034daa..6ee87eefe7 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 12d3f7bfbb..1a58356e35 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 47b5404c92..e1ef67fed6 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 3bd5d97dba..e5206d2ae1 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 aa1f2b88d8..97743b5de2 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 6be967337a..6d1cd01843 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 7989026d13..7d7432d556 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 5f18b9bce9..942e8383a5 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 7bc82b2a3a..4498fc1ff9 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 ec843d1c5c..db56eeb833 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 fb05f6601c..1c918a88cd 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 5abaa03db5..5771ee5385 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 055f24b5c1..cc95964664 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 0bca2f975b..f6f1b5d74f 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 ffc41fb86b..50f5772400 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 2fdf1afd9c..7efd3436c1 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 8effb583c5..d19d65e22a 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 16ccff936a..c9b2442be4 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 c2548c8795..79d3db8f0b 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 b190f46d63..7591f844ff 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 f439b6b08e..3061de309b 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 819bc8bed4..e15dbb09f3 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 a3dd42fc26..f82c5cf7c9 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 8b51d7e203..79c63872dc 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 35e0b00422..013eb21e11 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 57d3ce01d6..e0a76c6a0b 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 d814b0cab8..a609c89aeb 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 e40e815aa3..bc32e322d4 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 a487c17e6b..ae9f9b3a1f 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 b4befcea33..b22b318e9b 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 a5a983740c..189fd2d27c 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 cee87c8051..fd8e849fb5 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 996488fb1e..5143d98c5d 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 d1ed9acc16..5386fd1127 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 502df314a4..c22391b447 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 de6282da57..5535fe5d68 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 c5cf275253..20c4752b82 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 280a4355ff..fe20442a30 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 880f0bd188..76cd7f7583 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 6eda6fbb68..550cf6535b 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 7583b9d22c..84373b2dca 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 97b7b9edd0..4e713627c1 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 0b0c9cea76..e350ee018c 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 d3082accda..260cae37bd 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 547815745f..887ff7754a 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 32f18e47ca..c185c59d02 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 1722a1e690..91076f9c38 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 9af8ef6da8..3047b5d096 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 b5ba28df73..65325aa6f7 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(