summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-08-17 15:24:41 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2015-08-17 15:24:41 -0400
commite6ab7a5ff5f1e4f87686b700ed9b58d50a6cb900 (patch)
tree3f5d7f803c66644ee8157caa0b5121acb4646700
parentfef58e7cb66b978bcce214f36217b8c90c296c2f (diff)
downloadsqlalchemy-ticket_3499.tar.gz
- make sure we maintain the has_mapper_entities flagticket_3499
-rw-r--r--lib/sqlalchemy/orm/query.py1
-rw-r--r--test/orm/test_query.py36
2 files changed, 37 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py
index b932726a2..5d08cbcd5 100644
--- a/lib/sqlalchemy/orm/query.py
+++ b/lib/sqlalchemy/orm/query.py
@@ -115,6 +115,7 @@ class Query(object):
entity_wrapper = _QueryEntity
self._entities = []
self._primary_entity = None
+ self._has_mapper_entities = False
for ent in util.to_list(entities):
entity_wrapper(self, ent)
diff --git a/test/orm/test_query.py b/test/orm/test_query.py
index 5f290a255..3ed2e7d7a 100644
--- a/test/orm/test_query.py
+++ b/test/orm/test_query.py
@@ -2195,6 +2195,42 @@ class FilterTest(QueryTest, AssertsCompiledSQL):
)
+class HasMapperEntitiesTest(QueryTest):
+ def test_entity(self):
+ User = self.classes.User
+ s = Session()
+
+ q = s.query(User)
+
+ assert q._has_mapper_entities
+
+ def test_cols(self):
+ User = self.classes.User
+ s = Session()
+
+ q = s.query(User.id)
+
+ assert not q._has_mapper_entities
+
+ def test_cols_set_entities(self):
+ User = self.classes.User
+ s = Session()
+
+ q = s.query(User.id)
+
+ q._set_entities(User)
+ assert q._has_mapper_entities
+
+ def test_entity_set_entities(self):
+ User = self.classes.User
+ s = Session()
+
+ q = s.query(User)
+
+ q._set_entities(User.id)
+ assert not q._has_mapper_entities
+
+
class SetOpsTest(QueryTest, AssertsCompiledSQL):
__dialect__ = 'default'