3
3
from .star_wars_schema import star_wars_schema
4
4
5
5
6
+ def query_star_wars (source ):
7
+ result = graphql_sync (star_wars_schema , source )
8
+ assert result .errors is None
9
+ return result .data
10
+
11
+
6
12
def describe_star_wars_introspection_tests ():
7
13
def describe_basic_introspection ():
8
14
def allows_querying_the_schema_for_types ():
9
- query = """
10
- query IntrospectionTypeQuery {
15
+ data = query_star_wars (
16
+ """
17
+ {
11
18
__schema {
12
19
types {
13
20
name
14
21
}
15
22
}
16
23
}
17
24
"""
18
- expected = {
25
+ )
26
+ # Include all types used by StarWars schema, introspection types and
27
+ # standard directives. For example, `Boolean` is used in `@skip`,
28
+ # `@include` and also inside introspection types.
29
+ assert data == {
19
30
"__schema" : {
20
31
"types" : [
21
32
{"name" : "Query" },
@@ -37,64 +48,63 @@ def allows_querying_the_schema_for_types():
37
48
}
38
49
}
39
50
40
- result = graphql_sync (star_wars_schema , query )
41
- assert result == (expected , None )
42
-
43
51
def allows_querying_the_schema_for_query_type ():
44
- query = """
45
- query IntrospectionQueryTypeQuery {
52
+ data = query_star_wars (
53
+ """
54
+ {
46
55
__schema {
47
56
queryType {
48
57
name
49
58
}
50
59
}
51
60
}
52
61
"""
53
- expected = { "__schema" : { "queryType" : { "name" : "Query" }}}
54
- result = graphql_sync ( star_wars_schema , query )
55
- assert result == ( expected , None )
62
+ )
63
+
64
+ assert data == { "__schema" : { "queryType" : { "name" : "Query" }}}
56
65
57
66
def allows_querying_the_schema_for_a_specific_type ():
58
- query = """
59
- query IntrospectionDroidTypeQuery {
67
+ data = query_star_wars (
68
+ """
69
+ {
60
70
__type(name: "Droid") {
61
71
name
62
72
}
63
73
}
64
74
"""
65
- expected = {"__type" : {"name" : "Droid" }}
66
- result = graphql_sync (star_wars_schema , query )
67
- assert result == (expected , None )
75
+ )
76
+ assert data == {"__type" : {"name" : "Droid" }}
68
77
69
78
def allows_querying_the_schema_for_an_object_kind ():
70
- query = """
71
- query IntrospectionDroidKindQuery {
79
+ data = query_star_wars (
80
+ """
81
+ {
72
82
__type(name: "Droid") {
73
83
name
74
84
kind
75
85
}
76
86
}
77
87
"""
78
- expected = {"__type" : {"name" : "Droid" , "kind" : "OBJECT" }}
79
- result = graphql_sync (star_wars_schema , query )
80
- assert result == (expected , None )
88
+ )
89
+ assert data == {"__type" : {"name" : "Droid" , "kind" : "OBJECT" }}
81
90
82
91
def allows_querying_the_schema_for_an_interface_kind ():
83
- query = """
84
- query IntrospectionCharacterKindQuery {
92
+ data = query_star_wars (
93
+ """
94
+ {
85
95
__type(name: "Character") {
86
96
name
87
97
kind
88
98
}
89
99
}
90
100
"""
91
- expected = {"__type" : {"name" : "Character" , "kind" : "INTERFACE" }}
92
- result = graphql_sync (star_wars_schema , query )
93
- assert result == (expected , None )
101
+ )
102
+ assert data == {"__type" : {"name" : "Character" , "kind" : "INTERFACE" }}
94
103
95
104
def allows_querying_the_schema_for_object_fields ():
96
- query = """
97
- query IntrospectionDroidFieldsQuery {
105
+ data = query_star_wars (
106
+ """
107
+ {
98
108
__type(name: "Droid") {
99
109
name
100
110
fields {
@@ -107,7 +117,8 @@ def allows_querying_the_schema_for_object_fields():
107
117
}
108
118
}
109
119
"""
110
- expected = {
120
+ )
121
+ assert data == {
111
122
"__type" : {
112
123
"name" : "Droid" ,
113
124
"fields" : [
@@ -126,12 +137,11 @@ def allows_querying_the_schema_for_object_fields():
126
137
],
127
138
}
128
139
}
129
- result = graphql_sync (star_wars_schema , query )
130
- assert result == (expected , None )
131
140
132
141
def allows_querying_the_schema_for_nested_object_fields ():
133
- query = """
134
- query IntrospectionDroidNestedFieldsQuery {
142
+ data = query_star_wars (
143
+ """
144
+ {
135
145
__type(name: "Droid") {
136
146
name
137
147
fields {
@@ -148,7 +158,8 @@ def allows_querying_the_schema_for_nested_object_fields():
148
158
}
149
159
}
150
160
"""
151
- expected = {
161
+ )
162
+ assert data == {
152
163
"__type" : {
153
164
"name" : "Droid" ,
154
165
"fields" : [
@@ -203,12 +214,11 @@ def allows_querying_the_schema_for_nested_object_fields():
203
214
],
204
215
}
205
216
}
206
- result = graphql_sync (star_wars_schema , query )
207
- assert result == (expected , None )
208
217
209
218
def allows_querying_the_schema_for_field_args ():
210
- query = """
211
- query IntrospectionQueryTypeQuery {
219
+ data = query_star_wars (
220
+ """
221
+ {
212
222
__schema {
213
223
queryType {
214
224
fields {
@@ -231,7 +241,9 @@ def allows_querying_the_schema_for_field_args():
231
241
}
232
242
}
233
243
"""
234
- expected = {
244
+ )
245
+
246
+ assert data == {
235
247
"__schema" : {
236
248
"queryType" : {
237
249
"fields" : [
@@ -292,23 +304,22 @@ def allows_querying_the_schema_for_field_args():
292
304
}
293
305
}
294
306
}
295
- result = graphql_sync (star_wars_schema , query )
296
- assert result == (expected , None )
297
307
298
308
def allows_querying_the_schema_for_documentation ():
299
- query = """
300
- query IntrospectionDroidDescriptionQuery {
309
+ data = query_star_wars (
310
+ """
311
+ {
301
312
__type(name: "Droid") {
302
313
name
303
314
description
304
315
}
305
316
}
306
317
"""
307
- expected = {
318
+ )
319
+
320
+ assert data == {
308
321
"__type" : {
309
322
"name" : "Droid" ,
310
323
"description" : "A mechanical creature in the Star Wars universe." ,
311
324
}
312
325
}
313
- result = graphql_sync (star_wars_schema , query )
314
- assert result == (expected , None )
0 commit comments