Add integration tests
This commit is contained in:
		| @@ -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): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user