]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Fix typo in Session.identity_key
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 16 Mar 2021 22:32:30 +0000 (18:32 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 16 Mar 2021 22:32:59 +0000 (18:32 -0400)
Fixed regression in :meth:`_orm.Session.identity_key`, including that the
method and related methods were not covered by any unit test as well as
that the method contained a typo preventing it from functioning correctly.

Fixes: #6067
Change-Id: I1a84f9ed095c4226d57eef1c46996601dc2f1eaa

doc/build/changelog/unreleased_14/6067.rst [new file with mode: 0644]
lib/sqlalchemy/orm/session.py
test/orm/test_session.py
test/orm/test_utils.py

diff --git a/doc/build/changelog/unreleased_14/6067.rst b/doc/build/changelog/unreleased_14/6067.rst
new file mode 100644 (file)
index 0000000..97128ec
--- /dev/null
@@ -0,0 +1,8 @@
+.. change::
+    :tags: bug, orm, regression
+    :tickets: 6067
+
+    Fixed regression in :meth:`_orm.Session.identity_key`, including that the
+    method and related methods were not covered by any unit test as well as
+    that the method contained a typo preventing it from functioning correctly.
+
index 004951e5b5d438bed0e5c7c71358a56d2f8a61e6..7e39b082041badecd05e71680b79f7cd50113b4d 100644 (file)
@@ -81,7 +81,7 @@ class _SessionClassMethods(object):
         This is an alias of :func:`.util.identity_key`.
 
         """
-        return util.perload.orm_util.identity_key(*args, **kwargs)
+        return util.preloaded.orm_util.identity_key(*args, **kwargs)
 
     @classmethod
     def object_session(cls, instance):
index 23826128c10bbf5de719d9678ce1d89dc431b53a..280bb99b8bab494ca478d6fedc0dc6ce5baf7d34 100644 (file)
@@ -244,12 +244,13 @@ class SessionUtilTest(_fixtures.FixtureTest):
         assert u1 not in s1
         assert u2 not in s2
 
-    def test_object_session_raises(self):
+    @testing.combinations((object_session,), (Session.object_session,))
+    def test_object_session_raises(self, objsession):
         User = self.classes.User
 
-        assert_raises(orm_exc.UnmappedInstanceError, object_session, object())
+        assert_raises(orm_exc.UnmappedInstanceError, objsession, object())
 
-        assert_raises(orm_exc.UnmappedInstanceError, object_session, User())
+        assert_raises(orm_exc.UnmappedInstanceError, objsession, User())
 
     def test_make_transient(self):
         users, User = self.tables.users, self.classes.User
index a2182e3eaa3dd79b60a04dac76d774555f2bcb9e..8b298c6fbaa846763ae9c01cae031d580956ffdc 100644 (file)
@@ -4,11 +4,13 @@ from sqlalchemy import Integer
 from sqlalchemy import MetaData
 from sqlalchemy import select
 from sqlalchemy import Table
+from sqlalchemy import testing
 from sqlalchemy import util
 from sqlalchemy.ext.hybrid import hybrid_method
 from sqlalchemy.ext.hybrid import hybrid_property
 from sqlalchemy.orm import aliased
 from sqlalchemy.orm import mapper
+from sqlalchemy.orm import Session
 from sqlalchemy.orm import synonym
 from sqlalchemy.orm import util as orm_util
 from sqlalchemy.orm import with_polymorphic
@@ -444,27 +446,36 @@ class AliasedClassTest(fixtures.TestBase, AssertsCompiledSQL):
 class IdentityKeyTest(_fixtures.FixtureTest):
     run_inserts = None
 
-    def test_identity_key_1(self):
+    def _cases():
+        return testing.combinations(
+            (orm_util,),
+            (Session,),
+        )
+
+    @_cases()
+    def test_identity_key_1(self, ormutil):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
 
-        key = orm_util.identity_key(User, [1])
+        key = ormutil.identity_key(User, [1])
         eq_(key, (User, (1,), None))
-        key = orm_util.identity_key(User, ident=[1])
+        key = ormutil.identity_key(User, ident=[1])
         eq_(key, (User, (1,), None))
 
-    def test_identity_key_scalar(self):
+    @_cases()
+    def test_identity_key_scalar(self, ormutil):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
 
-        key = orm_util.identity_key(User, 1)
+        key = ormutil.identity_key(User, 1)
         eq_(key, (User, (1,), None))
-        key = orm_util.identity_key(User, ident=1)
+        key = ormutil.identity_key(User, ident=1)
         eq_(key, (User, (1,), None))
 
-    def test_identity_key_2(self):
+    @_cases()
+    def test_identity_key_2(self, ormutil):
         users, User = self.tables.users, self.classes.User
 
         mapper(User, users)
@@ -472,16 +483,17 @@ class IdentityKeyTest(_fixtures.FixtureTest):
         u = User(name="u1")
         s.add(u)
         s.flush()
-        key = orm_util.identity_key(instance=u)
+        key = ormutil.identity_key(instance=u)
         eq_(key, (User, (u.id,), None))
 
-    def test_identity_key_3(self):
+    @_cases()
+    def test_identity_key_3(self, ormutil):
         User, users = self.classes.User, self.tables.users
 
         mapper(User, users)
 
         row = {users.c.id: 1, users.c.name: "Frank"}
-        key = orm_util.identity_key(User, row=row)
+        key = ormutil.identity_key(User, row=row)
         eq_(key, (User, (1,), None))
 
     def test_identity_key_token(self):