Fixed Q object merge edge case (MongoEngine/mongoengine#109)

This commit is contained in:
Ross Lawley
2012-09-03 11:33:30 +01:00
parent 52f85aab18
commit 576e198ece
3 changed files with 17 additions and 1 deletions

View File

@@ -1347,6 +1347,21 @@ class QuerySetTest(unittest.TestCase):
query = Foo.objects(Q(__raw__=q1) & Q(c=1))._query
self.assertEqual(query, {'$or': [{'a': 1}, {'b': 1}], 'c': 1})
def test_q_merge_queries_edge_case(self):
class User(Document):
email = EmailField(required=False)
name = StringField()
User.drop_collection()
pk = ObjectId()
User(email='example@example.com', pk=pk).save()
self.assertEqual(1, User.objects.filter(
Q(email='example@example.com') |
Q(name='John Doe')
).limit(2).filter(pk=pk).count())
def test_exec_js_query(self):
"""Ensure that queries are properly formed for use in exec_js.
"""