1
1
import graphene
2
- import mongoengine
3
-
4
- from graphene import (
5
- Dynamic , Node
6
- )
7
-
2
+ from mongoengine import fields
8
3
from py .test import raises
9
4
10
5
from .models import (
11
6
Article , Editor , EmbeddedArticle , Player , Reporter ,
12
- ProfessorMetadata , ProfessorVector ,
7
+ Parent , ProfessorMetadata , ProfessorVector ,
13
8
Publisher )
14
9
from .. import registry
15
10
from ..converter import convert_mongoengine_field
@@ -32,80 +27,80 @@ def test_should_unknown_mongoengine_field_raise_exception():
32
27
33
28
34
29
def test_should_email_convert_string ():
35
- assert_conversion (mongoengine .EmailField , graphene .String )
30
+ assert_conversion (fields .EmailField , graphene .String )
36
31
37
32
38
33
def test_should_string_convert_string ():
39
- assert_conversion (mongoengine .StringField , graphene .String )
34
+ assert_conversion (fields .StringField , graphene .String )
40
35
41
36
42
37
def test_should_url_convert_string ():
43
- assert_conversion (mongoengine .URLField , graphene .String )
38
+ assert_conversion (fields .URLField , graphene .String )
44
39
45
40
46
41
def test_should_uuid_convert_id ():
47
- assert_conversion (mongoengine .UUIDField , graphene .ID )
42
+ assert_conversion (fields .UUIDField , graphene .ID )
48
43
49
44
50
45
def test_sould_int_convert_int ():
51
- assert_conversion (mongoengine .IntField , graphene .Int )
46
+ assert_conversion (fields .IntField , graphene .Int )
52
47
53
48
54
49
def test_sould_long_convert_int ():
55
- assert_conversion (mongoengine .LongField , graphene .Int )
50
+ assert_conversion (fields .LongField , graphene .Int )
56
51
57
52
58
53
def test_should_object_id_convert_id ():
59
- assert_conversion (mongoengine .ObjectIdField , graphene .ID )
54
+ assert_conversion (fields .ObjectIdField , graphene .ID )
60
55
61
56
62
57
def test_should_boolean_convert_boolean ():
63
- assert_conversion (mongoengine .BooleanField , graphene .Boolean )
58
+ assert_conversion (fields .BooleanField , graphene .Boolean )
64
59
65
60
66
61
def test_should_decimal_convert_float ():
67
- assert_conversion (mongoengine .DecimalField , graphene .Float )
62
+ assert_conversion (fields .DecimalField , graphene .Float )
68
63
69
64
70
65
def test_should_float_convert_float ():
71
- assert_conversion (mongoengine .FloatField , graphene .Float )
66
+ assert_conversion (fields .FloatField , graphene .Float )
72
67
73
68
74
69
def test_should_datetime_convert_datetime ():
75
- assert_conversion (mongoengine .DateTimeField , graphene .DateTime )
70
+ assert_conversion (fields .DateTimeField , graphene .DateTime )
76
71
77
72
78
73
def test_should_dict_convert_json ():
79
- assert_conversion (mongoengine .DictField , graphene .JSONString )
74
+ assert_conversion (fields .DictField , graphene .JSONString )
80
75
81
76
82
77
def test_should_map_convert_json ():
83
- assert_conversion (mongoengine .MapField , graphene .JSONString , field = mongoengine .StringField ())
78
+ assert_conversion (fields .MapField , graphene .JSONString , field = fields .StringField ())
84
79
85
80
86
81
def test_should_point_convert_field ():
87
- graphene_type = convert_mongoengine_field (mongoengine .PointField ())
82
+ graphene_type = convert_mongoengine_field (fields .PointField ())
88
83
assert isinstance (graphene_type , graphene .Field )
89
84
assert isinstance (graphene_type .type .type , graphene .String )
90
85
assert isinstance (graphene_type .type .coordinates , graphene .List )
91
86
92
87
93
88
def test_should_polygon_covert_field ():
94
- graphene_type = convert_mongoengine_field (mongoengine .PolygonField ())
89
+ graphene_type = convert_mongoengine_field (fields .PolygonField ())
95
90
assert isinstance (graphene_type , graphene .Field )
96
91
assert isinstance (graphene_type .type .type , graphene .String )
97
92
assert isinstance (graphene_type .type .coordinates , graphene .List )
98
93
99
94
100
95
def test_should_multipolygon_convert_field ():
101
- graphene_type = convert_mongoengine_field (mongoengine .MultiPolygonField ())
96
+ graphene_type = convert_mongoengine_field (fields .MultiPolygonField ())
102
97
assert isinstance (graphene_type , graphene .Field )
103
98
assert isinstance (graphene_type .type .type , graphene .String )
104
99
assert isinstance (graphene_type .type .coordinates , graphene .List )
105
100
106
101
107
102
def test_should_field_convert_list ():
108
- assert_conversion (mongoengine .ListField , graphene .List , field = mongoengine .StringField ())
103
+ assert_conversion (fields .ListField , graphene .List , field = fields .StringField ())
109
104
110
105
111
106
def test_should_reference_convert_dynamic ():
@@ -114,11 +109,11 @@ class E(MongoengineObjectType):
114
109
115
110
class Meta :
116
111
model = Editor
117
- interfaces = (Node ,)
112
+ interfaces = (graphene . Node ,)
118
113
119
114
dynamic_field = convert_mongoengine_field (
120
115
EmbeddedArticle ._fields ['editor' ], E ._meta .registry )
121
- assert isinstance (dynamic_field , Dynamic )
116
+ assert isinstance (dynamic_field , graphene . Dynamic )
122
117
graphene_type = dynamic_field .get_type ()
123
118
assert isinstance (graphene_type , graphene .Field )
124
119
assert graphene_type .type == E
@@ -130,12 +125,12 @@ class P(MongoengineObjectType):
130
125
131
126
class Meta :
132
127
model = Publisher
133
- interfaces = (Node ,)
128
+ interfaces = (graphene . Node ,)
134
129
135
130
dynamic_field = convert_mongoengine_field (
136
131
Editor ._fields ['company' ], P ._meta .registry )
137
132
138
- assert isinstance (dynamic_field , Dynamic )
133
+ assert isinstance (dynamic_field , graphene . Dynamic )
139
134
graphene_type = dynamic_field .get_type ()
140
135
assert isinstance (graphene_type , graphene .Field )
141
136
assert graphene_type .type == P
@@ -147,11 +142,11 @@ class PM(MongoengineObjectType):
147
142
148
143
class Meta :
149
144
model = ProfessorMetadata
150
- interfaces = (Node ,)
145
+ interfaces = (graphene . Node ,)
151
146
152
147
dynamic_field = convert_mongoengine_field (
153
148
ProfessorVector ._fields ['metadata' ], PM ._meta .registry )
154
- assert isinstance (dynamic_field , Dynamic )
149
+ assert isinstance (dynamic_field , graphene . Dynamic )
155
150
graphene_type = dynamic_field .get_type ()
156
151
assert isinstance (graphene_type , graphene .Field )
157
152
assert graphene_type .type == PM
@@ -161,7 +156,7 @@ def test_should_convert_none():
161
156
registry .reset_global_registry ()
162
157
dynamic_field = convert_mongoengine_field (
163
158
EmbeddedArticle ._fields ['editor' ], registry .get_global_registry ())
164
- assert isinstance (dynamic_field , Dynamic )
159
+ assert isinstance (dynamic_field , graphene . Dynamic )
165
160
graphene_type = dynamic_field .get_type ()
166
161
assert graphene_type is None
167
162
@@ -170,7 +165,7 @@ def test_should_convert_none_lazily():
170
165
registry .reset_global_registry ()
171
166
dynamic_field = convert_mongoengine_field (
172
167
Editor ._fields ['company' ], registry .get_global_registry ())
173
- assert isinstance (dynamic_field , Dynamic )
168
+ assert isinstance (dynamic_field , graphene . Dynamic )
174
169
graphene_type = dynamic_field .get_type ()
175
170
assert graphene_type is None
176
171
@@ -223,11 +218,11 @@ class P(MongoengineObjectType):
223
218
224
219
class Meta :
225
220
model = Player
226
- interfaces = (Node ,)
221
+ interfaces = (graphene . Node ,)
227
222
228
223
dynamic_field = convert_mongoengine_field (
229
224
Player ._fields ['opponent' ], P ._meta .registry )
230
- assert isinstance (dynamic_field , Dynamic )
225
+ assert isinstance (dynamic_field , graphene . Dynamic )
231
226
graphene_type = dynamic_field .get_type ()
232
227
assert isinstance (graphene_type , graphene .Field )
233
228
assert graphene_type .type == P
@@ -300,3 +295,30 @@ class Meta:
300
295
Article ._fields ['editor' ], A ._meta .registry
301
296
).get_type ()
302
297
assert editor_field .description == "An Editor of a publication."
298
+
299
+
300
+ def test_should_generic_reference_convert_union ():
301
+
302
+ class A (MongoengineObjectType ):
303
+
304
+ class Meta :
305
+ model = Article
306
+
307
+ class E (MongoengineObjectType ):
308
+
309
+ class Meta :
310
+ model = Editor
311
+
312
+ class P (MongoengineObjectType ):
313
+
314
+ class Meta :
315
+ model = Parent
316
+
317
+ generic_reference_field = convert_mongoengine_field (
318
+ Parent ._fields ['generic_reference' ], None
319
+ )
320
+ print (generic_reference_field )
321
+ """
322
+ # print(Parent._fields['generic_reference'].__dict__)
323
+ assert isinstance(generic_reference_field, graphene.Field)
324
+ """
0 commit comments