]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
test cases for close_final=False & close_final=True
authordankrzeminski32 <dankrzeminski32@gmail.com>
Mon, 24 Jul 2023 19:20:32 +0000 (14:20 -0500)
committerdankrzeminski32 <dankrzeminski32@gmail.com>
Mon, 24 Jul 2023 19:20:32 +0000 (14:20 -0500)
test/orm/test_session.py

index 6d599d68eaf5cbd5dc999b0594a66d71fbef34d6..8835d2f0a3c6697fd6cc0dd0a84c4d423537635b 100644 (file)
@@ -1261,6 +1261,29 @@ class SessionStateTest(_fixtures.FixtureTest):
         assert u1 not in sess
         assert object_session(u1) is None
 
+    def test_session_close_final(self):
+        users, User = self.tables.users, self.classes.User
+        self.mapper_registry.map_imperatively(User, users)
+
+        s1 = fixture_session(close_final=True)
+        u1 = User()
+
+        close_all_sessions()
+
+        assert_raises(sa.exc.InvalidRequestError, s1.add, u1)
+
+    def test_session_close_not_final(self):
+        users, User = self.tables.users, self.classes.User
+        self.mapper_registry.map_imperatively(User, users)
+
+        s1 = fixture_session(close_final=False)
+        u1 = User()
+
+        close_all_sessions()
+        s1.add(u1)
+
+        assert u1 in s1
+
 
 class DeferredRelationshipExpressionTest(_fixtures.FixtureTest):
     run_inserts = None