Skip to content

Commit 5c55dd9

Browse files
committed
feat: Support EmbeddedDocumentListField.
1 parent 5ca293a commit 5c55dd9

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

graphene_mongo/converter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ def convert_date_to_string(field, registry=None):
5858

5959

6060
@convert_mongoengine_field.register(mongoengine.ListField)
61+
@convert_mongoengine_field.register(mongoengine.EmbeddedDocumentListField)
6162
def convert_field_to_list(field, registry=None):
6263
base_type = convert_mongoengine_field(field.field, registry=registry)
63-
6464
if isinstance(base_type, (Dynamic)):
6565
base_type = base_type.get_type()
6666
if base_type is None:

graphene_mongo/tests/models.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
connect, Document, EmbeddedDocument
44
)
55
from mongoengine.fields import (
6-
DateTimeField, EmailField, EmbeddedDocumentField, ListField,
6+
DateTimeField, EmailField, EmbeddedDocumentField,
7+
EmbeddedDocumentListField, ListField,
78
MapField, ReferenceField, StringField
89
)
910

@@ -52,6 +53,7 @@ class Reporter(Document):
5253
email = EmailField()
5354
articles = ListField(ReferenceField(Article))
5455
embedded_articles = ListField(EmbeddedDocumentField(EmbeddedArticle))
56+
embedded_list_articles = EmbeddedDocumentListField(EmbeddedArticle)
5557
# FIXME
5658
# custom_map = MapField(field=StringField())
5759
awards = ListField(StringField())

graphene_mongo/tests/test_converter.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,19 @@ class Meta:
116116
assert dynamic_field._of_type == E
117117

118118

119+
def test_should_embedded_list_convert_list():
120+
121+
class E(MongoengineObjectType):
122+
123+
class Meta:
124+
model = EmbeddedArticle
125+
126+
graphene_field = convert_mongoengine_field(Reporter._fields['embedded_list_articles'], E._meta.registry)
127+
assert isinstance(graphene_field, graphene.List)
128+
dynamic_field = graphene_field.get_type()
129+
assert dynamic_field._of_type == E
130+
131+
119132
def test_should_self_reference_convert_dynamic():
120133
class P(MongoengineObjectType):
121134

0 commit comments

Comments
 (0)