Add test for querying on fields of list(EmbeddedDocument) (with inheritance on the EmbededDoc)

This commit is contained in:
Bastien Gérard 2019-05-02 00:08:16 +02:00
parent abfabc30c9
commit d98f36ceff
2 changed files with 18 additions and 1 deletions

View File

@ -4,6 +4,7 @@ Changelog
Development Development
=========== ===========
- Fix querying on List(EmbeddedDocument) subclasses fields #1961
- Fix querying on (Generic)EmbeddedDocument subclasses fields #475 - Fix querying on (Generic)EmbeddedDocument subclasses fields #475
- expose `mongoengine.connection.disconnect` and `mongoengine.connection.disconnect_all` - expose `mongoengine.connection.disconnect` and `mongoengine.connection.disconnect_all`
- Fix disconnect function #566 #1599 #605 #607 #1213 #565 - Fix disconnect function #566 #1599 #605 #607 #1213 #565

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from mongoengine import Document, StringField, ValidationError, EmbeddedDocument, EmbeddedDocumentField, \ from mongoengine import Document, StringField, ValidationError, EmbeddedDocument, EmbeddedDocumentField, \
InvalidQueryError, LookUpError, IntField, GenericEmbeddedDocumentField, ListField InvalidQueryError, LookUpError, IntField, GenericEmbeddedDocumentField, ListField, EmbeddedDocumentListField
from tests.utils import MongoDBTestCase from tests.utils import MongoDBTestCase
@ -108,6 +108,22 @@ class TestEmbeddedDocumentField(MongoDBTestCase):
self.assertEqual(only_p.settings.base_foo, 'basefoo') self.assertEqual(only_p.settings.base_foo, 'basefoo')
self.assertIsNone(only_p.settings.sub_foo) self.assertIsNone(only_p.settings.sub_foo)
def test_query_list_embedded_document_with_inheritance(self):
class BaseEmbeddedDoc(EmbeddedDocument):
s = StringField()
meta = {'allow_inheritance': True}
class EmbeddedDoc(BaseEmbeddedDoc):
s2 = StringField()
class MyDoc(Document):
embeds = EmbeddedDocumentListField(BaseEmbeddedDoc)
doc = MyDoc(embeds=[EmbeddedDoc(s='foo', s2='bar')]).save()
self.assertEqual(MyDoc.objects(embeds__s='foo').first(), doc)
self.assertEqual(MyDoc.objects(embeds__s2='bar').first(), doc)
class TestGenericEmbeddedDocumentField(MongoDBTestCase): class TestGenericEmbeddedDocumentField(MongoDBTestCase):