1
1
import graphene
2
+ import pytest
2
3
from graphene .relay import Node
3
4
from graphene_django import DjangoConnectionField , DjangoObjectType
4
5
@@ -24,7 +25,7 @@ class Meta:
24
25
25
26
class Query (graphene .ObjectType ):
26
27
reporter = graphene .Field (ReporterType )
27
- debug = graphene .Field (DjangoDebug , name = "_debug " )
28
+ debug = graphene .Field (DjangoDebug , name = "__debug " )
28
29
29
30
def resolve_reporter (self , info , ** args ):
30
31
return Reporter .objects .first ()
@@ -34,7 +35,7 @@ def resolve_reporter(self, info, **args):
34
35
reporter {
35
36
lastName
36
37
}
37
- _debug {
38
+ __debug {
38
39
sql {
39
40
rawSql
40
41
}
@@ -43,7 +44,9 @@ def resolve_reporter(self, info, **args):
43
44
"""
44
45
expected = {
45
46
"reporter" : {"lastName" : "ABA" },
46
- "_debug" : {"sql" : [{"rawSql" : str (Reporter .objects .order_by ("pk" )[:1 ].query )}]},
47
+ "__debug" : {
48
+ "sql" : [{"rawSql" : str (Reporter .objects .order_by ("pk" )[:1 ].query )}]
49
+ },
47
50
}
48
51
schema = graphene .Schema (query = Query )
49
52
result = schema .execute (
@@ -53,7 +56,10 @@ def resolve_reporter(self, info, **args):
53
56
assert result .data == expected
54
57
55
58
56
- def test_should_query_nested_field ():
59
+ @pytest .mark .parametrize ("max_limit,does_count" , [(None , True ), (100 , False )])
60
+ def test_should_query_nested_field (graphene_settings , max_limit , does_count ):
61
+ graphene_settings .RELAY_CONNECTION_MAX_LIMIT = max_limit
62
+
57
63
r1 = Reporter (last_name = "ABA" )
58
64
r1 .save ()
59
65
r2 = Reporter (last_name = "Griffin" )
@@ -111,11 +117,18 @@ def resolve_reporter(self, info, **args):
111
117
assert not result .errors
112
118
query = str (Reporter .objects .order_by ("pk" )[:1 ].query )
113
119
assert result .data ["__debug" ]["sql" ][0 ]["rawSql" ] == query
114
- assert "COUNT" in result .data ["__debug" ]["sql" ][1 ]["rawSql" ]
115
- assert "tests_reporter_pets" in result .data ["__debug" ]["sql" ][2 ]["rawSql" ]
116
- assert "COUNT" in result .data ["__debug" ]["sql" ][3 ]["rawSql" ]
117
- assert "tests_reporter_pets" in result .data ["__debug" ]["sql" ][4 ]["rawSql" ]
118
- assert len (result .data ["__debug" ]["sql" ]) == 5
120
+ if does_count :
121
+ assert "COUNT" in result .data ["__debug" ]["sql" ][1 ]["rawSql" ]
122
+ assert "tests_reporter_pets" in result .data ["__debug" ]["sql" ][2 ]["rawSql" ]
123
+ assert "COUNT" in result .data ["__debug" ]["sql" ][3 ]["rawSql" ]
124
+ assert "tests_reporter_pets" in result .data ["__debug" ]["sql" ][4 ]["rawSql" ]
125
+ assert len (result .data ["__debug" ]["sql" ]) == 5
126
+ else :
127
+ assert len (result .data ["__debug" ]["sql" ]) == 3
128
+ for i in range (len (result .data ["__debug" ]["sql" ])):
129
+ assert "COUNT" not in result .data ["__debug" ]["sql" ][i ]["rawSql" ]
130
+ assert "tests_reporter_pets" in result .data ["__debug" ]["sql" ][1 ]["rawSql" ]
131
+ assert "tests_reporter_pets" in result .data ["__debug" ]["sql" ][2 ]["rawSql" ]
119
132
120
133
assert result .data ["reporter" ] == expected ["reporter" ]
121
134
@@ -133,7 +146,7 @@ class Meta:
133
146
134
147
class Query (graphene .ObjectType ):
135
148
all_reporters = graphene .List (ReporterType )
136
- debug = graphene .Field (DjangoDebug , name = "_debug " )
149
+ debug = graphene .Field (DjangoDebug , name = "__debug " )
137
150
138
151
def resolve_all_reporters (self , info , ** args ):
139
152
return Reporter .objects .all ()
@@ -143,7 +156,7 @@ def resolve_all_reporters(self, info, **args):
143
156
allReporters {
144
157
lastName
145
158
}
146
- _debug {
159
+ __debug {
147
160
sql {
148
161
rawSql
149
162
}
@@ -152,7 +165,7 @@ def resolve_all_reporters(self, info, **args):
152
165
"""
153
166
expected = {
154
167
"allReporters" : [{"lastName" : "ABA" }, {"lastName" : "Griffin" }],
155
- "_debug " : {"sql" : [{"rawSql" : str (Reporter .objects .all ().query )}]},
168
+ "__debug " : {"sql" : [{"rawSql" : str (Reporter .objects .all ().query )}]},
156
169
}
157
170
schema = graphene .Schema (query = Query )
158
171
result = schema .execute (
@@ -162,7 +175,10 @@ def resolve_all_reporters(self, info, **args):
162
175
assert result .data == expected
163
176
164
177
165
- def test_should_query_connection ():
178
+ @pytest .mark .parametrize ("max_limit,does_count" , [(None , True ), (100 , False )])
179
+ def test_should_query_connection (graphene_settings , max_limit , does_count ):
180
+ graphene_settings .RELAY_CONNECTION_MAX_LIMIT = max_limit
181
+
166
182
r1 = Reporter (last_name = "ABA" )
167
183
r1 .save ()
168
184
r2 = Reporter (last_name = "Griffin" )
@@ -175,7 +191,7 @@ class Meta:
175
191
176
192
class Query (graphene .ObjectType ):
177
193
all_reporters = DjangoConnectionField (ReporterType )
178
- debug = graphene .Field (DjangoDebug , name = "_debug " )
194
+ debug = graphene .Field (DjangoDebug , name = "__debug " )
179
195
180
196
def resolve_all_reporters (self , info , ** args ):
181
197
return Reporter .objects .all ()
@@ -189,7 +205,7 @@ def resolve_all_reporters(self, info, **args):
189
205
}
190
206
}
191
207
}
192
- _debug {
208
+ __debug {
193
209
sql {
194
210
rawSql
195
211
}
@@ -203,12 +219,22 @@ def resolve_all_reporters(self, info, **args):
203
219
)
204
220
assert not result .errors
205
221
assert result .data ["allReporters" ] == expected ["allReporters" ]
206
- assert "COUNT" in result .data ["_debug" ]["sql" ][0 ]["rawSql" ]
207
- query = str (Reporter .objects .all ()[:1 ].query )
208
- assert result .data ["_debug" ]["sql" ][1 ]["rawSql" ] == query
209
-
222
+ if does_count :
223
+ assert len (result .data ["__debug" ]["sql" ]) == 2
224
+ assert "COUNT" in result .data ["__debug" ]["sql" ][0 ]["rawSql" ]
225
+ query = str (Reporter .objects .all ()[:1 ].query )
226
+ assert result .data ["__debug" ]["sql" ][1 ]["rawSql" ] == query
227
+ else :
228
+ assert len (result .data ["__debug" ]["sql" ]) == 1
229
+ assert "COUNT" not in result .data ["__debug" ]["sql" ][0 ]["rawSql" ]
230
+ query = str (Reporter .objects .all ()[:1 ].query )
231
+ assert result .data ["__debug" ]["sql" ][0 ]["rawSql" ] == query
232
+
233
+
234
+ @pytest .mark .parametrize ("max_limit,does_count" , [(None , True ), (100 , False )])
235
+ def test_should_query_connectionfilter (graphene_settings , max_limit , does_count ):
236
+ graphene_settings .RELAY_CONNECTION_MAX_LIMIT = max_limit
210
237
211
- def test_should_query_connectionfilter ():
212
238
from ...filter import DjangoFilterConnectionField
213
239
214
240
r1 = Reporter (last_name = "ABA" )
@@ -224,7 +250,7 @@ class Meta:
224
250
class Query (graphene .ObjectType ):
225
251
all_reporters = DjangoFilterConnectionField (ReporterType , fields = ["last_name" ])
226
252
s = graphene .String (resolver = lambda * _ : "S" )
227
- debug = graphene .Field (DjangoDebug , name = "_debug " )
253
+ debug = graphene .Field (DjangoDebug , name = "__debug " )
228
254
229
255
def resolve_all_reporters (self , info , ** args ):
230
256
return Reporter .objects .all ()
@@ -238,7 +264,7 @@ def resolve_all_reporters(self, info, **args):
238
264
}
239
265
}
240
266
}
241
- _debug {
267
+ __debug {
242
268
sql {
243
269
rawSql
244
270
}
@@ -252,6 +278,13 @@ def resolve_all_reporters(self, info, **args):
252
278
)
253
279
assert not result .errors
254
280
assert result .data ["allReporters" ] == expected ["allReporters" ]
255
- assert "COUNT" in result .data ["_debug" ]["sql" ][0 ]["rawSql" ]
256
- query = str (Reporter .objects .all ()[:1 ].query )
257
- assert result .data ["_debug" ]["sql" ][1 ]["rawSql" ] == query
281
+ if does_count :
282
+ assert len (result .data ["__debug" ]["sql" ]) == 2
283
+ assert "COUNT" in result .data ["__debug" ]["sql" ][0 ]["rawSql" ]
284
+ query = str (Reporter .objects .all ()[:1 ].query )
285
+ assert result .data ["__debug" ]["sql" ][1 ]["rawSql" ] == query
286
+ else :
287
+ assert len (result .data ["__debug" ]["sql" ]) == 1
288
+ assert "COUNT" not in result .data ["__debug" ]["sql" ][0 ]["rawSql" ]
289
+ query = str (Reporter .objects .all ()[:1 ].query )
290
+ assert result .data ["__debug" ]["sql" ][0 ]["rawSql" ] == query
0 commit comments