Skip to content

Commit a443144

Browse files
committed
Merge pull request MongoEngine#995 from seglberg/PR/952-squash
Unit Test - Unique Multikey Index
2 parents d6b2d8d + 73f0867 commit a443144

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

tests/fields/fields.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3675,6 +3675,31 @@ def test_delete(self):
36753675
# deleted from the database
36763676
self.assertEqual(number, 2)
36773677

3678+
def test_empty_list_embedded_documents_with_unique_field(self):
3679+
"""
3680+
Tests that only one document with an empty list of embedded documents
3681+
that have a unique field can be saved, but if the unique field is
3682+
also sparse than multiple documents with an empty list can be saved.
3683+
"""
3684+
class EmbeddedWithUnique(EmbeddedDocument):
3685+
number = IntField(unique=True)
3686+
3687+
class A(Document):
3688+
my_list = ListField(EmbeddedDocumentField(EmbeddedWithUnique))
3689+
3690+
a1 = A(my_list=[]).save()
3691+
self.assertRaises(NotUniqueError, lambda: A(my_list=[]).save())
3692+
3693+
class EmbeddedWithSparseUnique(EmbeddedDocument):
3694+
number = IntField(unique=True, sparse=True)
3695+
3696+
class B(Document):
3697+
my_list = ListField(EmbeddedDocumentField(EmbeddedWithSparseUnique))
3698+
3699+
b1 = B(my_list=[]).save()
3700+
b2 = B(my_list=[]).save()
3701+
3702+
36783703
def test_filtered_delete(self):
36793704
"""
36803705
Tests the delete method of a List of Embedded Documents

0 commit comments

Comments
 (0)