From: Gord Thompson Date: Thu, 30 Sep 2021 23:39:05 +0000 (-0600) Subject: Modernize tests - session_query_get X-Git-Tag: rel_1_4_27~26^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6a786297014c7b2a381084299ac3b4aabcf3c318;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Modernize tests - session_query_get Co-authored-by: Mike Bayer Change-Id: I92013aad471baf32df1b51b756e86d95449b5cfd --- diff --git a/doc/build/orm/tutorial.rst b/doc/build/orm/tutorial.rst index 1f99a503a4..dbfc84b6c7 100644 --- a/doc/build/orm/tutorial.rst +++ b/doc/build/orm/tutorial.rst @@ -1936,7 +1936,7 @@ being deleted: .. sourcecode:: python+sql # load Jack by primary key - {sql}>>> jack = session.query(User).get(5) + {sql}>>> jack = session.get(User, 5) BEGIN (implicit) SELECT users.id AS users_id, users.name AS users_name, diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py index d5fb8a8e1b..bb12f7021d 100644 --- a/lib/sqlalchemy/orm/session.py +++ b/lib/sqlalchemy/orm/session.py @@ -2793,6 +2793,11 @@ class Session(_SessionClassMethods): mapper = inspect(entity) + if not mapper or not mapper.is_mapper: + raise sa_exc.ArgumentError( + "Expected mapped class or mapper, got: %r" % entity + ) + is_dict = isinstance(primary_key_identity, dict) if not is_dict: primary_key_identity = util.to_list( @@ -2802,8 +2807,8 @@ class Session(_SessionClassMethods): if len(primary_key_identity) != len(mapper.primary_key): raise sa_exc.InvalidRequestError( "Incorrect number of values in identifier to formulate " - "primary key for query.get(); primary key columns are %s" - % ",".join("'%s'" % c for c in mapper.primary_key) + "primary key for session.get(); primary key columns " + "are %s" % ",".join("'%s'" % c for c in mapper.primary_key) ) if is_dict: @@ -2817,7 +2822,7 @@ class Session(_SessionClassMethods): util.raise_( sa_exc.InvalidRequestError( "Incorrect names of values in identifier to formulate " - "primary key for query.get(); primary key attribute " + "primary key for session.get(); primary key attribute " "names are %s" % ",".join( "'%s'" % prop.key diff --git a/lib/sqlalchemy/testing/warnings.py b/lib/sqlalchemy/testing/warnings.py index dc1286295c..8753399f3f 100644 --- a/lib/sqlalchemy/testing/warnings.py +++ b/lib/sqlalchemy/testing/warnings.py @@ -68,7 +68,6 @@ def setup_filters(): # # ORM Query # - r"The Query\.get\(\) method", r"The Query.with_polymorphic\(\) method is considered " "legacy as of the 1.x series", # diff --git a/test/aaa_profiling/test_orm.py b/test/aaa_profiling/test_orm.py index e9771fc673..5d081b933e 100644 --- a/test/aaa_profiling/test_orm.py +++ b/test/aaa_profiling/test_orm.py @@ -88,7 +88,7 @@ class MergeTest(NoCache, fixtures.MappedTest): sess = fixture_session() sess2 = fixture_session() - p1 = sess.query(Parent).get(1) + p1 = sess.get(Parent, 1) p1.children # down from 185 on this this is a small slice of a usually @@ -117,7 +117,7 @@ class MergeTest(NoCache, fixtures.MappedTest): sess = fixture_session() sess2 = fixture_session() - p1 = sess.query(Parent).get(1) + p1 = sess.get(Parent, 1) p1.children # preloading of collection took this down from 1728 to 1192 diff --git a/test/ext/test_associationproxy.py b/test/ext/test_associationproxy.py index 258ecb90c4..331213ffea 100644 --- a/test/ext/test_associationproxy.py +++ b/test/ext/test_associationproxy.py @@ -260,7 +260,7 @@ class _CollectionOperations(fixtures.MappedTest): self.session.flush() id_, type_ = obj.id, type(obj) self.session.expunge_all() - return self.session.query(type_).get(id_) + return self.session.get(type_, id_) def _test_sequence_ops(self): Parent, Child = self.classes("Parent", "Child") @@ -1009,7 +1009,7 @@ class ScalarTest(fixtures.MappedTest): session.flush() id_, type_ = obj.id, type(obj) session.expunge_all() - return session.query(type_).get(id_) + return session.get(type_, id_) p = Parent("p") @@ -1199,7 +1199,7 @@ class LazyLoadTest(fixtures.MappedTest): self.session.flush() id_, type_ = obj.id, type(obj) self.session.expunge_all() - return self.session.query(type_).get(id_) + return self.session.get(type_, id_) def test_lazy_list(self): Parent, Child = self.classes("Parent", "Child") diff --git a/test/ext/test_baked.py b/test/ext/test_baked.py index d3e6455b23..0fa6666429 100644 --- a/test/ext/test_baked.py +++ b/test/ext/test_baked.py @@ -223,7 +223,7 @@ class LikeQueryTest(BakedTest): self.assert_sql_count(testing.db, go, 1) - u1 = sess.query(User).get(7) # noqa + u1 = sess.get(User, 7) # noqa def go(): u2 = bq(sess).get(7) @@ -314,7 +314,7 @@ class LikeQueryTest(BakedTest): self.assert_sql_count(testing.db, go, 1) - u1 = sess.query(AddressUser).get((10, None)) # noqa + u1 = sess.get(AddressUser, (10, None)) # noqa def go(): u2 = bq(sess).get((10, None)) diff --git a/test/ext/test_horizontal_shard.py b/test/ext/test_horizontal_shard.py index 6e6265ab18..162d961500 100644 --- a/test/ext/test_horizontal_shard.py +++ b/test/ext/test_horizontal_shard.py @@ -207,25 +207,35 @@ class ShardTest(object): def test_get(self): sess = self._fixture_data() - tokyo = sess.query(WeatherLocation).get(1) + tokyo = sess.get(WeatherLocation, 1) eq_(tokyo.city, "Tokyo") - newyork = sess.query(WeatherLocation).get(2) + newyork = sess.get(WeatherLocation, 2) eq_(newyork.city, "New York") - t2 = sess.query(WeatherLocation).get(1) + t2 = sess.get(WeatherLocation, 1) is_(t2, tokyo) def test_get_explicit_shard(self): sess = self._fixture_data() - tokyo = sess.query(WeatherLocation).set_shard("europe").get(1) + tokyo = ( + sess.query(WeatherLocation) + .set_shard("europe") + .where(WeatherLocation.id == 1) + .first() + ) is_(tokyo, None) - newyork = sess.query(WeatherLocation).set_shard("north_america").get(2) + newyork = ( + sess.query(WeatherLocation) + .set_shard("north_america") + .where(WeatherLocation.id == 2) + .first() + ) eq_(newyork.city, "New York") # now it found it - t2 = sess.query(WeatherLocation).get(1) + t2 = sess.get(WeatherLocation, 1) eq_(t2.city, "Tokyo") def test_query_explicit_shard_via_bind_opts(self): @@ -294,7 +304,7 @@ class ShardTest(object): tokyo.city # reload 'city' attribute on tokyo sess.expire_all() - t = sess.query(WeatherLocation).get(tokyo.id) + t = sess.get(WeatherLocation, tokyo.id) eq_(t.city, tokyo.city) eq_(t.reports[0].temperature, 80.0) north_american_cities = sess.query(WeatherLocation).filter( diff --git a/test/ext/test_hybrid.py b/test/ext/test_hybrid.py index 40cca52662..ad8d92b9b3 100644 --- a/test/ext/test_hybrid.py +++ b/test/ext/test_hybrid.py @@ -953,7 +953,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL): Person = self.classes.Person s = fixture_session() - jill = s.query(Person).get(3) + jill = s.get(Person, 3) s.query(Person).update( {Person.first_name: "moonbeam"}, synchronize_session="evaluate" @@ -977,7 +977,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL): Person = self.classes.Person s = fixture_session() - jill = s.query(Person).get(3) + jill = s.get(Person, 3) s.query(Person).update( {Person.fname2: "moonbeam"}, synchronize_session="evaluate" @@ -1001,7 +1001,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL): Person = self.classes.Person s = fixture_session() - jill = s.query(Person).get(3) + jill = s.get(Person, 3) s.query(Person).update( {Person.fname: "moonbeam"}, synchronize_session="evaluate" @@ -1025,7 +1025,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL): Person = self.classes.Person s = fixture_session() - jill = s.query(Person).get(3) + jill = s.get(Person, 3) s.query(Person).update( {Person.fname2: "moonbeam"}, synchronize_session="fetch" @@ -1049,7 +1049,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL): Person = self.classes.Person s = fixture_session() - jill = s.query(Person).get(3) + jill = s.get(Person, 3) s.query(Person).update( {Person.fname: "moonbeam"}, synchronize_session="fetch" @@ -1073,7 +1073,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL): Person = self.classes.Person s = fixture_session() - jill = s.query(Person).get(3) + jill = s.get(Person, 3) s.query(Person).update( {Person.name: "moonbeam sunshine"}, synchronize_session="evaluate" @@ -1094,7 +1094,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL): Person = self.classes.Person s = fixture_session() - jill = s.query(Person).get(3) + jill = s.get(Person, 3) s.query(Person).update( {Person.name: "moonbeam sunshine"}, synchronize_session="fetch" @@ -1115,7 +1115,7 @@ class BulkUpdateTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL): Person = self.classes.Person s = fixture_session() - jill = s.query(Person).get(3) + jill = s.get(Person, 3) s.query(Person).update( {Person.uname: "moonbeam sunshine"}, synchronize_session="evaluate" diff --git a/test/ext/test_orderinglist.py b/test/ext/test_orderinglist.py index 6fa559ee37..031613bc4d 100644 --- a/test/ext/test_orderinglist.py +++ b/test/ext/test_orderinglist.py @@ -176,7 +176,7 @@ class OrderingListTest(fixtures.MappedTest): session.expunge_all() del s1 - srt = session.query(Slide).get(id_) + srt = session.get(Slide, id_) self.assert_(srt.bullets) self.assert_(len(srt.bullets) == 4) @@ -241,7 +241,7 @@ class OrderingListTest(fixtures.MappedTest): session.expunge_all() del s1 - srt = session.query(Slide).get(id_) + srt = session.get(Slide, id_) self.assert_(srt.bullets) self.assert_(len(srt.bullets) == 5) @@ -255,7 +255,7 @@ class OrderingListTest(fixtures.MappedTest): session.flush() session.expunge_all() - srt = session.query(Slide).get(id_) + srt = session.get(Slide, id_) titles = ["s1/b1", "s1/b2", "s1/b100", "s1/b4", "raw", "raw2"] found = [b.text for b in srt.bullets] eq_(titles, found) @@ -298,7 +298,7 @@ class OrderingListTest(fixtures.MappedTest): session.expunge_all() del s1 - srt = session.query(Slide).get(id_) + srt = session.get(Slide, id_) self.assert_(srt.bullets) self.assert_(len(srt.bullets) == 6) @@ -347,7 +347,7 @@ class OrderingListTest(fixtures.MappedTest): session.expunge_all() del s1 - srt = session.query(Slide).get(id_) + srt = session.get(Slide, id_) self.assert_(srt.bullets) self.assert_(len(srt.bullets) == 3) @@ -385,7 +385,7 @@ class OrderingListTest(fixtures.MappedTest): session.flush() session.expunge_all() - srt = session.query(Slide).get(id_) + srt = session.get(Slide, id_) self.assert_(srt.bullets) self.assert_(len(srt.bullets) == 3) diff --git a/test/ext/test_serializer.py b/test/ext/test_serializer.py index 2e9225419f..03ad96b3cc 100644 --- a/test/ext/test_serializer.py +++ b/test/ext/test_serializer.py @@ -179,7 +179,7 @@ class SerializeTest(AssertsCompiledSQL, fixtures.MappedTest): .scalar(), 1, ) - u1 = Session.query(User).get(8) + u1 = Session.get(User, 8) q = ( Session.query(Address) .filter(Address.user == u1) diff --git a/test/orm/test_assorted_eager.py b/test/orm/test_assorted_eager.py index a97538da64..f6d10d8e65 100644 --- a/test/orm/test_assorted_eager.py +++ b/test/orm/test_assorted_eager.py @@ -767,7 +767,7 @@ class EagerTest5(fixtures.MappedTest): # this eager load sets up an AliasedClauses for the "comment" # relationship, then stores it in clauses_by_lead_mapper[mapper for # Derived] - d = sess.query(Derived).get("uid1") + d = sess.get(Derived, "uid1") sess.expunge_all() assert len([c for c in d.comments]) == 1 @@ -775,7 +775,7 @@ class EagerTest5(fixtures.MappedTest): # relationship, and should store it in clauses_by_lead_mapper[mapper # for DerivedII]. the bug was that the previous AliasedClause create # prevented this population from occurring. - d2 = sess.query(DerivedII).get("uid2") + d2 = sess.get(DerivedII, "uid2") sess.expunge_all() # object is not in the session; therefore the lazy load cant trigger @@ -918,7 +918,7 @@ class EagerTest6(fixtures.MappedTest): sess.add(d) sess.flush() sess.expunge_all() - x = sess.query(Design).get(1) + x = sess.get(Design, 1) x.inheritedParts @@ -1036,10 +1036,10 @@ class EagerTest7(fixtures.MappedTest): invoice_id = i1.invoice_id session.expunge_all() - c = session.query(Company).get(company_id) + c = session.get(Company, company_id) session.expunge_all() - i = session.query(Invoice).get(invoice_id) + i = session.get(Invoice, invoice_id) def go(): eq_(c, i.company) diff --git a/test/orm/test_bind.py b/test/orm/test_bind.py index 4f6f4c4fbb..aa41ad5548 100644 --- a/test/orm/test_bind.py +++ b/test/orm/test_bind.py @@ -527,7 +527,7 @@ class SessionBindTest(fixtures.MappedTest): f = Foo() sess.add(f) sess.flush() - assert sess.query(Foo).get(f.id) is f + assert sess.get(Foo, f.id) is f finally: if hasattr(bind, "close"): bind.close() diff --git a/test/orm/test_bulk.py b/test/orm/test_bulk.py index b69d8263a6..802cdfac5f 100644 --- a/test/orm/test_bulk.py +++ b/test/orm/test_bulk.py @@ -536,7 +536,7 @@ class BulkUDTestAltColKeys(BulkTest, fixtures.MappedTest): s.add(Person(id=5, personname="thename")) s.commit() - p = s.query(Person).get(5) + p = s.get(Person, 5) with self.sql_execution_asserter(testing.db) as asserter: p.personname = "newname" s.bulk_save_objects([p]) diff --git a/test/orm/test_collection.py b/test/orm/test_collection.py index 81ace4a98c..3473dcf50b 100644 --- a/test/orm/test_collection.py +++ b/test/orm/test_collection.py @@ -1874,7 +1874,7 @@ class DictHelpersTest(OrderedDictFixture, fixtures.MappedTest): pid = p.id session.expunge_all() - p = session.query(Parent).get(pid) + p = session.get(Parent, pid) eq_(set(p.children.keys()), set(["foo", "bar"])) cid = p.children["foo"].id @@ -1886,7 +1886,7 @@ class DictHelpersTest(OrderedDictFixture, fixtures.MappedTest): session.flush() session.expunge_all() - p = session.query(Parent).get(pid) + p = session.get(Parent, pid) self.assert_(set(p.children.keys()) == set(["foo", "bar"])) self.assert_(p.children["foo"].id != cid) @@ -1897,7 +1897,7 @@ class DictHelpersTest(OrderedDictFixture, fixtures.MappedTest): session.flush() session.expunge_all() - p = session.query(Parent).get(pid) + p = session.get(Parent, pid) self.assert_( len(list(collections.collection_adapter(p.children))) == 2 ) @@ -1912,7 +1912,7 @@ class DictHelpersTest(OrderedDictFixture, fixtures.MappedTest): session.flush() session.expunge_all() - p = session.query(Parent).get(pid) + p = session.get(Parent, pid) self.assert_( len(list(collections.collection_adapter(p.children))) == 1 ) @@ -1924,7 +1924,7 @@ class DictHelpersTest(OrderedDictFixture, fixtures.MappedTest): session.flush() session.expunge_all() - p = session.query(Parent).get(pid) + p = session.get(Parent, pid) self.assert_( len(list(collections.collection_adapter(p.children))) == 0 ) @@ -1960,7 +1960,7 @@ class DictHelpersTest(OrderedDictFixture, fixtures.MappedTest): pid = p.id session.expunge_all() - p = session.query(Parent).get(pid) + p = session.get(Parent, pid) self.assert_( set(p.children.keys()) == set([("foo", "1"), ("foo", "2")]) @@ -1974,7 +1974,7 @@ class DictHelpersTest(OrderedDictFixture, fixtures.MappedTest): session.flush() session.expunge_all() - p = session.query(Parent).get(pid) + p = session.get(Parent, pid) self.assert_( set(p.children.keys()) == set([("foo", "1"), ("foo", "2")]) @@ -2223,7 +2223,7 @@ class CustomCollectionsTest(fixtures.MappedTest): sess.add(f) sess.flush() sess.expunge_all() - f = sess.query(Foo).get(f.col1) + f = sess.get(Foo, f.col1) assert len(list(f.bars)) == 2 f.bars.clear() @@ -2266,7 +2266,7 @@ class CustomCollectionsTest(fixtures.MappedTest): sess.add(f) sess.flush() sess.expunge_all() - f = sess.query(Foo).get(f.col1) + f = sess.get(Foo, f.col1) assert len(list(f.bars)) == 2 f.bars.clear() @@ -2308,7 +2308,7 @@ class CustomCollectionsTest(fixtures.MappedTest): sess.add(f) sess.flush() sess.expunge_all() - f = sess.query(Foo).get(f.col1) + f = sess.get(Foo, f.col1) assert len(list(f.bars)) == 2 strongref = list(f.bars.values()) @@ -2319,7 +2319,7 @@ class CustomCollectionsTest(fixtures.MappedTest): f.bars["a"] = Bar("a") sess.flush() sess.expunge_all() - f = sess.query(Foo).get(f.col1) + f = sess.get(Foo, f.col1) assert len(list(f.bars)) == 2 replaced = set([id(b) for b in list(f.bars.values())]) @@ -2564,7 +2564,7 @@ class CustomCollectionsTest(fixtures.MappedTest): sess.flush() sess.expunge_all() - p2 = sess.query(Parent).get(p1.col1) + p2 = sess.get(Parent, p1.col1) o = list(p2.children) assert len(o) == 3 diff --git a/test/orm/test_compile.py b/test/orm/test_compile.py index 73ca571cb7..343881efc5 100644 --- a/test/orm/test_compile.py +++ b/test/orm/test_compile.py @@ -232,7 +232,7 @@ class CompileTest(fixtures.MappedTest): }, ) sess = Session(connection) - assert sess.query(Node).get(1).names == [] + assert sess.get(Node, 1).names == [] def test_conflicting_backref_two(self): meta = MetaData() diff --git a/test/orm/test_composites.py b/test/orm/test_composites.py index 1dc139df98..55a78ffcbc 100644 --- a/test/orm/test_composites.py +++ b/test/orm/test_composites.py @@ -123,7 +123,7 @@ class PointTest(fixtures.MappedTest, testing.AssertsCompiledSQL): g1 = sess.query(Graph).first() sess.close() - g = sess.query(Graph).get(g1.id) + g = sess.get(Graph, g1.id) eq_( [(e.start, e.end) for e in g.edges], [(Point(3, 4), Point(5, 6)), (Point(14, 5), Point(2, 7))], @@ -142,7 +142,7 @@ class PointTest(fixtures.MappedTest, testing.AssertsCompiledSQL): g.edges[1].end = Point(18, 4) sess.commit() - e = sess.query(Edge).get(g.edges[1].id) + e = sess.get(Edge, g.edges[1].id) eq_(e.end, Point(18, 4)) def test_not_none(self): @@ -178,10 +178,8 @@ class PointTest(fixtures.MappedTest, testing.AssertsCompiledSQL): sess.close() def go(): - g2 = ( - sess.query(Graph) - .options(sa.orm.joinedload(Graph.edges)) - .get(g.id) + g2 = sess.get( + Graph, g.id, options=[sa.orm.joinedload(Graph.edges)] ) eq_( @@ -407,7 +405,7 @@ class PointTest(fixtures.MappedTest, testing.AssertsCompiledSQL): sess.add(g) sess.commit() - g2 = sess.query(Graph).get(1) + g2 = sess.get(Graph, 1) assert g2.edges[-1].start.x is None assert g2.edges[-1].start.y is None @@ -582,7 +580,7 @@ class PrimaryKeyTest(fixtures.MappedTest): sess = self._fixture() g = sess.query(Graph).first() - g2 = sess.query(Graph).get([g.id, g.version_id]) + g2 = sess.get(Graph, [g.id, g.version_id]) eq_(g.version, g2.version) def test_get_by_composite(self): @@ -591,7 +589,7 @@ class PrimaryKeyTest(fixtures.MappedTest): sess = self._fixture() g = sess.query(Graph).first() - g2 = sess.query(Graph).get(Version(g.id, g.version_id)) + g2 = sess.get(Graph, Version(g.id, g.version_id)) eq_(g.version, g2.version) def test_pk_mutation(self): @@ -603,7 +601,7 @@ class PrimaryKeyTest(fixtures.MappedTest): g.version = Version(2, 1) sess.commit() - g2 = sess.query(Graph).get(Version(2, 1)) + g2 = sess.get(Graph, Version(2, 1)) eq_(g.version, g2.version) @testing.fails_on_everything_except("sqlite") diff --git a/test/orm/test_cycles.py b/test/orm/test_cycles.py index c75f2a549a..9d0369191e 100644 --- a/test/orm/test_cycles.py +++ b/test/orm/test_cycles.py @@ -120,7 +120,7 @@ class SelfReferentialTest(fixtures.MappedTest): sess.add(c1) sess.flush() sess.expunge_all() - c1 = sess.query(C1).get(c1.c1) + c1 = sess.get(C1, c1.c1) c2 = C1() c2.parent = c1 sess.add(c2) @@ -1488,8 +1488,8 @@ class SelfReferentialPostUpdateTest2(fixtures.MappedTest): session.flush() session.expunge_all() - f1 = session.query(A).get(f1.id) - f2 = session.query(A).get(f2.id) + f1 = session.get(A, f1.id) + f2 = session.get(A, f2.id) assert f2.foo is f1 diff --git a/test/orm/test_dataclasses_py3k.py b/test/orm/test_dataclasses_py3k.py index 14132e5d72..a9b0ba58df 100644 --- a/test/orm/test_dataclasses_py3k.py +++ b/test/orm/test_dataclasses_py3k.py @@ -195,7 +195,7 @@ class DataclassesTest(fixtures.MappedTest, testing.AssertsCompiledSQL): session.commit() with fixture_session() as session: - a = session.query(Account).get(42) + a = session.get(Account, 42) self.check_data_fixture(a) def test_appending_to_relationship(self): @@ -208,7 +208,7 @@ class DataclassesTest(fixtures.MappedTest, testing.AssertsCompiledSQL): account.add_widget(Widget("Xyzzy")) with Session(testing.db) as session: - a = session.query(Account).get(42) + a = session.get(Account, 42) eq_(a.widget_count, 3) eq_(len(a.widgets), 3) diff --git a/test/orm/test_deferred.py b/test/orm/test_deferred.py index e44d6ec869..bfdfb00b7f 100644 --- a/test/orm/test_deferred.py +++ b/test/orm/test_deferred.py @@ -131,7 +131,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): ) sess = fixture_session() - o1 = sess.query(Order).get(1) + o1 = sess.get(Order, 1) eq_(o1.description, "order 1") def test_unsaved_2(self): @@ -207,7 +207,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): ) sess = fixture_session() - o2 = sess.query(Order).get(2) + o2 = sess.get(Order, 2) o2.isopen = 1 sess.flush() @@ -290,7 +290,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): }, ) sess = fixture_session(autoflush=False) - o = sess.query(Order).get(3) + o = sess.get(Order, 3) assert "userident" not in o.__dict__ o.description = "somenewdescription" eq_(o.description, "somenewdescription") @@ -322,7 +322,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): ) sess = fixture_session() - o2 = sess.query(Order).get(3) + o2 = sess.get(Order, 3) # this will load the group of attributes eq_(o2.description, "order 3") diff --git a/test/orm/test_deprecations.py b/test/orm/test_deprecations.py index 611754bdb3..101dc693c7 100644 --- a/test/orm/test_deprecations.py +++ b/test/orm/test_deprecations.py @@ -138,6 +138,8 @@ query_wparent_dep = ( r"The Query.with_parent\(\) method is considered legacy as of the 1.x" ) +query_get_dep = r"The Query.get\(\) method is considered legacy as of the 1.x" + sef_dep = ( r"The Query.select_entity_from\(\) method is considered " "legacy as of the 1.x" @@ -158,6 +160,107 @@ def _aliased_join_deprecation(arg=None): ) +class GetTest(QueryTest): + def test_get(self): + User = self.classes.User + + s = fixture_session() + with assertions.expect_deprecated_20(query_get_dep): + assert s.query(User).get(19) is None + with assertions.expect_deprecated_20(query_get_dep): + u = s.query(User).get(7) + with assertions.expect_deprecated_20(query_get_dep): + u2 = s.query(User).get(7) + assert u is u2 + s.expunge_all() + with assertions.expect_deprecated_20(query_get_dep): + u2 = s.query(User).get(7) + assert u is not u2 + + def test_loader_options(self): + User = self.classes.User + + s = fixture_session() + + with assertions.expect_deprecated_20(query_get_dep): + u1 = s.query(User).options(joinedload(User.addresses)).get(8) + eq_(len(u1.__dict__["addresses"]), 3) + + def test_no_criterion_when_already_loaded(self): + """test that get()/load() does not use preexisting filter/etc. + criterion, even when we're only using the identity map.""" + + User, Address = self.classes.User, self.classes.Address + + s = fixture_session() + + s.get(User, 7) + + q = s.query(User).join(User.addresses).filter(Address.user_id == 8) + with assertions.expect_deprecated_20(query_get_dep): + with assertions.expect_raises_message( + sa_exc.InvalidRequestError, + r"Query.get\(\) being called on a Query with existing " + "criterion.", + ): + q.get(7) + + def test_no_criterion(self): + """test that get()/load() does not use preexisting filter/etc. + criterion""" + + User, Address = self.classes.User, self.classes.Address + + s = fixture_session() + + q = s.query(User).join(User.addresses).filter(Address.user_id == 8) + + with assertions.expect_deprecated_20(query_get_dep): + with assertions.expect_raises_message( + sa_exc.InvalidRequestError, + r"Query.get\(\) being called on a Query with existing " + "criterion.", + ): + q.get(7) + + with assertions.expect_deprecated_20(query_get_dep): + with assertions.expect_raises_message( + sa_exc.InvalidRequestError, + r"Query.get\(\) being called on a Query with existing " + "criterion.", + ): + s.query(User).filter(User.id == 7).get(19) + + # order_by()/get() doesn't raise + with assertions.expect_deprecated_20(query_get_dep): + s.query(User).order_by(User.id).get(8) + + def test_get_against_col(self): + User = self.classes.User + + s = fixture_session() + + with assertions.expect_deprecated_20(query_get_dep): + with assertions.expect_raises_message( + sa_exc.InvalidRequestError, + r"get\(\) can only be used against a single mapped class.", + ): + s.query(User.id).get(5) + + def test_only_full_mapper_zero(self): + User, Address = self.classes.User, self.classes.Address + + s = fixture_session() + q = s.query(User, Address) + + with assertions.expect_deprecated_20(query_get_dep): + with assertions.expect_raises_message( + sa_exc.InvalidRequestError, + r"get\(\) can only be used against a single mapped class.", + ): + q.get(5) + + class CustomJoinTest(QueryTest): run_setup_mappers = None @@ -3048,7 +3151,7 @@ class DeprecatedMapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): m.add_property("name", synonym("_name")) sess = fixture_session(autocommit=False) - assert sess.query(User).get(7) + assert sess.get(User, 7) u = sess.query(User).filter_by(name="jack").one() @@ -3507,7 +3610,7 @@ class NonPrimaryRelationshipLoaderTest(_fixtures.FixtureTest): self.assert_sql_count(testing.db, go, count) sess = fixture_session() - user = sess.query(User).get(7) + user = sess.get(User, 7) closed_mapper = User.closed_orders.entity open_mapper = User.open_orders.entity @@ -8239,7 +8342,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL): User, Address = self.classes.User, self.classes.Address sess = fixture_session() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) with assertions.expect_deprecated_20(query_wparent_dep): q = sess.query(Address).select_from(Address).with_parent(u1) self.assert_compile( @@ -8255,7 +8358,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL): User, Address = self.classes.User, self.classes.Address sess = fixture_session() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) with assertions.expect_deprecated_20(query_wparent_dep): q = sess.query(User, Address).with_parent( u1, User.addresses, from_entity=Address @@ -8275,7 +8378,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL): User, Address = self.classes.User, self.classes.Address sess = fixture_session() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) a1 = aliased(Address) with assertions.expect_deprecated_20(query_wparent_dep): q = sess.query(a1).with_parent(u1) @@ -8293,7 +8396,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL): User, Address = self.classes.User, self.classes.Address sess = fixture_session() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) a1 = aliased(Address) with assertions.expect_deprecated_20(query_wparent_dep): q = sess.query(a1).with_parent(u1, User.addresses) @@ -8311,7 +8414,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL): User, Address = self.classes.User, self.classes.Address sess = fixture_session() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) a1 = aliased(Address) a2 = aliased(Address) with assertions.expect_deprecated_20(query_wparent_dep): @@ -8335,7 +8438,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL): User, Address = self.classes.User, self.classes.Address sess = fixture_session() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) a1 = aliased(Address) a2 = aliased(Address) with assertions.expect_deprecated_20(query_wparent_dep): diff --git a/test/orm/test_dynamic.py b/test/orm/test_dynamic.py index 8479152bfa..8efd452382 100644 --- a/test/orm/test_dynamic.py +++ b/test/orm/test_dynamic.py @@ -236,7 +236,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): User, Address = self._user_address_fixture() sess = fixture_session() - u = sess.query(User).get(8) + u = sess.get(User, 8) sess.expunge(u) assert_raises( orm_exc.DetachedInstanceError, @@ -253,7 +253,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): User, Address = self._user_address_fixture() sess = fixture_session() - u = sess.query(User).get(8) + u = sess.get(User, 8) sess.expunge(u) with testing.expect_warnings( @@ -332,7 +332,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): def test_order_by(self): User, Address = self._user_address_fixture() sess = fixture_session() - u = sess.query(User).get(8) + u = sess.get(User, 8) eq_( list(u.addresses.order_by(desc(Address.email_address))), [ @@ -350,7 +350,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): ) sess = fixture_session() - u = sess.query(User).get(8) + u = sess.get(User, 8) with self.sql_execution_asserter() as asserter: for i in range(3): @@ -384,7 +384,7 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): ) sess = fixture_session() - u = sess.query(User).get(8) + u = sess.get(User, 8) eq_( list(u.addresses), [ @@ -442,14 +442,14 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL): self.mapper_registry.map_imperatively(User, users) sess = fixture_session() - ad = sess.query(Address).get(1) + ad = sess.get(Address, 1) def go(): ad.user = None self.assert_sql_count(testing.db, go, 0) sess.flush() - u = sess.query(User).get(7) + u = sess.get(User, 7) assert ad not in u.addresses def test_no_count(self): @@ -708,7 +708,7 @@ class UOWTest( ), # noqa 0, ) - u1 = sess.query(User).get(u1.id) + u1 = sess.get(User, u1.id) u1.addresses.append(a1) sess.flush() diff --git a/test/orm/test_eager_relations.py b/test/orm/test_eager_relations.py index c235edadfa..32abc3b31c 100644 --- a/test/orm/test_eager_relations.py +++ b/test/orm/test_eager_relations.py @@ -183,7 +183,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() - user = sess.query(User).get(7) + user = sess.get(User, 7) assert getattr(User, "addresses").hasparent( sa.orm.attributes.instance_state(user.addresses[0]), optimistic=True, @@ -488,7 +488,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): eq_(q.all(), [User(id=7, addresses=[Address(id=1)])]) sess.expunge_all() - u = sess.query(User).get(7) + u = sess.get(User, 7) def go(): eq_(u.addresses[0].user_id, 7) @@ -524,7 +524,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): sess.expunge_all() def go(): - u = sess.query(User).get(8) + u = sess.get(User, 8) eq_( User( id=8, @@ -1871,7 +1871,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): def go(): a = q.filter(addresses.c.id == 1).one() is_not(a.user, None) - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) is_(a.user, u1) self.assert_sql_count(testing.db, go, 1) @@ -3810,7 +3810,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): def test_runs_query_on_refresh(self): User, Address, sess = self._eager_config_fixture() - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) assert "addresses" in u1.__dict__ sess.expire(u1) @@ -3848,7 +3848,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): ) sess = fixture_session(autoflush=False) - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) assert "addresses" in u1.__dict__ sess.expire(u1) @@ -3870,7 +3870,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): # out an existing collection to function correctly with # populate_existing. User, Address, sess = self._eager_config_fixture() - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) u1.addresses[2].email_address = "foofoo" del u1.addresses[1] u1 = sess.query(User).populate_existing().filter_by(id=8).one() @@ -3893,7 +3893,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): def test_loads_second_level_collection_to_scalar(self): User, Address, Dingaling, sess = self._collection_to_scalar_fixture() - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) a1 = Address() u1.addresses.append(a1) a2 = u1.addresses[0] @@ -3913,7 +3913,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): def test_loads_second_level_collection_to_collection(self): User, Order, Item, sess = self._collection_to_collection_fixture() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) u1.orders o1 = Order() u1.orders.append(o1) diff --git a/test/orm/test_events.py b/test/orm/test_events.py index 297dfd2324..7d263de62f 100644 --- a/test/orm/test_events.py +++ b/test/orm/test_events.py @@ -777,9 +777,9 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): sess.add(u) sess.flush() sess.expire(u) - u = sess.query(User).get(u.id) + u = sess.get(User, u.id) sess.expunge_all() - u = sess.query(User).get(u.id) + u = sess.get(User, u.id) u.name = "u1 changed" sess.flush() sess.delete(u) @@ -903,9 +903,9 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): am = AdminUser(name="au1", email_address="au1@e1") sess.add(am) sess.flush() - am = sess.query(AdminUser).populate_existing().get(am.id) + am = sess.get(AdminUser, am.id, populate_existing=True) sess.expunge_all() - am = sess.query(AdminUser).get(am.id) + am = sess.get(AdminUser, am.id) am.name = "au1 changed" sess.flush() sess.delete(am) @@ -971,9 +971,9 @@ class MapperEventsTest(_RemoveListeners, _fixtures.FixtureTest): am = AdminUser(name="au1", email_address="au1@e1") sess.add(am) sess.flush() - am = sess.query(AdminUser).populate_existing().get(am.id) + am = sess.get(AdminUser, am.id, populate_existing=True) sess.expunge_all() - am = sess.query(AdminUser).get(am.id) + am = sess.get(AdminUser, am.id) am.name = "au1 changed" sess.flush() sess.delete(am) diff --git a/test/orm/test_expire.py b/test/orm/test_expire.py index d9204db96c..c2fec626bc 100644 --- a/test/orm/test_expire.py +++ b/test/orm/test_expire.py @@ -50,7 +50,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) - u = sess.query(User).get(7) + u = sess.get(User, 7) assert len(u.addresses) == 1 u.name = "foo" del u.addresses[0] @@ -96,8 +96,8 @@ class ExpireTest(_fixtures.FixtureTest): s = fixture_session() - a1 = s.query(Address).get(2) - u1 = s.query(User).get(7) + a1 = s.get(Address, 2) + u1 = s.get(User, 7) a1.user = u1 s.expire(a1, ["user_id"]) @@ -110,7 +110,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(User, users) s = fixture_session() - u = s.query(User).get(7) + u = s.get(User, 7) s.expunge_all() assert_raises_message( @@ -125,11 +125,11 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(User, users) s = fixture_session(autocommit=False) - u = s.query(User).get(10) + u = s.get(User, 10) s.expire_all() def go(): - s.query(User).get(10) # get() refreshes + s.get(User, 10) # get() refreshes self.assert_sql_count(testing.db, go, 1) @@ -139,7 +139,7 @@ class ExpireTest(_fixtures.FixtureTest): self.assert_sql_count(testing.db, go, 0) def go(): - s.query(User).get(10) # expire flag reset, so not expired + s.get(User, 10) # expire flag reset, so not expired self.assert_sql_count(testing.db, go, 0) @@ -148,14 +148,14 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(User, users) s = fixture_session(autocommit=False) - u = s.query(User).get(10) + u = s.get(User, 10) s.expire_all() s.execute(users.delete().where(User.id == 10)) # object is gone, get() returns None, removes u from session assert u in s - assert s.query(User).get(10) is None + assert s.get(User, 10) is None assert u not in s # and expunges def test_refresh_on_deleted_raises(self): @@ -163,7 +163,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(User, users) s = fixture_session(autocommit=False) - u = s.query(User).get(10) + u = s.get(User, 10) s.expire_all() s.expire_all() @@ -184,12 +184,12 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(User, users) s = fixture_session(autocommit=False) - u = s.query(User).get(10) + u = s.get(User, 10) s.expire_all() s.execute(users.delete().where(User.id == 10)) # do a get()/remove u from session - assert s.query(User).get(10) is None + assert s.get(User, 10) is None assert u not in s s.rollback() @@ -241,7 +241,7 @@ class ExpireTest(_fixtures.FixtureTest): User, users, properties={"name": deferred(users.c.name)} ) s = fixture_session(autocommit=False) - u = s.query(User).get(10) + u = s.get(User, 10) assert "name" not in u.__dict__ s.execute(users.delete().where(User.id == 10)) @@ -273,7 +273,7 @@ class ExpireTest(_fixtures.FixtureTest): ) self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session(autoflush=True, autocommit=False) - u = s.query(User).get(8) + u = s.get(User, 8) adlist = u.addresses eq_( adlist, @@ -317,7 +317,7 @@ class ExpireTest(_fixtures.FixtureTest): ) self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session(autoflush=True, autocommit=False) - u = s.query(User).get(8) + u = s.get(User, 8) assert_raises_message( sa_exc.InvalidRequestError, "properties specified for refresh", @@ -331,12 +331,12 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(User, users) s = fixture_session() - u = s.query(User).get(7) + u = s.get(User, 7) s.expire(u) s.refresh(u) def go(): - u = s.query(User).get(7) + u = s.get(User, 7) eq_(u.name, "jack") self.assert_sql_count(testing.db, go, 0) @@ -347,7 +347,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autoflush=False) - u = sess.query(User).get(7) + u = sess.get(User, 7) sess.expire(u, attribute_names=["name"]) @@ -357,14 +357,14 @@ class ExpireTest(_fixtures.FixtureTest): self.assert_sql_count(testing.db, go, 0) sess.flush() sess.expunge_all() - assert sess.query(User).get(7).name == "somenewname" + assert sess.get(User, 7).name == "somenewname" def test_no_session(self): users, User = self.tables.users, self.classes.User self.mapper_registry.map_imperatively(User, users) sess = fixture_session() - u = sess.query(User).get(7) + u = sess.get(User, 7) sess.expire(u, attribute_names=["name"]) sess.expunge(u) @@ -390,7 +390,7 @@ class ExpireTest(_fixtures.FixtureTest): # occur during a flush() on an instance that was just inserted self.mapper_registry.map_imperatively(User, users) sess = fixture_session(autoflush=False) - u = sess.query(User).get(7) + u = sess.get(User, 7) sess.expire(u, attribute_names=["name"]) sess.expunge(u) @@ -406,7 +406,7 @@ class ExpireTest(_fixtures.FixtureTest): # are absent. ensure an error is raised. self.mapper_registry.map_imperatively(User, users) sess = fixture_session() - u = sess.query(User).get(7) + u = sess.get(User, 7) sess.expire(u, attribute_names=["name", "id"]) sess.expunge(u) @@ -423,7 +423,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session(autoflush=False) - o = sess.query(Order).get(3) + o = sess.get(Order, 3) sess.expire(o) o.description = "order 3 modified" @@ -475,7 +475,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session(autoflush=False) - o = sess.query(Order).get(3) + o = sess.get(Order, 3) sess.expire(o) sess.execute(orders.update(), dict(description="order 3 modified")) @@ -509,7 +509,7 @@ class ExpireTest(_fixtures.FixtureTest): ) self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session(autoflush=False) - u = s.query(User).get(8) + u = s.get(User, 8) assert u.addresses[0].email_address == "ed@wood.com" u.addresses[0].email_address = "someotheraddress" @@ -535,7 +535,7 @@ class ExpireTest(_fixtures.FixtureTest): ) self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session(autoflush=False) - u = s.query(User).get(8) + u = s.get(User, 8) assert u.addresses[0].email_address == "ed@wood.com" u.addresses[0].email_address = "someotheraddress" @@ -574,7 +574,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(Address, addresses) s = fixture_session(autoflush=False) - u = s.query(User).get(8) + u = s.get(User, 8) a = Address(id=12, email_address="foobar") u.addresses.append(a) @@ -606,7 +606,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() - u = sess.query(User).get(7) + u = sess.get(User, 7) sess.expire(u) assert "name" not in u.__dict__ @@ -641,7 +641,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() - u = sess.query(User).get(7) + u = sess.get(User, 7) sess.expire(u) assert "name" not in u.__dict__ @@ -690,7 +690,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) - u = sess.query(User).get(7) + u = sess.get(User, 7) a1 = u.addresses[0] eq_(a1.email_address, "jack@bean.com") @@ -837,7 +837,7 @@ class ExpireTest(_fixtures.FixtureTest): ) self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) - u = sess.query(User).get(8) + u = sess.get(User, 8) sess.expire(u, ["name", "addresses"]) u.addresses assert "name" not in u.__dict__ @@ -867,7 +867,7 @@ class ExpireTest(_fixtures.FixtureTest): ) self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() - u = sess.query(User).get(8) + u = sess.get(User, 8) sess.expire(u) u.id @@ -892,7 +892,7 @@ class ExpireTest(_fixtures.FixtureTest): ) self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() - u = sess.query(User).options(joinedload(User.addresses)).get(8) + u = sess.get(User, 8, options=[joinedload(User.addresses)]) sess.expire(u) u.id assert "addresses" in u.__dict__ @@ -917,7 +917,7 @@ class ExpireTest(_fixtures.FixtureTest): ) self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() - u = sess.query(User).get(8) + u = sess.get(User, 8) sess.expire(u) # here, the lazy loader will encounter the attribute already @@ -938,7 +938,7 @@ class ExpireTest(_fixtures.FixtureTest): ) sess = fixture_session() - u = sess.query(User).get(7) + u = sess.get(User, 7) assert "name" in u.__dict__ assert u.uname == u.name @@ -962,7 +962,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(Order, orders) sess = fixture_session(autoflush=False) - o = sess.query(Order).get(3) + o = sess.get(Order, 3) sess.expire(o, attribute_names=["description"]) assert "id" in o.__dict__ @@ -1031,7 +1031,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) - u = sess.query(User).get(8) + u = sess.get(User, 8) sess.expire(u, ["name", "addresses"]) assert "name" not in u.__dict__ @@ -1093,7 +1093,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) - u = sess.query(User).get(8) + u = sess.get(User, 8) sess.expire(u, ["name", "addresses"]) assert "name" not in u.__dict__ @@ -1147,7 +1147,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) - u = sess.query(User).get(8) + u = sess.get(User, 8) assert "name" in u.__dict__ u.addresses assert "addresses" in u.__dict__ @@ -1174,7 +1174,7 @@ class ExpireTest(_fixtures.FixtureTest): ) sess = fixture_session(autoflush=False) - o = sess.query(Order).get(3) + o = sess.get(Order, 3) sess.expire(o, ["description", "isopen"]) assert "isopen" not in o.__dict__ assert "description" not in o.__dict__ @@ -1206,7 +1206,7 @@ class ExpireTest(_fixtures.FixtureTest): sess.expunge_all() # same tests, using deferred at the options level - o = sess.query(Order).options(sa.orm.defer(Order.description)).get(3) + o = sess.get(Order, 3, options=[sa.orm.defer(Order.description)]) assert "description" not in o.__dict__ @@ -1262,7 +1262,7 @@ class ExpireTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session(autoflush=False) - u = sess.query(User).get(8) + u = sess.get(User, 8) assert len(u.addresses) == 3 sess.expire(u) assert "addresses" not in u.__dict__ @@ -1637,7 +1637,7 @@ class PolymorphicExpireTest(fixtures.MappedTest): Engineer = self.classes.Engineer sess = fixture_session(autoflush=False) - e1 = sess.query(Engineer).get(2) + e1 = sess.get(Engineer, 2) sess.expire(e1, attribute_names=["name"]) sess.expunge(e1) @@ -1652,7 +1652,7 @@ class PolymorphicExpireTest(fixtures.MappedTest): # same as test_no_instance_key, but the PK columns # are absent. ensure an error is raised. sess = fixture_session(autoflush=False) - e1 = sess.query(Engineer).get(2) + e1 = sess.get(Engineer, 2) sess.expire(e1, attribute_names=["name", "person_id"]) sess.expunge(e1) @@ -1887,7 +1887,7 @@ class RefreshTest(_fixtures.FixtureTest): }, ) s = fixture_session(autoflush=False) - u = s.query(User).get(7) + u = s.get(User, 7) u.name = "foo" a = Address() assert sa.orm.object_session(a) is None @@ -1922,7 +1922,7 @@ class RefreshTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(User, users) s = fixture_session() - u = s.query(User).get(7) + u = s.get(User, 7) s.expunge_all() assert_raises_message( sa_exc.InvalidRequestError, @@ -1941,8 +1941,8 @@ class RefreshTest(_fixtures.FixtureTest): s = fixture_session() - a1 = s.query(Address).get(2) - u1 = s.query(User).get(7) + a1 = s.get(Address, 2) + u1 = s.get(User, 7) a1.user = u1 s.refresh(a1, ["user_id"]) @@ -1955,7 +1955,7 @@ class RefreshTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(User, users) s = fixture_session() - u = s.query(User).get(7) + u = s.get(User, 7) s.expire(u) assert "name" not in u.__dict__ s.refresh(u) @@ -2014,13 +2014,13 @@ class RefreshTest(_fixtures.FixtureTest): ) s = fixture_session() - u = s.query(User).get(8) + u = s.get(User, 8) assert len(u.addresses) == 3 s.refresh(u) assert len(u.addresses) == 3 s = fixture_session() - u = s.query(User).get(8) + u = s.get(User, 8) assert len(u.addresses) == 3 s.expire(u) assert len(u.addresses) == 3 diff --git a/test/orm/test_froms.py b/test/orm/test_froms.py index d8da90d421..af3dd8a60f 100644 --- a/test/orm/test_froms.py +++ b/test/orm/test_froms.py @@ -3604,14 +3604,15 @@ class ExternalColumnsTest(QueryTest): self.mapper_registry.map_imperatively( Order, orders, properties={"address": relationship(Address)} ) # m2o + configure_mappers() sess = fixture_session() def go(): - o1 = ( - sess.query(Order) - .options(joinedload(Order.address).joinedload(Address.user)) - .get(1) + o1 = sess.get( + Order, + 1, + options=[joinedload(Order.address).joinedload(Address.user)], ) eq_(o1.address.user.count, 1) diff --git a/test/orm/test_inspect.py b/test/orm/test_inspect.py index dc732181bb..3cc7640cf0 100644 --- a/test/orm/test_inspect.py +++ b/test/orm/test_inspect.py @@ -584,7 +584,7 @@ class %s(SuperCls): s.flush() insp = inspect(u1) eq_(insp.identity, (u1.id,)) - is_(s.query(User).get(insp.identity), u1) + is_(s.get(User, insp.identity), u1) def test_is_instance(self): User = self.classes.User diff --git a/test/orm/test_lazy_relations.py b/test/orm/test_lazy_relations.py index 412637ec6a..6b6789f301 100644 --- a/test/orm/test_lazy_relations.py +++ b/test/orm/test_lazy_relations.py @@ -227,7 +227,7 @@ class LazyTest(_fixtures.FixtureTest): self.mapper_registry.map_imperatively(Address, addresses) sess = fixture_session() - user = sess.query(User).get(7) + user = sess.get(User, 7) assert getattr(User, "addresses").hasparent( attributes.instance_state(user.addresses[0]), optimistic=True ) @@ -651,7 +651,7 @@ class LazyTest(_fixtures.FixtureTest): self.assert_sql_count(testing.db, go, 15) sess = fixture_session() - user = sess.query(User).get(7) + user = sess.get(User, 7) closed_mapper = User.closed_orders.entity open_mapper = User.open_orders.entity @@ -762,7 +762,7 @@ class LazyTest(_fixtures.FixtureTest): ) # load user that is attached to the address - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) def go(): # lazy load of a1.user should get it from the session @@ -903,7 +903,7 @@ class LazyTest(_fixtures.FixtureTest): ) # load user that is attached to the address - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) def go(): # lazy load of a1.user should get it from the session @@ -936,7 +936,7 @@ class LazyTest(_fixtures.FixtureTest): assert a.user is not None - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) assert a.user is u1 @@ -1259,8 +1259,8 @@ class M2OGetTest(_fixtures.FixtureTest): sess.flush() sess.expunge_all() - ad2 = sess.query(Address).get(1) - ad3 = sess.query(Address).get(ad1.id) + ad2 = sess.get(Address, 1) + ad3 = sess.get(Address, ad1.id) def go(): # one lazy load diff --git a/test/orm/test_loading.py b/test/orm/test_loading.py index a835b2908c..050dd3a2d7 100644 --- a/test/orm/test_loading.py +++ b/test/orm/test_loading.py @@ -51,7 +51,7 @@ class InstanceProcessorTest(_fixtures.FixtureTest): Order(id=5, address=None), ], ), - s.query(User).populate_existing().get(7), + s.get(User, 7, populate_existing=True), ) self.assert_sql_count(testing.db, go, 1) diff --git a/test/orm/test_mapper.py b/test/orm/test_mapper.py index 7d9e6f9c38..af90da1ddb 100644 --- a/test/orm/test_mapper.py +++ b/test/orm/test_mapper.py @@ -280,7 +280,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): ) s = fixture_session() - u = s.query(User).get(7) + u = s.get(User, 7) eq_(u._name, "jack") eq_(u._id, 7) u2 = s.query(User).filter_by(user_name="jack").one() @@ -724,7 +724,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): m.add_property("addresses", relationship(Address)) sess = fixture_session(autocommit=False) - assert sess.query(User).get(7) + assert sess.get(User, 7) u = sess.query(User).filter_by(name="jack").one() @@ -926,8 +926,8 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): ) sess = fixture_session() - u1 = sess.query(User).get(7) - u2 = sess.query(User).get(8) + u1 = sess.get(User, 7) + u2 = sess.get(User, 8) # comparaison ops need to work a1 = sess.query(Address).filter(Address.user == u1).one() eq_(a1.id, 1) @@ -1193,7 +1193,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL): s = Session(testing.db) s.add(u1) s.commit() - assert s.query(NoBoolAllowed).get(u1.id) is u1 + assert s.get(NoBoolAllowed, u1.id) is u1 def test_we_dont_call_eq(self): class NoEqAllowed(object): diff --git a/test/orm/test_merge.py b/test/orm/test_merge.py index 3b97bd5a57..b07c26cb77 100644 --- a/test/orm/test_merge.py +++ b/test/orm/test_merge.py @@ -526,7 +526,7 @@ class MergeTest(_fixtures.FixtureTest): sess.flush() sess.expunge_all() - u2 = sess.query(User).get(7) + u2 = sess.get(User, 7) eq_( u2, @@ -672,7 +672,7 @@ class MergeTest(_fixtures.FixtureTest): # assert data was saved sess2 = fixture_session() - u2 = sess2.query(User).get(7) + u2 = sess2.get(User, 7) eq_( u2, User( @@ -714,7 +714,7 @@ class MergeTest(_fixtures.FixtureTest): # assert modified/merged data was saved with fixture_session() as sess: - u = sess.query(User).get(7) + u = sess.get(User, 7) eq_( u, User( @@ -774,7 +774,7 @@ class MergeTest(_fixtures.FixtureTest): eq_(load.called, 18) with fixture_session(expire_on_commit=False) as sess5: - u2 = sess5.query(User).get(u.id) + u2 = sess5.get(User, u.id) eq_(u2.name, "fred2") eq_(u2.addresses[1].email_address, "afafds") eq_(load.called, 21) @@ -908,7 +908,7 @@ class MergeTest(_fixtures.FixtureTest): eq_(load.called, 0) sess2 = fixture_session() - u2 = sess2.query(User).get(u.id) + u2 = sess2.get(User, u.id) eq_(load.called, 1) u.addresses[1].email_address = "addr 2 modified" @@ -917,7 +917,7 @@ class MergeTest(_fixtures.FixtureTest): eq_(load.called, 3) sess3 = fixture_session() - u3 = sess3.query(User).get(u.id) + u3 = sess3.get(User, u.id) eq_(load.called, 4) u.name = "also fred" @@ -1002,7 +1002,7 @@ class MergeTest(_fixtures.FixtureTest): eq_(load.called, 0) with fixture_session(expire_on_commit=False) as sess2: - o2 = sess2.query(Order).get(o.id) + o2 = sess2.get(Order, o.id) eq_(load.called, 1) o.items[1].description = "item 2 modified" @@ -1011,7 +1011,7 @@ class MergeTest(_fixtures.FixtureTest): eq_(load.called, 3) with fixture_session(expire_on_commit=False) as sess3: - o3 = sess3.query(Order).get(o.id) + o3 = sess3.get(Order, o.id) eq_(load.called, 4) o.description = "desc modified" @@ -1054,7 +1054,7 @@ class MergeTest(_fixtures.FixtureTest): eq_(load.called, 0) sess2 = fixture_session() - u2 = sess2.query(User).get(7) + u2 = sess2.get(User, 7) eq_(load.called, 1) u2.name = "fred2" u2.address.email_address = "hoho@lalala.com" @@ -1211,9 +1211,7 @@ class MergeTest(_fixtures.FixtureTest): sess.commit() sess2 = fixture_session() - u2 = ( - sess2.query(User).options(sa.orm.joinedload(User.addresses)).get(7) - ) + u2 = sess2.get(User, 7, options=[sa.orm.joinedload(User.addresses)]) sess3 = fixture_session() u3 = sess3.merge(u2, load=False) # noqa @@ -1252,7 +1250,7 @@ class MergeTest(_fixtures.FixtureTest): "mapped instances before merging with load=False." in str(e) ) - u2 = sess2.query(User).get(7) + u2 = sess2.get(User, 7) sess3 = fixture_session() u3 = sess3.merge(u2, load=False) # noqa @@ -1361,7 +1359,7 @@ class MergeTest(_fixtures.FixtureTest): with fixture_session() as sess2: eq_( - sess2.query(User).get(u2.id).addresses[0].email_address, + sess2.get(User, u2.id).addresses[0].email_address, "somenewaddress", ) @@ -1375,7 +1373,7 @@ class MergeTest(_fixtures.FixtureTest): sess2 = fixture_session() sess = fixture_session() - u = sess.query(User).get(7) + u = sess.get(User, 7) u.addresses.append(Address()) sess2 = fixture_session() try: @@ -1392,7 +1390,7 @@ class MergeTest(_fixtures.FixtureTest): sess2.flush() sess2.expunge_all() eq_( - sess2.query(User).get(u2.id).addresses[0].email_address, + sess2.get(User, u2.id).addresses[0].email_address, "somenewaddress", ) except sa.exc.InvalidRequestError as e: diff --git a/test/orm/test_naturalpks.py b/test/orm/test_naturalpks.py index fba335d285..c807564012 100644 --- a/test/orm/test_naturalpks.py +++ b/test/orm/test_naturalpks.py @@ -115,20 +115,20 @@ class NaturalPKTest(fixtures.MappedTest): sess.add(u1) sess.flush() - assert sess.query(User).get("jack") is u1 + assert sess.get(User, "jack") is u1 u1.username = "ed" sess.flush() def go(): - assert sess.query(User).get("ed") is u1 + assert sess.get(User, "ed") is u1 self.assert_sql_count(testing.db, go, 0) - assert sess.query(User).get("jack") is None + assert sess.get(User, "jack") is None sess.expunge_all() - u1 = sess.query(User).get("ed") + u1 = sess.get(User, "ed") eq_(User(username="ed", fullname="jack"), u1) def test_load_after_expire(self): @@ -141,7 +141,7 @@ class NaturalPKTest(fixtures.MappedTest): sess.add(u1) sess.flush() - assert sess.query(User).get("jack") is u1 + assert sess.get(User, "jack") is u1 sess.execute( users.update().values({User.username: "jack"}), dict(username="ed") @@ -154,8 +154,8 @@ class NaturalPKTest(fixtures.MappedTest): assert_raises(sa.orm.exc.ObjectDeletedError, getattr, u1, "username") sess.expunge_all() - assert sess.query(User).get("jack") is None - assert sess.query(User).get("ed").fullname == "jack" + assert sess.get(User, "jack") is None + assert sess.get(User, "ed").fullname == "jack" @testing.requires.returning def test_update_to_sql_expr(self): @@ -203,13 +203,13 @@ class NaturalPKTest(fixtures.MappedTest): sess.add(u1) sess.flush() - assert sess.query(User).get("jack") is u1 + assert sess.get(User, "jack") is u1 sess.expire(u1) u1.username = "ed" sess.flush() sess.expunge_all() - assert sess.query(User).get("ed").fullname == "jack" + assert sess.get(User, "ed").fullname == "jack" @testing.requires.on_update_cascade def test_onetomany_passive(self): @@ -244,7 +244,7 @@ class NaturalPKTest(fixtures.MappedTest): sess.add(u1) sess.flush() - assert sess.query(Address).get("jack1") is u1.addresses[0] + assert sess.get(Address, "jack1") is u1.addresses[0] u1.username = "ed" sess.flush() @@ -256,7 +256,7 @@ class NaturalPKTest(fixtures.MappedTest): sess.query(Address).all(), ) - u1 = sess.query(User).get("ed") + u1 = sess.get(User, "ed") u1.username = "jack" def go(): @@ -275,16 +275,16 @@ class NaturalPKTest(fixtures.MappedTest): username="jack", addresses=[Address(username="jack"), Address(username="jack")], ) - == sess.query(User).get("jack") + == sess.get(User, "jack") ) - u1 = sess.query(User).get("jack") + u1 = sess.get(User, "jack") u1.addresses = [] u1.username = "fred" sess.flush() sess.expunge_all() - assert sess.query(Address).get("jack1").username is None - u1 = sess.query(User).get("fred") + assert sess.get(Address, "jack1").username is None + u1 = sess.get(User, "fred") eq_(User(username="fred", fullname="jack"), u1) @testing.requires.on_update_cascade @@ -525,7 +525,7 @@ class NaturalPKTest(fixtures.MappedTest): sess.query(Address).all(), ) - u1 = sess.query(User).get("ed") + u1 = sess.get(User, "ed") assert len(u1.addresses) == 2 # load addresses u1.username = "fred" @@ -619,7 +619,7 @@ class NaturalPKTest(fixtures.MappedTest): eq_(["ed", "jack"], sorted([u.username for u in r[1].users])) sess.expunge_all() - u2 = sess.query(User).get(u2.username) + u2 = sess.get(User, u2.username) u2.username = "wendy" sess.flush() r = sess.query(Item).filter(with_parent(u2, User.items)).all() @@ -840,16 +840,16 @@ class ReversePKsTest(fixtures.MappedTest): a_editable.status = PUBLISHED session.commit() - assert session.query(User).get([1, PUBLISHED]) is a_editable - assert session.query(User).get([1, ARCHIVED]) is a_published + assert session.get(User, [1, PUBLISHED]) is a_editable + assert session.get(User, [1, ARCHIVED]) is a_published a_published.status = PUBLISHED a_editable.status = EDITABLE session.commit() - assert session.query(User).get([1, PUBLISHED]) is a_published - assert session.query(User).get([1, EDITABLE]) is a_editable + assert session.get(User, [1, PUBLISHED]) is a_published + assert session.get(User, [1, EDITABLE]) is a_editable @testing.requires.savepoints def test_reverse_savepoint(self): @@ -1105,7 +1105,7 @@ class NonPKCascadeTest(fixtures.MappedTest): [("jack",), ("jack",)], ) - assert sess.query(Address).get(a1.id) is u1.addresses[0] + assert sess.get(Address, a1.id) is u1.addresses[0] u1.username = "ed" sess.flush() @@ -1121,7 +1121,7 @@ class NonPKCascadeTest(fixtures.MappedTest): sess.query(Address).all(), ) - u1 = sess.query(User).get(u1.id) + u1 = sess.get(User, u1.id) u1.username = "jack" def go(): @@ -1140,16 +1140,16 @@ class NonPKCascadeTest(fixtures.MappedTest): username="jack", addresses=[Address(username="jack"), Address(username="jack")], ) - == sess.query(User).get(u1.id) + == sess.get(User, u1.id) ) sess.expunge_all() - u1 = sess.query(User).get(u1.id) + u1 = sess.get(User, u1.id) u1.addresses = [] u1.username = "fred" sess.flush() sess.expunge_all() - a1 = sess.query(Address).get(a1.id) + a1 = sess.get(Address, a1.id) eq_(a1.username, None) eq_( @@ -1157,7 +1157,7 @@ class NonPKCascadeTest(fixtures.MappedTest): [(None,), (None,)], ) - u1 = sess.query(User).get(u1.id) + u1 = sess.get(User, u1.id) eq_(User(username="fred", fullname="jack"), u1) diff --git a/test/orm/test_onetoone.py b/test/orm/test_onetoone.py index efc49d641e..dd890dba8f 100644 --- a/test/orm/test_onetoone.py +++ b/test/orm/test_onetoone.py @@ -85,8 +85,8 @@ class O2OTest(fixtures.MappedTest): jid = j.id pid = p.id - j = session.query(Jack).get(jid) - p = session.query(Port).get(pid) + j = session.get(Jack, jid) + p = session.get(Port, pid) assert p.jack is not None assert p.jack is j assert j.port is not None @@ -95,8 +95,8 @@ class O2OTest(fixtures.MappedTest): session.expunge_all() - j = session.query(Jack).get(jid) - p = session.query(Port).get(pid) + j = session.get(Jack, jid) + p = session.get(Port, pid) j.port = None diff --git a/test/orm/test_pickled.py b/test/orm/test_pickled.py index e6f15c47b5..11d90bd590 100644 --- a/test/orm/test_pickled.py +++ b/test/orm/test_pickled.py @@ -139,7 +139,7 @@ class PickleTest(fixtures.MappedTest): sess.expunge_all() - eq_(u1, sess.query(User).get(u2.id)) + eq_(u1, sess.get(User, u2.id)) def test_no_mappers(self): users = self.tables.users @@ -199,7 +199,7 @@ class PickleTest(fixtures.MappedTest): sess.commit() with fixture_session() as sess: - u1 = sess.query(User).get(u1.id) + u1 = sess.get(User, u1.id) assert "name" not in u1.__dict__ assert "addresses" not in u1.__dict__ @@ -342,15 +342,15 @@ class PickleTest(fixtures.MappedTest): sess.commit() with fixture_session(expire_on_commit=False) as sess: - u1 = ( - sess.query(User) - .options( + u1 = sess.get( + User, + u1.id, + options=[ sa.orm.defer(User.name), sa.orm.defaultload(User.addresses).defer( Address.email_address ), - ) - .get(u1.id) + ], ) assert "name" not in u1.__dict__ assert "addresses" not in u1.__dict__ diff --git a/test/orm/test_query.py b/test/orm/test_query.py index 1ff6612848..c567cf1d16 100644 --- a/test/orm/test_query.py +++ b/test/orm/test_query.py @@ -1161,14 +1161,6 @@ class GetTest(QueryTest): s = fixture_session() - u1 = s.query(User).options(joinedload(User.addresses)).get(8) - eq_(len(u1.__dict__["addresses"]), 3) - - def test_loader_options_future(self): - User = self.classes.User - - s = fixture_session() - u1 = s.get(User, 8, options=[joinedload(User.addresses)]) eq_(len(u1.__dict__["addresses"]), 3) @@ -1176,13 +1168,13 @@ class GetTest(QueryTest): CompositePk = self.classes.CompositePk s = fixture_session() - is_(s.query(CompositePk).get({"i": 100, "j": 100}), None) + is_(s.get(CompositePk, {"i": 100, "j": 100}), None) def test_get_composite_pk_keyword_based_result(self): CompositePk = self.classes.CompositePk s = fixture_session() - one_two = s.query(CompositePk).get({"i": 1, "j": 2}) + one_two = s.get(CompositePk, {"i": 1, "j": 2}) eq_(one_two.i, 1) eq_(one_two.j, 2) eq_(one_two.k, 3) @@ -1191,40 +1183,30 @@ class GetTest(QueryTest): CompositePk = self.classes.CompositePk s = fixture_session() - q = s.query(CompositePk) - assert_raises(sa_exc.InvalidRequestError, q.get, {"i": 1, "k": 2}) + assert_raises( + sa_exc.InvalidRequestError, s.get, CompositePk, {"i": 1, "k": 2} + ) def test_get_composite_pk_keyword_based_too_few_keys(self): CompositePk = self.classes.CompositePk s = fixture_session() - q = s.query(CompositePk) - assert_raises(sa_exc.InvalidRequestError, q.get, {"i": 1}) + assert_raises(sa_exc.InvalidRequestError, s.get, CompositePk, {"i": 1}) def test_get_composite_pk_keyword_based_too_many_keys(self): CompositePk = self.classes.CompositePk s = fixture_session() - q = s.query(CompositePk) assert_raises( - sa_exc.InvalidRequestError, q.get, {"i": 1, "j": "2", "k": 3} + sa_exc.InvalidRequestError, + s.get, + CompositePk, + {"i": 1, "j": "2", "k": 3}, ) def test_get(self): User = self.classes.User - s = fixture_session() - assert s.query(User).get(19) is None - u = s.query(User).get(7) - u2 = s.query(User).get(7) - assert u is u2 - s.expunge_all() - u2 = s.query(User).get(7) - assert u is not u2 - - def test_get_future(self): - User = self.classes.User - s = fixture_session() assert s.get(User, 19) is None u = s.get(User, 7) @@ -1238,13 +1220,13 @@ class GetTest(QueryTest): CompositePk = self.classes.CompositePk s = fixture_session() - assert s.query(CompositePk).get((100, 100)) is None + assert s.get(CompositePk, (100, 100)) is None def test_get_composite_pk_result(self): CompositePk = self.classes.CompositePk s = fixture_session() - one_two = s.query(CompositePk).get((1, 2)) + one_two = s.get(CompositePk, (1, 2)) assert one_two.i == 1 assert one_two.j == 2 assert one_two.k == 3 @@ -1253,29 +1235,52 @@ class GetTest(QueryTest): CompositePk = self.classes.CompositePk s = fixture_session() - q = s.query(CompositePk) - assert_raises(sa_exc.InvalidRequestError, q.get, 7) + assert_raises_message( + sa_exc.InvalidRequestError, + r"Incorrect number of values in identifier to formulate " + r"primary key for session.get\(\); ", + s.get, + CompositePk, + 7, + ) def test_get_too_few_params_tuple(self): CompositePk = self.classes.CompositePk s = fixture_session() - q = s.query(CompositePk) - assert_raises(sa_exc.InvalidRequestError, q.get, (7,)) + assert_raises_message( + sa_exc.InvalidRequestError, + r"Incorrect number of values in identifier to formulate " + r"primary key for session.get\(\); ", + s.get, + CompositePk, + (7,), + ) def test_get_too_many_params(self): CompositePk = self.classes.CompositePk s = fixture_session() - q = s.query(CompositePk) - assert_raises(sa_exc.InvalidRequestError, q.get, (7, 10, 100)) + assert_raises_message( + sa_exc.InvalidRequestError, + r"Incorrect number of values in identifier to formulate " + r"primary key for session.get\(\); ", + s.get, + CompositePk, + (7, 10, 100), + ) def test_get_against_col(self): User = self.classes.User s = fixture_session() - q = s.query(User.id) - assert_raises(sa_exc.InvalidRequestError, q.get, (5,)) + assert_raises_message( + sa_exc.ArgumentError, + r"Expected mapped class or mapper, got: .*Instrumented", + s.get, + User.id, + (5,), + ) @testing.fixture def outerjoin_mapping(self, registry): @@ -1302,19 +1307,19 @@ class GetTest(QueryTest): UserThing = outerjoin_mapping sess = fixture_session() - u10 = sess.query(UserThing).get((10, None)) + u10 = sess.get(UserThing, (10, None)) eq_(u10, UserThing(id=10)) def test_get_fully_null_pk(self): User = self.classes.User s = fixture_session() - q = s.query(User) assert_raises_message( sa_exc.SAWarning, r"fully NULL primary key identity cannot load any object. " "This condition may raise an error in a future release.", - q.get, + s.get, + User, None, ) @@ -1322,48 +1327,16 @@ class GetTest(QueryTest): UserThing = outerjoin_mapping s = fixture_session() - q = s.query(UserThing) assert_raises_message( sa_exc.SAWarning, r"fully NULL primary key identity cannot load any object. " "This condition may raise an error in a future release.", - q.get, + s.get, + UserThing, (None, None), ) - def test_no_criterion(self): - """test that get()/load() does not use preexisting filter/etc. - criterion""" - - User, Address = self.classes.User, self.classes.Address - - s = fixture_session() - - q = s.query(User).join(User.addresses).filter(Address.user_id == 8) - assert_raises(sa_exc.InvalidRequestError, q.get, 7) - assert_raises( - sa_exc.InvalidRequestError, - s.query(User).filter(User.id == 7).get, - 19, - ) - - # order_by()/get() doesn't raise - s.query(User).order_by(User.id).get(8) - - def test_no_criterion_when_already_loaded(self): - """test that get()/load() does not use preexisting filter/etc. - criterion, even when we're only using the identity map.""" - - User, Address = self.classes.User, self.classes.Address - - s = fixture_session() - - s.query(User).get(7) - - q = s.query(User).join(User.addresses).filter(Address.user_id == 8) - assert_raises(sa_exc.InvalidRequestError, q.get, 7) - def test_unique_param_names(self): users = self.tables.users @@ -1375,20 +1348,20 @@ class GetTest(QueryTest): assert s.primary_key == m.primary_key sess = fixture_session() - assert sess.query(SomeUser).get(7).name == "jack" + assert sess.get(SomeUser, 7).name == "jack" def test_load(self): User, Address = self.classes.User, self.classes.Address s = fixture_session(autoflush=False) - assert s.query(User).populate_existing().get(19) is None + assert s.get(User, 19, populate_existing=True) is None - u = s.query(User).populate_existing().get(7) - u2 = s.query(User).populate_existing().get(7) + u = s.get(User, 7, populate_existing=True) + u2 = s.get(User, 7, populate_existing=True) assert u is u2 s.expunge_all() - u2 = s.query(User).populate_existing().get(7) + u2 = s.get(User, 7, populate_existing=True) assert u is not u2 u2.name = "some name" @@ -1397,7 +1370,7 @@ class GetTest(QueryTest): assert u2 in s.dirty assert a in u2.addresses - s.query(User).populate_existing().get(7) + s.get(User, 7, populate_existing=True) assert u2 not in s.dirty assert u2.name == "jack" @@ -1426,114 +1399,6 @@ class GetTest(QueryTest): LocalFoo(id=ustring, data=ustring), ) - def test_populate_existing(self): - User, Address = self.classes.User, self.classes.Address - Order = self.classes.Order - - s = fixture_session(autoflush=False) - - userlist = s.query(User).all() - - u = userlist[0] - u.name = "foo" - a = Address(name="ed") - u.addresses.append(a) - - self.assert_(a in u.addresses) - - s.query(User).populate_existing().all() - - self.assert_(u not in s.dirty) - - self.assert_(u.name == "jack") - - self.assert_(a not in u.addresses) - - u.addresses[0].email_address = "lala" - u.orders[1].items[2].description = "item 12" - # test that lazy load doesn't change child items - s.query(User).populate_existing().all() - assert u.addresses[0].email_address == "lala" - assert u.orders[1].items[2].description == "item 12" - - # eager load does - s.query(User).options( - joinedload(User.addresses), - joinedload(User.orders).joinedload(Order.items), - ).populate_existing().all() - assert u.addresses[0].email_address == "jack@bean.com" - assert u.orders[1].items[2].description == "item 5" - - def test_populate_existing_future(self): - User, Address = self.classes.User, self.classes.Address - Order = self.classes.Order - - s = fixture_session(autoflush=False) - - userlist = s.query(User).all() - - u = userlist[0] - u.name = "foo" - a = Address(name="ed") - u.addresses.append(a) - - self.assert_(a in u.addresses) - - stmt = select(User).execution_options(populate_existing=True) - - s.execute( - stmt, - ).scalars().all() - - self.assert_(u not in s.dirty) - - self.assert_(u.name == "jack") - - self.assert_(a not in u.addresses) - - u.addresses[0].email_address = "lala" - u.orders[1].items[2].description = "item 12" - # test that lazy load doesn't change child items - s.query(User).populate_existing().all() - assert u.addresses[0].email_address == "lala" - assert u.orders[1].items[2].description == "item 12" - - # eager load does - - stmt = ( - select(User) - .options( - joinedload(User.addresses), - joinedload(User.orders).joinedload(Order.items), - ) - .execution_options(populate_existing=True) - ) - - s.execute(stmt).unique().scalars().all() - - assert u.addresses[0].email_address == "jack@bean.com" - assert u.orders[1].items[2].description == "item 5" - - def test_option_transfer_future(self): - User = self.classes.User - stmt = select(User).execution_options( - populate_existing=True, autoflush=False, yield_per=10 - ) - s = fixture_session() - - m1 = mock.Mock() - - event.listen(s, "do_orm_execute", m1) - - s.execute(stmt) - - eq_( - m1.mock_calls[0][1][0].load_options, - QueryContext.default_load_options( - _autoflush=False, _populate_existing=True, _yield_per=10 - ), - ) - class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL): @testing.combinations( @@ -1655,14 +1520,6 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL): ) assert_raises(sa_exc.InvalidRequestError, q.with_polymorphic, User) - def test_only_full_mapper_zero(self): - User, Address = self.classes.User, self.classes.Address - - 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 = fixture_session() @@ -3283,7 +3140,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL): User, Address = self.classes.User, self.classes.Address sess = fixture_session() - address = sess.query(Address).get(3) + address = sess.get(Address, 3) assert [User(id=8)] == sess.query(User).filter( User.addresses.contains(address) ).all() @@ -3436,7 +3293,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL): Address.id ).all() - dingaling = sess.query(Dingaling).get(2) + dingaling = sess.get(Dingaling, 2) assert [User(id=9)] == sess.query(User).filter( User.addresses.any(Address.dingaling == dingaling) ).all() @@ -3445,7 +3302,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL): Item, Order = self.classes.Item, self.classes.Order sess = fixture_session() - item = sess.query(Item).get(3) + item = sess.get(Item, 3) eq_( sess.query(Order) @@ -3462,7 +3319,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL): [Order(id=4), Order(id=5)], ) - item2 = sess.query(Item).get(5) + item2 = sess.get(Item, 5) eq_( sess.query(Order) .filter(Order.items.contains(item)) @@ -3522,7 +3379,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL): ) sess = fixture_session() - user = sess.query(User).get(8) + user = sess.get(User, 8) assert [Address(id=2), Address(id=3), Address(id=4)] == sess.query( Address ).filter(Address.user == user).all() @@ -3542,7 +3399,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL): ).all() # noqa # o2o - dingaling = sess.query(Dingaling).get(2) + dingaling = sess.get(Dingaling, 2) assert [Address(id=5)] == sess.query(Address).filter( Address.dingaling == dingaling ).all() @@ -3567,7 +3424,7 @@ class FilterTest(QueryTest, AssertsCompiledSQL): User, Address = self.classes.User, self.classes.Address sess = fixture_session() - user = sess.query(User).get(8) + user = sess.get(User, 8) assert [Address(id=2), Address(id=3), Address(id=4)] == sess.query( Address ).filter_by(user=user).all() @@ -6440,7 +6297,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL): User, Address = self.classes.User, self.classes.Address sess = fixture_session() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) q = ( sess.query(Address) .select_from(Address) @@ -6459,7 +6316,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL): User, Address = self.classes.User, self.classes.Address sess = fixture_session() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) q = sess.query(User, Address).filter( with_parent(u1, User.addresses, from_entity=Address) ) @@ -6478,7 +6335,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL): User, Address = self.classes.User, self.classes.Address sess = fixture_session() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) a1 = aliased(Address) q = sess.query(a1).filter(with_parent(u1, User.addresses.of_type(a1))) self.assert_compile( @@ -6495,7 +6352,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL): User, Address = self.classes.User, self.classes.Address sess = fixture_session() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) a1 = aliased(Address) a2 = aliased(Address) q = sess.query(a1, a2).filter( @@ -6518,7 +6375,7 @@ class ParentTest(QueryTest, AssertsCompiledSQL): User, Address = self.classes.User, self.classes.Address sess = fixture_session() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) a1 = aliased(Address) a2 = aliased(Address) q = sess.query(a1, a2).filter( @@ -7335,6 +7192,114 @@ class ImmediateTest(_fixtures.FixtureTest): class ExecutionOptionsTest(QueryTest): + def test_populate_existing(self): + User, Address = self.classes.User, self.classes.Address + Order = self.classes.Order + + s = fixture_session(autoflush=False) + + userlist = s.query(User).all() + + u = userlist[0] + u.name = "foo" + a = Address(name="ed") + u.addresses.append(a) + + self.assert_(a in u.addresses) + + s.query(User).populate_existing().all() + + self.assert_(u not in s.dirty) + + self.assert_(u.name == "jack") + + self.assert_(a not in u.addresses) + + u.addresses[0].email_address = "lala" + u.orders[1].items[2].description = "item 12" + # test that lazy load doesn't change child items + s.query(User).populate_existing().all() + assert u.addresses[0].email_address == "lala" + assert u.orders[1].items[2].description == "item 12" + + # eager load does + s.query(User).options( + joinedload(User.addresses), + joinedload(User.orders).joinedload(Order.items), + ).populate_existing().all() + assert u.addresses[0].email_address == "jack@bean.com" + assert u.orders[1].items[2].description == "item 5" + + def test_populate_existing_future(self): + User, Address = self.classes.User, self.classes.Address + Order = self.classes.Order + + s = fixture_session(autoflush=False) + + userlist = s.query(User).all() + + u = userlist[0] + u.name = "foo" + a = Address(name="ed") + u.addresses.append(a) + + self.assert_(a in u.addresses) + + stmt = select(User).execution_options(populate_existing=True) + + s.execute( + stmt, + ).scalars().all() + + self.assert_(u not in s.dirty) + + self.assert_(u.name == "jack") + + self.assert_(a not in u.addresses) + + u.addresses[0].email_address = "lala" + u.orders[1].items[2].description = "item 12" + # test that lazy load doesn't change child items + s.query(User).populate_existing().all() + assert u.addresses[0].email_address == "lala" + assert u.orders[1].items[2].description == "item 12" + + # eager load does + + stmt = ( + select(User) + .options( + joinedload(User.addresses), + joinedload(User.orders).joinedload(Order.items), + ) + .execution_options(populate_existing=True) + ) + + s.execute(stmt).unique().scalars().all() + + assert u.addresses[0].email_address == "jack@bean.com" + assert u.orders[1].items[2].description == "item 5" + + def test_option_transfer_future(self): + User = self.classes.User + stmt = select(User).execution_options( + populate_existing=True, autoflush=False, yield_per=10 + ) + s = fixture_session() + + m1 = mock.Mock() + + event.listen(s, "do_orm_execute", m1) + + s.execute(stmt) + + eq_( + m1.mock_calls[0][1][0].load_options, + QueryContext.default_load_options( + _autoflush=False, _populate_existing=True, _yield_per=10 + ), + ) + def test_option_building(self): User = self.classes.User @@ -7682,9 +7647,9 @@ class QueryClsTest(QueryTest): s = fixture_session(query_cls=fixture()) - assert s.query(User).get(19) is None - u = s.query(User).get(7) - u2 = s.query(User).get(7) + assert s.get(User, 19) is None + u = s.get(User, 7) + u2 = s.get(User, 7) assert u is u2 def _test_o2m_lazyload(self, fixture): diff --git a/test/orm/test_relationships.py b/test/orm/test_relationships.py index 2d3a6309b0..94b30f3d01 100644 --- a/test/orm/test_relationships.py +++ b/test/orm/test_relationships.py @@ -3222,7 +3222,7 @@ class ViewOnlyOverlappingNames(fixtures.MappedTest): sess.flush() sess.expunge_all() - c1 = sess.query(C1).get(c1.id) + c1 = sess.get(C1, c1.id) assert set([x.id for x in c1.t2s]) == set([c2a.id, c2b.id]) assert set([x.id for x in c1.t2_view]) == set([c2b.id]) @@ -3486,7 +3486,7 @@ class ViewOnlyUniqueNames(fixtures.MappedTest): sess.flush() sess.expunge_all() - c1 = sess.query(C1).get(c1.t1id) + c1 = sess.get(C1, c1.t1id) assert set([x.t2id for x in c1.t2s]) == set([c2a.t2id, c2b.t2id]) assert set([x.t2id for x in c1.t2_view]) == set([c2b.t2id]) diff --git a/test/orm/test_selectin_relations.py b/test/orm/test_selectin_relations.py index e3d852e682..f01060aab5 100644 --- a/test/orm/test_selectin_relations.py +++ b/test/orm/test_selectin_relations.py @@ -221,15 +221,13 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) sess = fixture_session() - q = sess.query(User).options(selectinload(User.addresses)) - def go(): eq_( User( id=7, addresses=[Address(id=1, email_address="jack@bean.com")], ), - q.get(7), + sess.get(User, 7, options=[selectinload(User.addresses)]), ) self.assert_sql_count(testing.db, go, 2) @@ -1253,7 +1251,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): def go(): a = q.filter(addresses.c.id == 1).one() is_not(a.user, None) - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) is_(a.user, u1) self.assert_sql_count(testing.db, go, 2) @@ -1502,7 +1500,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): def test_runs_query_on_refresh(self): User, Address, sess = self._eager_config_fixture() - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) assert "addresses" in u1.__dict__ sess.expire(u1) @@ -1540,7 +1538,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): def test_no_query_on_deferred(self): User, Address, sess = self._deferred_config_fixture() - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) assert "addresses" in u1.__dict__ sess.expire(u1, ["addresses"]) @@ -1552,7 +1550,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): def test_populate_existing_propagate(self): User, Address, sess = self._eager_config_fixture() - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) u1.addresses[2].email_address = "foofoo" del u1.addresses[1] u1 = sess.query(User).populate_existing().filter_by(id=8).one() @@ -1565,7 +1563,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): def test_loads_second_level_collection_to_scalar(self): User, Address, Dingaling, sess = self._collection_to_scalar_fixture() - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) a1 = Address() u1.addresses.append(a1) a2 = u1.addresses[0] @@ -1585,7 +1583,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): def test_loads_second_level_collection_to_collection(self): User, Order, Item, sess = self._collection_to_collection_fixture() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) u1.orders o1 = Order() u1.orders.append(o1) diff --git a/test/orm/test_session.py b/test/orm/test_session.py index 94b35c5b3f..f66f22e33c 100644 --- a/test/orm/test_session.py +++ b/test/orm/test_session.py @@ -846,7 +846,7 @@ class SessionStateTest(_fixtures.FixtureTest): s2.delete, user, ) - u2 = s2.query(User).get(user.id) + u2 = s2.get(User, user.id) s2.expunge(u2) assert_raises_message( sa.exc.InvalidRequestError, @@ -983,7 +983,7 @@ class SessionStateTest(_fixtures.FixtureTest): assert u1 not in sess assert Session.object_session(u1) is None - u2 = sess.query(User).get(u1.id) + u2 = sess.get(User, u1.id) assert u2 is not None and u2 is not u1 assert u2 in sess @@ -1011,7 +1011,7 @@ class SessionStateTest(_fixtures.FixtureTest): sess.expunge_all() - u3 = sess.query(User).get(u1.id) + u3 = sess.get(User, u1.id) assert u3 is not u1 and u3 is not u2 and u3.name == u1.name def test_no_double_save(self): @@ -1213,7 +1213,7 @@ class DeferredRelationshipExpressionTest(_fixtures.FixtureTest): sess.commit() sess.close() - u = sess.query(User).get(u.id) + u = sess.get(User, u.id) q = sess.query(Address).filter(Address.user == u) del u gc_collect() @@ -1361,7 +1361,7 @@ class SessionStateWFixtureTest(_fixtures.FixtureTest): ) sess = fixture_session(autocommit=False, autoflush=True) - u = sess.query(User).get(8) + u = sess.get(User, 8) newad = Address(email_address="a new address") u.addresses.append(newad) u.name = "some new name" diff --git a/test/orm/test_subquery_relations.py b/test/orm/test_subquery_relations.py index 25ebb9ebe4..3b09d8eb18 100644 --- a/test/orm/test_subquery_relations.py +++ b/test/orm/test_subquery_relations.py @@ -313,15 +313,13 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): ) sess = fixture_session() - q = sess.query(User).options(subqueryload(User.addresses)) - def go(): eq_( User( id=7, addresses=[Address(id=1, email_address="jack@bean.com")], ), - q.get(7), + sess.get(User, 7, options=[subqueryload(User.addresses)]), ) self.assert_sql_count(testing.db, go, 2) @@ -1363,7 +1361,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): def go(): a = q.filter(addresses.c.id == 1).one() is_not(a.user, None) - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) is_(a.user, u1) self.assert_sql_count(testing.db, go, 2) @@ -1530,7 +1528,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): def test_runs_query_on_refresh(self): User, Address, sess = self._eager_config_fixture() - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) assert "addresses" in u1.__dict__ sess.expire(u1) @@ -1568,7 +1566,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): def test_no_query_on_deferred(self): User, Address, sess = self._deferred_config_fixture() - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) assert "addresses" in u1.__dict__ sess.expire(u1, ["addresses"]) @@ -1580,7 +1578,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): def test_populate_existing_propagate(self): User, Address, sess = self._eager_config_fixture() - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) u1.addresses[2].email_address = "foofoo" del u1.addresses[1] u1 = sess.query(User).populate_existing().filter_by(id=8).one() @@ -1593,7 +1591,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): def test_loads_second_level_collection_to_scalar(self): User, Address, Dingaling, sess = self._collection_to_scalar_fixture() - u1 = sess.query(User).get(8) + u1 = sess.get(User, 8) a1 = Address() u1.addresses.append(a1) a2 = u1.addresses[0] @@ -1613,7 +1611,7 @@ class LoadOnExistingTest(_fixtures.FixtureTest): def test_loads_second_level_collection_to_collection(self): User, Order, Item, sess = self._collection_to_collection_fixture() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) u1.orders o1 = Order() u1.orders.append(o1) diff --git a/test/orm/test_transaction.py b/test/orm/test_transaction.py index 1c8fef5cbd..b2e8bff792 100644 --- a/test/orm/test_transaction.py +++ b/test/orm/test_transaction.py @@ -1341,7 +1341,7 @@ class FixtureDataTest(_LocalFixture): def test_attrs_on_rollback(self): User = self.classes.User sess = fixture_session() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) u1.name = "ed" sess.rollback() eq_(u1.name, "jack") @@ -1349,7 +1349,7 @@ class FixtureDataTest(_LocalFixture): def test_commit_persistent(self): User = self.classes.User sess = fixture_session() - u1 = sess.query(User).get(7) + u1 = sess.get(User, 7) u1.name = "ed" sess.flush() sess.commit() @@ -1358,12 +1358,12 @@ class FixtureDataTest(_LocalFixture): def test_concurrent_commit_persistent(self): User = self.classes.User s1 = fixture_session() - u1 = s1.query(User).get(7) + u1 = s1.get(User, 7) u1.name = "ed" s1.commit() s2 = fixture_session() - u2 = s2.query(User).get(7) + u2 = s2.get(User, 7) assert u2.name == "ed" u2.name = "will" s2.commit() @@ -2745,7 +2745,7 @@ class NaturalPKRollbackTest(fixtures.MappedTest): s.flush() s.execute(users.insert().values(name="u1")) - u2 = s.query(User).get("u1") + u2 = s.get(User, "u1") assert u1 not in s s.rollback() diff --git a/test/orm/test_unitofwork.py b/test/orm/test_unitofwork.py index 01cb9dcc46..7b7cb0db6f 100644 --- a/test/orm/test_unitofwork.py +++ b/test/orm/test_unitofwork.py @@ -371,7 +371,7 @@ class PKTest(fixtures.MappedTest): session.flush() session.expunge_all() - e2 = session.query(Entry).get((e.multi_id, 2)) + e2 = session.get(Entry, (e.multi_id, 2)) self.assert_(e is not e2) state = sa.orm.attributes.instance_state(e) state2 = sa.orm.attributes.instance_state(e2) @@ -573,7 +573,7 @@ class ClauseAttributesTest(fixtures.MappedTest): self.sql_count_(1, go) session.expunge_all() - u = session.query(User).get(u.id) + u = session.get(User, u.id) eq_(u.name, "test2") eq_(u.counter, 2) @@ -723,7 +723,7 @@ class PassiveDeletesTest(fixtures.MappedTest): conn.scalar(select(func.count("*")).select_from(myothertable)), 4, ) - mc = session.query(MyClass).get(mc.id) + mc = session.get(MyClass, mc.id) session.delete(mc) session.flush() @@ -905,7 +905,7 @@ class ExtraPassiveDeletesTest(fixtures.MappedTest): conn.scalar(select(func.count("*")).select_from(myothertable)), 4, ) - mc = session.query(MyClass).get(mc.id) + mc = session.get(MyClass, mc.id) session.delete(mc) assert_raises(sa.exc.DBAPIError, session.flush) @@ -941,7 +941,7 @@ class ExtraPassiveDeletesTest(fixtures.MappedTest): 1, ) - mc = session.query(MyClass).get(mc.id) + mc = session.get(MyClass, mc.id) session.delete(mc) mc.children[0].data = "some new data" assert_raises(sa.exc.DBAPIError, session.flush) @@ -1298,17 +1298,17 @@ class DefaultTest(fixtures.MappedTest): session.expunge_all() eq_( - session.query(Hoho).get(h1.id), + session.get(Hoho, h1.id), Hoho(hoho=hohoval, secondaries=[Secondary(data="s1")]), ) - h1 = session.query(Hoho).get(h1.id) + h1 = session.get(Hoho, h1.id) h1.secondaries.append(Secondary(data="s2")) session.flush() session.expunge_all() eq_( - session.query(Hoho).get(h1.id), + session.get(Hoho, h1.id), Hoho( hoho=hohoval, secondaries=[Secondary(data="s1"), Secondary(data="s2")], @@ -1669,7 +1669,7 @@ class OneToManyTest(_fixtures.FixtureTest): session.flush() session.expunge_all() - u2 = session.query(User).get(u2.id) + u2 = session.get(User, u2.id) eq_(len(u2.addresses), 1) def test_child_move_2(self): @@ -1706,7 +1706,7 @@ class OneToManyTest(_fixtures.FixtureTest): session.flush() session.expunge_all() - u2 = session.query(User).get(u2.id) + u2 = session.get(User, u2.id) eq_(len(u2.addresses), 1) def test_o2m_delete_parent(self): @@ -1866,14 +1866,14 @@ class SaveTest(_fixtures.FixtureTest): session.flush() # assert the first one retrieves the same from the identity map - nu = session.query(m).get(u.id) + nu = session.get(m, u.id) assert u is nu # 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) + nu = session.get(m, u.id) assert u is not nu and u.id == nu.id and nu.name == "savetester" session.commit() @@ -2075,7 +2075,7 @@ class SaveTest(_fixtures.FixtureTest): session.flush() session.expunge_all() - u = session.query(User).get(u.id) + u = session.get(User, u.id) u.name = "" self.sql_count_(0, session.flush) @@ -2113,7 +2113,7 @@ class SaveTest(_fixtures.FixtureTest): id_ = m.primary_key_from_instance(u) - u = session.query(User).get(id_) + u = session.get(User, id_) assert u.name == "multitester" conn = session.connection() @@ -2140,7 +2140,7 @@ class SaveTest(_fixtures.FixtureTest): eq_(list(address_rows[0]), [u.id, u.foo_id, "lala@hey.com"]) session.expunge_all() - u = session.query(User).get(id_) + u = session.get(User, id_) assert u.name == "imnew" def test_history_get(self): @@ -2172,7 +2172,7 @@ class SaveTest(_fixtures.FixtureTest): session.flush() session.expunge_all() - u = session.query(User).get(u.id) + u = session.get(User, u.id) session.delete(u) session.flush() eq_( @@ -2355,15 +2355,15 @@ class ManyToOneTest(_fixtures.FixtureTest): session.flush() session.expunge_all() - a1 = session.query(Address).get(a1.id) - u1 = session.query(User).get(u1.id) + a1 = session.get(Address, a1.id) + u1 = session.get(User, u1.id) assert a1.user is u1 a1.user = None session.flush() session.expunge_all() - a1 = session.query(Address).get(a1.id) - u1 = session.query(User).get(u1.id) + a1 = session.get(Address, a1.id) + u1 = session.get(User, u1.id) assert a1.user is None def test_many_to_one_2(self): @@ -2395,9 +2395,9 @@ class ManyToOneTest(_fixtures.FixtureTest): session.flush() session.expunge_all() - a1 = session.query(Address).get(a1.id) - a2 = session.query(Address).get(a2.id) - u1 = session.query(User).get(u1.id) + a1 = session.get(Address, a1.id) + a2 = session.get(Address, a2.id) + u1 = session.get(User, u1.id) assert a1.user is u1 a1.user = None @@ -2405,9 +2405,9 @@ class ManyToOneTest(_fixtures.FixtureTest): session.flush() session.expunge_all() - a1 = session.query(Address).get(a1.id) - a2 = session.query(Address).get(a2.id) - u1 = session.query(User).get(u1.id) + a1 = session.get(Address, a1.id) + a2 = session.get(Address, a2.id) + u1 = session.get(User, u1.id) assert a1.user is None assert a2.user is u1 @@ -2440,17 +2440,17 @@ class ManyToOneTest(_fixtures.FixtureTest): session.flush() session.expunge_all() - a1 = session.query(Address).get(a1.id) - u1 = session.query(User).get(u1.id) - u2 = session.query(User).get(u2.id) + a1 = session.get(Address, a1.id) + u1 = session.get(User, u1.id) + u2 = session.get(User, u2.id) assert a1.user is u1 a1.user = u2 session.flush() session.expunge_all() - a1 = session.query(Address).get(a1.id) - u1 = session.query(User).get(u1.id) - u2 = session.query(User).get(u2.id) + a1 = session.get(Address, a1.id) + u1 = session.get(User, u1.id) + u2 = session.get(User, u2.id) assert a1.user is u2 def test_bidirectional_no_load(self): @@ -2482,13 +2482,13 @@ class ManyToOneTest(_fixtures.FixtureTest): session.flush() session.expunge_all() - a1 = session.query(Address).get(a1.id) + a1 = session.get(Address, a1.id) a1.user = None session.flush() session.expunge_all() - assert session.query(Address).get(a1.id).user is None - assert session.query(User).get(u1.id).addresses == [] + assert session.get(Address, a1.id).user is None + assert session.get(User, u1.id).addresses == [] class ManyToManyTest(_fixtures.FixtureTest): @@ -2751,7 +2751,7 @@ class ManyToManyTest(_fixtures.FixtureTest): session.flush() session.expunge_all() - item = session.query(Item).get(item.id) + item = session.get(Item, item.id) eq_(item.keywords, [k1, k2]) def test_association(self): @@ -3059,7 +3059,7 @@ class BooleanColTest(fixtures.MappedTest): [T(value=False, name="t2")], ) - t2 = sess.query(T).get(t2.id) + t2 = sess.get(T, t2.id) t2.value = True sess.flush() eq_( diff --git a/test/orm/test_unitofworkv2.py b/test/orm/test_unitofworkv2.py index 71f4609988..af38a4bab0 100644 --- a/test/orm/test_unitofworkv2.py +++ b/test/orm/test_unitofworkv2.py @@ -2201,7 +2201,7 @@ class LoadersUsingCommittedTest(UOWTest): sess.expunge_all() # lookup an address and move it to the other user - a1 = sess.query(Address).get(a1.id) + a1 = sess.get(Address, a1.id) # move address to another user's fk assert a1.user_id == u1.id @@ -2270,7 +2270,7 @@ class LoadersUsingCommittedTest(UOWTest): sess.commit() sess.expunge_all() - u1 = sess.query(User).get(u1.id) + u1 = sess.get(User, u1.id) u1.id = 2 try: sess.flush() diff --git a/test/orm/test_update_delete.py b/test/orm/test_update_delete.py index a582862861..21863c57a5 100644 --- a/test/orm/test_update_delete.py +++ b/test/orm/test_update_delete.py @@ -200,7 +200,7 @@ class UpdateDeleteTest(fixtures.MappedTest): return User.name.__clause_element__() s = fixture_session() - jill = s.query(User).get(3) + jill = s.get(User, 3) s.query(User).update( {Thing(): "moonbeam"}, synchronize_session="evaluate" ) @@ -227,7 +227,7 @@ class UpdateDeleteTest(fixtures.MappedTest): User = self.classes.User s = fixture_session() - jill = s.query(User).get(3) + jill = s.get(User, 3) s.query(User).update( {column("name"): "moonbeam"}, synchronize_session="evaluate" ) @@ -244,7 +244,7 @@ class UpdateDeleteTest(fixtures.MappedTest): ) s = fixture_session() - jill = s.query(Foo).get(3) + jill = s.get(Foo, 3) s.query(Foo).update( {"uname": "moonbeam"}, synchronize_session="evaluate" ) @@ -259,7 +259,7 @@ class UpdateDeleteTest(fixtures.MappedTest): ) s = fixture_session() - jill = s.query(Foo).get(3) + jill = s.get(Foo, 3) s.query(Foo).update( {Foo.uname: "moonbeam"}, synchronize_session="evaluate" ) @@ -276,7 +276,7 @@ class UpdateDeleteTest(fixtures.MappedTest): ) s = fixture_session() - jill = s.query(Foo).get(3) + jill = s.get(Foo, 3) s.query(Foo).update( {Foo.ufoo: "moonbeam"}, synchronize_session="evaluate" ) diff --git a/test/orm/test_versioning.py b/test/orm/test_versioning.py index 57fe0b7a2c..8990abe14d 100644 --- a/test/orm/test_versioning.py +++ b/test/orm/test_versioning.py @@ -213,7 +213,7 @@ class VersioningTest(fixtures.MappedTest): s1.commit() s2 = fixture_session(autocommit=False) - f1_s = s2.query(Foo).get(f1.id) + f1_s = s2.get(Foo, f1.id) f1_s.value = "f1rev3" with conditional_sane_rowcount_warnings( update=True, only_returning=True @@ -239,8 +239,8 @@ class VersioningTest(fixtures.MappedTest): s1.commit() # new in 0.5 ! don't need to close the session - f1 = s1.query(Foo).get(f1.id) - f2 = s1.query(Foo).get(f2.id) + f1 = s1.get(Foo, f1.id) + f2 = s1.get(Foo, f2.id) f1_s.value = "f1rev4" with conditional_sane_rowcount_warnings( @@ -373,7 +373,7 @@ class VersioningTest(fixtures.MappedTest): s1.commit() s2 = fixture_session(autocommit=False) - f1s2 = s2.query(Foo).get(f1s1.id) + f1s2 = s2.get(Foo, f1s1.id) f1s2.value = "f1 new value" with conditional_sane_rowcount_warnings( update=True, only_returning=True @@ -385,19 +385,21 @@ class VersioningTest(fixtures.MappedTest): sa.orm.exc.StaleDataError, r"Instance .* has version id '\d+' which does not " r"match database-loaded version id '\d+'", - s1.query(Foo).with_for_update(read=True).get, + s1.get, + Foo, f1s1.id, + with_for_update=dict(read=True), ) # reload it - this expires the old version first s1.refresh(f1s1, with_for_update={"read": True}) # now assert version OK - s1.query(Foo).with_for_update(read=True).get(f1s1.id) + s1.get(Foo, f1s1.id, with_for_update=dict(read=True)) # assert brand new load is OK too s1.close() - s1.query(Foo).with_for_update(read=True).get(f1s1.id) + s1.get(Foo, f1s1.id, with_for_update=dict(read=True)) def test_versioncheck_not_versioned(self): """ensure the versioncheck logic skips if there isn't a @@ -411,7 +413,7 @@ class VersioningTest(fixtures.MappedTest): f1s1 = Foo(value="f1 value", version_id=1) s1.add(f1s1) s1.commit() - s1.query(Foo).with_for_update(read=True).get(f1s1.id) + s1.query(Foo).with_for_update(read=True).where(Foo.id == f1s1.id).one() @engines.close_open_connections @testing.requires.update_nowait @@ -427,7 +429,7 @@ class VersioningTest(fixtures.MappedTest): s1.commit() s2 = fixture_session(autocommit=False) - f1s2 = s2.query(Foo).get(f1s1.id) + f1s2 = s2.get(Foo, f1s1.id) # not sure if I like this API s2.refresh(f1s2, with_for_update=True) f1s2.value = "f1 new value" @@ -510,7 +512,12 @@ class VersioningTest(fixtures.MappedTest): s1.commit() s2 = fixture_session(autocommit=False) - f1s2 = s2.query(Foo).with_for_update(read=True).get(f1s1.id) + f1s2 = ( + s2.query(Foo) + .with_for_update(read=True) + .where(Foo.id == f1s1.id) + .one() + ) assert f1s2.id == f1s1.id assert f1s2.value == f1s1.value