Add integration tests
This commit is contained in:
parent
2b17985a11
commit
6b9d71554e
@ -2193,6 +2193,40 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
Site.objects(id=s.id).update_one(
|
Site.objects(id=s.id).update_one(
|
||||||
pull_all__collaborators__helpful__name=['Ross'])
|
pull_all__collaborators__helpful__name=['Ross'])
|
||||||
|
|
||||||
|
def test_pull_from_nested_embedded_using_in_nin(self):
|
||||||
|
"""Ensure that the 'pull' update operation works on embedded documents using 'in' and 'nin' operators.
|
||||||
|
"""
|
||||||
|
|
||||||
|
class User(EmbeddedDocument):
|
||||||
|
name = StringField()
|
||||||
|
|
||||||
|
def __unicode__(self):
|
||||||
|
return '%s' % self.name
|
||||||
|
|
||||||
|
class Collaborator(EmbeddedDocument):
|
||||||
|
helpful = ListField(EmbeddedDocumentField(User))
|
||||||
|
unhelpful = ListField(EmbeddedDocumentField(User))
|
||||||
|
|
||||||
|
class Site(Document):
|
||||||
|
name = StringField(max_length=75, unique=True, required=True)
|
||||||
|
collaborators = EmbeddedDocumentField(Collaborator)
|
||||||
|
|
||||||
|
Site.drop_collection()
|
||||||
|
|
||||||
|
a = User(name='Esteban')
|
||||||
|
b = User(name='Frank')
|
||||||
|
x = User(name='Harry')
|
||||||
|
y = User(name='John')
|
||||||
|
|
||||||
|
s = Site(name="test", collaborators=Collaborator(
|
||||||
|
helpful=[a, b], unhelpful=[x, y])).save()
|
||||||
|
|
||||||
|
Site.objects(id=s.id).update_one(pull__collaborators__helpful__name__in=['Esteban']) # Pull a
|
||||||
|
self.assertEqual(Site.objects.first().collaborators['helpful'], [b])
|
||||||
|
|
||||||
|
Site.objects(id=s.id).update_one(pull__collaborators__unhelpful__name__nin=['John']) # Pull x
|
||||||
|
self.assertEqual(Site.objects.first().collaborators['unhelpful'], [y])
|
||||||
|
|
||||||
def test_pull_from_nested_mapfield(self):
|
def test_pull_from_nested_mapfield(self):
|
||||||
|
|
||||||
class Collaborator(EmbeddedDocument):
|
class Collaborator(EmbeddedDocument):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user