]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
dont raise assertions when in autocommit mode [ticket:1046]
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 16 May 2008 22:15:44 +0000 (22:15 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 16 May 2008 22:15:44 +0000 (22:15 +0000)
lib/sqlalchemy/orm/session.py
test/orm/session.py

index 440f69ae86ad9d068c5b037436811936007f6be8..5583012e530e9698044f10a975372c2d4aafa601 100644 (file)
@@ -253,7 +253,7 @@ class SessionTransaction(object):
         if self.nested:
             self.session.flush()
             
-        if self.autoflush:
+        if self.autoflush and not self.session.autocommit:
             # TODO: the "dirty_states" assertion is expensive,
             # so consider these assertions as temporary
             # during development
index 058548e2c574d6c63fb4f26561782d10b98ee6f9..c07169611fee6f5b95a6443a3229a4da25f9db97 100644 (file)
@@ -270,7 +270,18 @@ class SessionTest(_fixtures.FixtureTest):
         assert newad not in u.addresses
         # pending objects dont get expired
         assert newad.email_address == 'a new address'
+    
+    @testing.resolve_artifact_names
+    def test_autocommit_doesnt_raise_on_pending(self):
+        mapper(User, users)
+        session = create_session(autocommit=True)
+
+        session.add(User(name='ed'))
 
+        session.begin()
+        session.flush()
+        session.commit()
+        
     @testing.resolve_artifact_names
     def test_textual_execute(self):
         """test that Session.execute() converts to text()"""