]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- Repaired the "no statement condition"
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 21 Jun 2011 14:03:40 +0000 (10:03 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 21 Jun 2011 14:03:40 +0000 (10:03 -0400)
assertion in Query which would attempt
to raise if a generative method were called
after from_statement() were called.
[ticket:2199].

CHANGES
lib/sqlalchemy/__init__.py
lib/sqlalchemy/orm/query.py
test/orm/test_query.py

diff --git a/CHANGES b/CHANGES
index dd304e34199e1d03e546f605c9080e7e2ec612b4..b227364d10c576571b3c2593c2379b965bd8f357 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -3,6 +3,15 @@
 =======
 CHANGES
 =======
+0.6.9
+=====
+- orm
+  - Repaired the "no statement condition" 
+    assertion in Query which would attempt
+    to raise if a generative method were called
+    after from_statement() were called.
+    [ticket:2199].
+
 0.6.8
 =====
 - orm
index ae887876261acf43d9ae4c7161a8ee8a0d11ea59..8d4e2a57d397bb49140b4c80758bcb9e93ed382b 100644 (file)
@@ -115,6 +115,6 @@ from sqlalchemy.engine import create_engine, engine_from_config
 __all__ = sorted(name for name, obj in locals().items()
                  if not (name.startswith('_') or inspect.ismodule(obj)))
 
-__version__ = '0.6.8'
+__version__ = '0.6.9'
 
 del inspect, sys
index c5bf59d6295110f29ff4a0bce20024b5e64f5c44..e065eccb19cd330280162a2e4e2062fe41497c1a 100644 (file)
@@ -367,7 +367,7 @@ class Query(object):
     def _no_statement_condition(self, meth):
         if not self._enable_assertions:
             return
-        if self._statement:
+        if self._statement is not None:
             raise sa_exc.InvalidRequestError(
                 ("Query.%s() being called on a Query with an existing full "
                  "statement - can't apply criterion.") % meth)
index 6067964ef138352f4a5935b594cbb6ceb3174174..d8e1a4d70bfb73537b6f8fbf742f45b3aa110cbb 100644 (file)
@@ -417,20 +417,26 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL):
     def test_from_statement(self):
         s = create_session()
 
-        q = s.query(User).filter(User.id==5)
-        assert_raises(sa_exc.InvalidRequestError, q.from_statement, "x")
-
-        q = s.query(User).filter_by(id=5)
-        assert_raises(sa_exc.InvalidRequestError, q.from_statement, "x")
-
-        q = s.query(User).limit(5)
-        assert_raises(sa_exc.InvalidRequestError, q.from_statement, "x")
-
-        q = s.query(User).group_by(User.name)
-        assert_raises(sa_exc.InvalidRequestError, q.from_statement, "x")
+        for meth, arg, kw in [
+            (Query.filter, (User.id==5,), {}),
+            (Query.filter_by, (), {'id':5}),
+            (Query.limit, (5, ), {}),
+            (Query.group_by, (User.name,), {}),
+            (Query.order_by, (User.name,), {})
+        ]:
+            q = s.query(User)
+            q = meth(q, *arg, **kw)
+            assert_raises(
+                sa_exc.InvalidRequestError,
+                q.from_statement, "x"
+            )
 
-        q = s.query(User).order_by(User.name)
-        assert_raises(sa_exc.InvalidRequestError, q.from_statement, "x")
+            q = s.query(User)
+            q = q.from_statement("x")
+            assert_raises(
+                sa_exc.InvalidRequestError,
+                meth, q, *arg, **kw
+            )
 
 class OperatorTest(QueryTest, AssertsCompiledSQL):
     """test sql.Comparator implementation for MapperProperties"""