Skip to content

Commit 0ffff37

Browse files
Merge branch 'feat-retrieving-queried-fields-only' into feat-pagination-performance
2 parents 1ff79aa + 726389e commit 0ffff37

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

graphene_mongo/fields.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,9 @@ def is_filterable(k):
119119
),
120120
):
121121
return False
122+
if getattr(converted, "type", None) and getattr(converted.type, "_of_type", None) and issubclass(
123+
(get_type(converted.type.of_type)), graphene.Union):
124+
return False
122125
if isinstance(converted, (graphene.List)) and issubclass(
123126
getattr(converted, "_of_type", None), graphene.Union
124127
):

graphene_mongo/tests/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ class Reporter(mongoengine.Document):
8484
mongoengine.EmbeddedDocumentField(EmbeddedArticle)
8585
)
8686
embedded_list_articles = mongoengine.EmbeddedDocumentListField(EmbeddedArticle)
87-
generic_reference = mongoengine.GenericReferenceField(choices=[Article, Editor])
87+
generic_reference = mongoengine.GenericReferenceField(choices=[Article, Editor],required=True)
8888
generic_embedded_document = mongoengine.GenericEmbeddedDocumentField(
8989
choices=[EmbeddedArticle, EmbeddedFoo]
9090
)

graphene_mongo/tests/test_converter.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,8 +352,12 @@ class Meta:
352352
Reporter._fields["generic_reference"], registry.get_global_registry()
353353
)
354354
assert isinstance(generic_reference_field, graphene.Field)
355-
assert isinstance(generic_reference_field.type(), graphene.Union)
356-
assert generic_reference_field.type()._meta.types == (A, E)
355+
if not Reporter._fields["generic_reference"].required:
356+
assert isinstance(generic_reference_field.type(), graphene.Union)
357+
assert generic_reference_field.type()._meta.types == (A, E)
358+
else:
359+
assert issubclass(generic_reference_field.type.of_type, graphene.Union)
360+
assert generic_reference_field.type.of_type._meta.types == (A, E)
357361

358362

359363
def test_should_generic_embedded_document_convert_union():

0 commit comments

Comments
 (0)