1
1
import graphene
2
2
import mongoengine
3
- import pytest
4
3
5
4
from graphene import Dynamic
6
5
from graphene import Node
9
8
10
9
from .models import Article , Editor , EmbeddedArticle , Player , Reporter
11
10
11
+ from .. import registry
12
12
from ..converter import convert_mongoengine_field
13
13
from ..fields import MongoengineConnectionField
14
14
from ..types import MongoengineObjectType
@@ -21,6 +21,7 @@ def assert_conversion(mongoengine_field, graphene_field, *args, **kwargs):
21
21
field = graphene_type .Field ()
22
22
return field
23
23
24
+
24
25
def test_should_unknown_mongoengine_field_raise_exception ():
25
26
with raises (Exception ) as excinfo :
26
27
convert_mongoengine_field (None )
@@ -43,6 +44,10 @@ def test_should_uuid_convert_id():
43
44
assert_conversion (mongoengine .UUIDField , graphene .ID )
44
45
45
46
47
+ def test_sould_int_convert_int ():
48
+ assert_conversion (mongoengine .IntField , graphene .Int )
49
+
50
+
46
51
def test_should_object_id_convert_id ():
47
52
assert_conversion (mongoengine .ObjectIdField , graphene .ID )
48
53
@@ -83,21 +88,32 @@ class Meta:
83
88
model = Editor
84
89
interfaces = (Node ,)
85
90
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 )
87
93
assert isinstance (dynamic_field , Dynamic )
88
94
graphene_type = dynamic_field .get_type ()
89
95
assert isinstance (graphene_type , graphene .Field )
90
96
assert graphene_type .type == E
91
97
92
98
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
+
93
108
def test_should_list_of_reference_convert_list ():
94
109
95
110
class A (MongoengineObjectType ):
96
111
97
112
class Meta :
98
113
model = Article
99
114
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 )
101
117
assert isinstance (graphene_field , graphene .List )
102
118
dynamic_field = graphene_field .get_type ()
103
119
assert dynamic_field ._of_type == A
@@ -110,7 +126,8 @@ class E(MongoengineObjectType):
110
126
class Meta :
111
127
model = EmbeddedArticle
112
128
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 )
114
131
assert isinstance (graphene_field , graphene .List )
115
132
dynamic_field = graphene_field .get_type ()
116
133
assert dynamic_field ._of_type == E
@@ -123,26 +140,30 @@ class E(MongoengineObjectType):
123
140
class Meta :
124
141
model = EmbeddedArticle
125
142
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 )
127
145
assert isinstance (graphene_field , graphene .List )
128
146
dynamic_field = graphene_field .get_type ()
129
147
assert dynamic_field ._of_type == E
130
148
131
149
132
150
def test_should_self_reference_convert_dynamic ():
151
+
133
152
class P (MongoengineObjectType ):
134
153
135
154
class Meta :
136
155
model = Player
137
156
interfaces = (Node ,)
138
157
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 )
140
160
assert isinstance (dynamic_field , Dynamic )
141
161
graphene_type = dynamic_field .get_type ()
142
162
assert isinstance (graphene_type , graphene .Field )
143
163
assert graphene_type .type == P
144
164
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 )
146
167
assert isinstance (graphene_field , MongoengineConnectionField )
147
168
148
169
@@ -158,7 +179,8 @@ class P(MongoengineObjectType):
158
179
class Meta :
159
180
model = Player
160
181
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 )
162
184
assert isinstance (graphene_field , graphene .List )
163
185
dynamic_field = graphene_field .get_type ()
164
186
assert dynamic_field ._of_type == P
0 commit comments