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 )
@@ -83,21 +84,32 @@ class Meta:
83
84
model = Editor
84
85
interfaces = (Node ,)
85
86
86
- dynamic_field = convert_mongoengine_field (EmbeddedArticle ._fields ['editor' ], E ._meta .registry )
87
+ dynamic_field = convert_mongoengine_field (
88
+ EmbeddedArticle ._fields ['editor' ], E ._meta .registry )
87
89
assert isinstance (dynamic_field , Dynamic )
88
90
graphene_type = dynamic_field .get_type ()
89
91
assert isinstance (graphene_type , graphene .Field )
90
92
assert graphene_type .type == E
91
93
92
94
95
+ def test_should_convert_none ():
96
+ registry .reset_global_registry ()
97
+ dynamic_field = convert_mongoengine_field (
98
+ EmbeddedArticle ._fields ['editor' ], registry .get_global_registry ())
99
+ assert isinstance (dynamic_field , Dynamic )
100
+ graphene_type = dynamic_field .get_type ()
101
+ assert graphene_type is None
102
+
103
+
93
104
def test_should_list_of_reference_convert_list ():
94
105
95
106
class A (MongoengineObjectType ):
96
107
97
108
class Meta :
98
109
model = Article
99
110
100
- graphene_field = convert_mongoengine_field (Reporter ._fields ['articles' ], A ._meta .registry )
111
+ graphene_field = convert_mongoengine_field (
112
+ Reporter ._fields ['articles' ], A ._meta .registry )
101
113
assert isinstance (graphene_field , graphene .List )
102
114
dynamic_field = graphene_field .get_type ()
103
115
assert dynamic_field ._of_type == A
@@ -110,7 +122,8 @@ class E(MongoengineObjectType):
110
122
class Meta :
111
123
model = EmbeddedArticle
112
124
113
- graphene_field = convert_mongoengine_field (Reporter ._fields ['embedded_articles' ], E ._meta .registry )
125
+ graphene_field = convert_mongoengine_field (
126
+ Reporter ._fields ['embedded_articles' ], E ._meta .registry )
114
127
assert isinstance (graphene_field , graphene .List )
115
128
dynamic_field = graphene_field .get_type ()
116
129
assert dynamic_field ._of_type == E
@@ -123,26 +136,30 @@ class E(MongoengineObjectType):
123
136
class Meta :
124
137
model = EmbeddedArticle
125
138
126
- graphene_field = convert_mongoengine_field (Reporter ._fields ['embedded_list_articles' ], E ._meta .registry )
139
+ graphene_field = convert_mongoengine_field (
140
+ Reporter ._fields ['embedded_list_articles' ], E ._meta .registry )
127
141
assert isinstance (graphene_field , graphene .List )
128
142
dynamic_field = graphene_field .get_type ()
129
143
assert dynamic_field ._of_type == E
130
144
131
145
132
146
def test_should_self_reference_convert_dynamic ():
147
+
133
148
class P (MongoengineObjectType ):
134
149
135
150
class Meta :
136
151
model = Player
137
152
interfaces = (Node ,)
138
153
139
- dynamic_field = convert_mongoengine_field (Player ._fields ['opponent' ], P ._meta .registry )
154
+ dynamic_field = convert_mongoengine_field (
155
+ Player ._fields ['opponent' ], P ._meta .registry )
140
156
assert isinstance (dynamic_field , Dynamic )
141
157
graphene_type = dynamic_field .get_type ()
142
158
assert isinstance (graphene_type , graphene .Field )
143
159
assert graphene_type .type == P
144
160
145
- graphene_field = convert_mongoengine_field (Player ._fields ['players' ], P ._meta .registry )
161
+ graphene_field = convert_mongoengine_field (
162
+ Player ._fields ['players' ], P ._meta .registry )
146
163
assert isinstance (graphene_field , MongoengineConnectionField )
147
164
148
165
@@ -158,7 +175,8 @@ class P(MongoengineObjectType):
158
175
class Meta :
159
176
model = Player
160
177
161
- graphene_field = convert_mongoengine_field (Player ._fields ['players' ], P ._meta .registry )
178
+ graphene_field = convert_mongoengine_field (
179
+ Player ._fields ['players' ], P ._meta .registry )
162
180
assert isinstance (graphene_field , graphene .List )
163
181
dynamic_field = graphene_field .get_type ()
164
182
assert dynamic_field ._of_type == P
0 commit comments