11import graphene
22import mongoengine
3- import pytest
43
54from graphene import Dynamic
65from graphene import Node
98
109from .models import Article , Editor , EmbeddedArticle , Player , Reporter
1110
11+ from .. import registry
1212from ..converter import convert_mongoengine_field
1313from ..fields import MongoengineConnectionField
1414from ..types import MongoengineObjectType
@@ -21,6 +21,7 @@ def assert_conversion(mongoengine_field, graphene_field, *args, **kwargs):
2121 field = graphene_type .Field ()
2222 return field
2323
24+
2425def test_should_unknown_mongoengine_field_raise_exception ():
2526 with raises (Exception ) as excinfo :
2627 convert_mongoengine_field (None )
@@ -43,6 +44,10 @@ def test_should_uuid_convert_id():
4344 assert_conversion (mongoengine .UUIDField , graphene .ID )
4445
4546
47+ def test_sould_int_convert_int ():
48+ assert_conversion (mongoengine .IntField , graphene .Int )
49+
50+
4651def test_should_object_id_convert_id ():
4752 assert_conversion (mongoengine .ObjectIdField , graphene .ID )
4853
@@ -83,21 +88,32 @@ class Meta:
8388 model = Editor
8489 interfaces = (Node ,)
8590
86- dynamic_field = convert_mongoengine_field (EmbeddedArticle ._fields ['editor' ], E ._meta .registry )
91+ dynamic_field = convert_mongoengine_field (
92+ EmbeddedArticle ._fields ['editor' ], E ._meta .registry )
8793 assert isinstance (dynamic_field , Dynamic )
8894 graphene_type = dynamic_field .get_type ()
8995 assert isinstance (graphene_type , graphene .Field )
9096 assert graphene_type .type == E
9197
9298
99+ def test_should_convert_none ():
100+ registry .reset_global_registry ()
101+ dynamic_field = convert_mongoengine_field (
102+ EmbeddedArticle ._fields ['editor' ], registry .get_global_registry ())
103+ assert isinstance (dynamic_field , Dynamic )
104+ graphene_type = dynamic_field .get_type ()
105+ assert graphene_type is None
106+
107+
93108def test_should_list_of_reference_convert_list ():
94109
95110 class A (MongoengineObjectType ):
96111
97112 class Meta :
98113 model = Article
99114
100- graphene_field = convert_mongoengine_field (Reporter ._fields ['articles' ], A ._meta .registry )
115+ graphene_field = convert_mongoengine_field (
116+ Reporter ._fields ['articles' ], A ._meta .registry )
101117 assert isinstance (graphene_field , graphene .List )
102118 dynamic_field = graphene_field .get_type ()
103119 assert dynamic_field ._of_type == A
@@ -110,7 +126,8 @@ class E(MongoengineObjectType):
110126 class Meta :
111127 model = EmbeddedArticle
112128
113- graphene_field = convert_mongoengine_field (Reporter ._fields ['embedded_articles' ], E ._meta .registry )
129+ graphene_field = convert_mongoengine_field (
130+ Reporter ._fields ['embedded_articles' ], E ._meta .registry )
114131 assert isinstance (graphene_field , graphene .List )
115132 dynamic_field = graphene_field .get_type ()
116133 assert dynamic_field ._of_type == E
@@ -123,26 +140,30 @@ class E(MongoengineObjectType):
123140 class Meta :
124141 model = EmbeddedArticle
125142
126- graphene_field = convert_mongoengine_field (Reporter ._fields ['embedded_list_articles' ], E ._meta .registry )
143+ graphene_field = convert_mongoengine_field (
144+ Reporter ._fields ['embedded_list_articles' ], E ._meta .registry )
127145 assert isinstance (graphene_field , graphene .List )
128146 dynamic_field = graphene_field .get_type ()
129147 assert dynamic_field ._of_type == E
130148
131149
132150def test_should_self_reference_convert_dynamic ():
151+
133152 class P (MongoengineObjectType ):
134153
135154 class Meta :
136155 model = Player
137156 interfaces = (Node ,)
138157
139- dynamic_field = convert_mongoengine_field (Player ._fields ['opponent' ], P ._meta .registry )
158+ dynamic_field = convert_mongoengine_field (
159+ Player ._fields ['opponent' ], P ._meta .registry )
140160 assert isinstance (dynamic_field , Dynamic )
141161 graphene_type = dynamic_field .get_type ()
142162 assert isinstance (graphene_type , graphene .Field )
143163 assert graphene_type .type == P
144164
145- graphene_field = convert_mongoengine_field (Player ._fields ['players' ], P ._meta .registry )
165+ graphene_field = convert_mongoengine_field (
166+ Player ._fields ['players' ], P ._meta .registry )
146167 assert isinstance (graphene_field , MongoengineConnectionField )
147168
148169
@@ -158,7 +179,8 @@ class P(MongoengineObjectType):
158179 class Meta :
159180 model = Player
160181
161- graphene_field = convert_mongoengine_field (Player ._fields ['players' ], P ._meta .registry )
182+ graphene_field = convert_mongoengine_field (
183+ Player ._fields ['players' ], P ._meta .registry )
162184 assert isinstance (graphene_field , graphene .List )
163185 dynamic_field = graphene_field .get_type ()
164186 assert dynamic_field ._of_type == P
0 commit comments