Skip to content

Commit 50ed913

Browse files
committed
Fixed tests. Improved sql debugging with params
1 parent 342511c commit 50ed913

File tree

2 files changed

+14
-28
lines changed

2 files changed

+14
-28
lines changed

graphene/contrib/django/debug/sql/tracking.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ def _record(self, method, sql, params):
117117
'sql': self.db.ops.last_executed_query(
118118
self.cursor, sql, self._quote_params(params)),
119119
'duration': duration,
120-
'raw_sql': sql,
120+
'raw_sql': sql % params,
121121
'params': _params,
122122
'start_time': start_time,
123123
'stop_time': stop_time,

graphene/contrib/django/debug/tests/test_query.py

+13-27
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,16 @@
22

33
import graphene
44
from graphene.contrib.django import DjangoNode, DjangoConnectionField
5-
from graphene.contrib.django.filter import DjangoFilterConnectionField
5+
from graphene.contrib.django.utils import DJANGO_FILTER_INSTALLED
66

77
from ...tests.models import Reporter
88
from ..plugin import DjangoDebugPlugin
99

1010
# from examples.starwars_django.models import Character
1111

12-
from django.db.models import Count
13-
1412
pytestmark = pytest.mark.django_db
1513

1614

17-
def count(qs):
18-
query = qs.query
19-
query.add_annotation(Count('*'), alias='__count', is_summary=True)
20-
query.select = []
21-
query.default_cols = False
22-
return query
23-
24-
2515
def test_should_query_field():
2616
r1 = Reporter(last_name='ABA')
2717
r1.save()
@@ -154,21 +144,21 @@ def resolve_all_reporters_connection(self, *args, **kwargs):
154144
}
155145
}]
156146
},
157-
'__debug': {
158-
'sql': [{
159-
'rawSql': str(count(Reporter.objects.all()))
160-
}, {
161-
'rawSql': str(Reporter.objects.all()[:1].query)
162-
}]
163-
}
164147
}
165148
schema = graphene.Schema(query=Query, plugins=[DjangoDebugPlugin()])
166149
result = schema.execute(query)
167150
assert not result.errors
168-
assert result.data == expected
151+
assert result.data['allReporters'] == expected['allReporters']
152+
assert 'COUNT' in result.data['__debug']['sql'][0]['rawSql']
153+
query = str(Reporter.objects.all()[:1].query)
154+
assert result.data['__debug']['sql'][1]['rawSql'] == query
169155

170156

157+
@pytest.mark.skipif(not DJANGO_FILTER_INSTALLED,
158+
reason="requires django-filter")
171159
def test_should_query_connectionfilter():
160+
from graphene.contrib.django.filter import DjangoFilterConnectionField
161+
172162
r1 = Reporter(last_name='ABA')
173163
r1.save()
174164
r2 = Reporter(last_name='Griffin')
@@ -209,15 +199,11 @@ def resolve_all_reporters_connection_filter(self, *args, **kwargs):
209199
}
210200
}]
211201
},
212-
'__debug': {
213-
'sql': [{
214-
'rawSql': str(count(Reporter.objects.all()))
215-
}, {
216-
'rawSql': str(Reporter.objects.all()[:1].query)
217-
}]
218-
}
219202
}
220203
schema = graphene.Schema(query=Query, plugins=[DjangoDebugPlugin()])
221204
result = schema.execute(query)
222205
assert not result.errors
223-
assert result.data == expected
206+
assert result.data['allReporters'] == expected['allReporters']
207+
assert 'COUNT' in result.data['__debug']['sql'][0]['rawSql']
208+
query = str(Reporter.objects.all()[:1].query)
209+
assert result.data['__debug']['sql'][1]['rawSql'] == query

0 commit comments

Comments
 (0)