Fixed Q object merge edge case (MongoEngine/mongoengine#109)
This commit is contained in:
parent
52f85aab18
commit
576e198ece
@ -4,6 +4,7 @@ Changelog
|
|||||||
|
|
||||||
Changes in 0.7.X
|
Changes in 0.7.X
|
||||||
=================
|
=================
|
||||||
|
- Fixed Q object merge edge case (MongoEngine/mongoengine#109)
|
||||||
- Fixed reloading on sharded documents (hmarr/mongoengine#569)
|
- Fixed reloading on sharded documents (hmarr/mongoengine#569)
|
||||||
- Added NotUniqueError for duplicate keys (MongoEngine/mongoengine#62)
|
- Added NotUniqueError for duplicate keys (MongoEngine/mongoengine#62)
|
||||||
- Added custom collection / sequence naming for SequenceFields (MongoEngine/mongoengine#92)
|
- Added custom collection / sequence naming for SequenceFields (MongoEngine/mongoengine#92)
|
||||||
|
@ -218,7 +218,7 @@ class QNode(object):
|
|||||||
def _combine(self, other, operation):
|
def _combine(self, other, operation):
|
||||||
"""Combine this node with another node into a QCombination object.
|
"""Combine this node with another node into a QCombination object.
|
||||||
"""
|
"""
|
||||||
if other.empty:
|
if getattr(other, 'empty', True):
|
||||||
return self
|
return self
|
||||||
|
|
||||||
if self.empty:
|
if self.empty:
|
||||||
|
@ -1347,6 +1347,21 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
query = Foo.objects(Q(__raw__=q1) & Q(c=1))._query
|
query = Foo.objects(Q(__raw__=q1) & Q(c=1))._query
|
||||||
self.assertEqual(query, {'$or': [{'a': 1}, {'b': 1}], 'c': 1})
|
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):
|
def test_exec_js_query(self):
|
||||||
"""Ensure that queries are properly formed for use in exec_js.
|
"""Ensure that queries are properly formed for use in exec_js.
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user