diff options
Diffstat (limited to 'test/orm/session.py')
-rw-r--r-- | test/orm/session.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/orm/session.py b/test/orm/session.py index 960f09309..705e56e96 100644 --- a/test/orm/session.py +++ b/test/orm/session.py @@ -176,6 +176,40 @@ class SessionTest(AssertMixin): assert s.query(Address).selectone().address_id == a.address_id assert s.query(User).selectfirst() is None + def _assert_key(self, got, expect): + assert got == expect, "expected %r got %r" % (expect, got) + + def test_identity_key_1(self): + mapper(User, users) + mapper(User, users, entity_name="en") + s = create_session() + key = s.identity_key(User, 1) + self._assert_key(key, (User, (1,), None)) + key = s.identity_key(User, 1, "en") + self._assert_key(key, (User, (1,), "en")) + key = s.identity_key(User, 1, entity_name="en") + self._assert_key(key, (User, (1,), "en")) + key = s.identity_key(User, ident=1, entity_name="en") + self._assert_key(key, (User, (1,), "en")) + + def test_identity_key_2(self): + mapper(User, users) + s = create_session() + u = User() + s.save(u) + s.flush() + key = s.identity_key(instance=u) + self._assert_key(key, (User, (u.user_id,), None)) + + def test_identity_key_3(self): + mapper(User, users) + mapper(User, users, entity_name="en") + s = create_session() + row = {users.c.user_id: 1, users.c.user_name: "Frank"} + key = s.identity_key(User, row=row) + self._assert_key(key, (User, (1,), None)) + key = s.identity_key(User, row=row, entity_name="en") + self._assert_key(key, (User, (1,), "en")) class OrphanDeletionTest(AssertMixin): |