summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-05-16 22:15:44 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-05-16 22:15:44 +0000
commit7d3ba0dec7c5e64f62108d7c4fb9b0cec1cc586a (patch)
tree8e8cf10e442193d6f735d63e25751bbdda168586
parent07496da9b5272451fa85b02871369b3f3ba8bcca (diff)
downloadsqlalchemy-7d3ba0dec7c5e64f62108d7c4fb9b0cec1cc586a.tar.gz
dont raise assertions when in autocommit mode [ticket:1046]
-rw-r--r--lib/sqlalchemy/orm/session.py2
-rw-r--r--test/orm/session.py11
2 files changed, 12 insertions, 1 deletions
diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py
index 440f69ae8..5583012e5 100644
--- a/lib/sqlalchemy/orm/session.py
+++ b/lib/sqlalchemy/orm/session.py
@@ -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
diff --git a/test/orm/session.py b/test/orm/session.py
index 058548e2c..c07169611 100644
--- a/test/orm/session.py
+++ b/test/orm/session.py
@@ -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()"""