Improved DjangoDebug integration.

This commit is contained in:
Syrus Akbary 2016-08-14 13:43:17 -07:00
parent 3feae35f69
commit f74c23f02e
6 changed files with 19 additions and 22 deletions

View File

@ -49,7 +49,8 @@ class DjangoDebugMiddleware(object):
raise Exception('DjangoDebug need the context to be writable, context received: {}.'.format( raise Exception('DjangoDebug need the context to be writable, context received: {}.'.format(
context.__class__.__name__ context.__class__.__name__
)) ))
if info.schema.graphene_schema.T(DjangoDebug) == info.return_type: print info.schema.get_type('DjangoDebug'), info.return_type
if info.schema.get_type('DjangoDebug') == info.return_type:
return context.django_debug.get_debug_promise() return context.django_debug.get_debug_promise()
promise = next(root, args, context, info) promise = next(root, args, context, info)
context.django_debug.add_promise(promise) context.django_debug.add_promise(promise)

View File

@ -8,7 +8,7 @@ from time import time
from django.utils import six from django.utils import six
from django.utils.encoding import force_text from django.utils.encoding import force_text
from .types import DjangoDebugSQL, DjangoDebugPostgreSQL from .types import DjangoDebugSQL
class SQLQueryTriggered(Exception): class SQLQueryTriggered(Exception):
@ -142,8 +142,7 @@ class NormalCursorWrapper(object):
'iso_level': iso_level, 'iso_level': iso_level,
'encoding': conn.encoding, 'encoding': conn.encoding,
}) })
_sql = DjangoDebugPostgreSQL(**params)
else:
_sql = DjangoDebugSQL(**params) _sql = DjangoDebugSQL(**params)
# We keep `sql` to maintain backwards compatibility # We keep `sql` to maintain backwards compatibility
self.logger.object.sql.append(_sql) self.logger.object.sql.append(_sql)

View File

@ -1,7 +1,7 @@
from graphene import Boolean, Float, ObjectType, String from graphene import Boolean, Float, ObjectType, String
class DjangoDebugBaseSQL(ObjectType): class DjangoDebugSQL(ObjectType):
vendor = String() vendor = String()
alias = String() alias = String()
sql = String() sql = String()
@ -13,12 +13,7 @@ class DjangoDebugBaseSQL(ObjectType):
is_slow = Boolean() is_slow = Boolean()
is_select = Boolean() is_select = Boolean()
# Postgres
class DjangoDebugSQL(DjangoDebugBaseSQL):
pass
class DjangoDebugPostgreSQL(DjangoDebugBaseSQL):
trans_id = String() trans_id = String()
trans_status = String() trans_status = String()
iso_level = String() iso_level = String()

View File

@ -23,10 +23,11 @@ def test_should_query_field():
r2 = Reporter(last_name='Griffin') r2 = Reporter(last_name='Griffin')
r2.save() r2.save()
class ReporterType(DjangoNode, DjangoObjectType): class ReporterType(DjangoObjectType):
class Meta: class Meta:
model = Reporter model = Reporter
interfaces = (DjangoNode, )
class Query(graphene.ObjectType): class Query(graphene.ObjectType):
reporter = graphene.Field(ReporterType) reporter = graphene.Field(ReporterType)
@ -69,13 +70,14 @@ def test_should_query_list():
r2 = Reporter(last_name='Griffin') r2 = Reporter(last_name='Griffin')
r2.save() r2.save()
class ReporterType(DjangoNode, DjangoObjectType): class ReporterType(DjangoObjectType):
class Meta: class Meta:
model = Reporter model = Reporter
interfaces = (DjangoNode, )
class Query(graphene.ObjectType): class Query(graphene.ObjectType):
all_reporters = ReporterType.List() all_reporters = graphene.List(ReporterType)
debug = graphene.Field(DjangoDebug, name='__debug') debug = graphene.Field(DjangoDebug, name='__debug')
def resolve_all_reporters(self, *args, **kwargs): def resolve_all_reporters(self, *args, **kwargs):
@ -117,10 +119,11 @@ def test_should_query_connection():
r2 = Reporter(last_name='Griffin') r2 = Reporter(last_name='Griffin')
r2.save() r2.save()
class ReporterType(DjangoNode, DjangoObjectType): class ReporterType(DjangoObjectType):
class Meta: class Meta:
model = Reporter model = Reporter
interfaces = (DjangoNode, )
class Query(graphene.ObjectType): class Query(graphene.ObjectType):
all_reporters = DjangoConnectionField(ReporterType) all_reporters = DjangoConnectionField(ReporterType)
@ -173,13 +176,15 @@ def test_should_query_connectionfilter():
r2 = Reporter(last_name='Griffin') r2 = Reporter(last_name='Griffin')
r2.save() r2.save()
class ReporterType(DjangoNode, DjangoObjectType): class ReporterType(DjangoObjectType):
class Meta: class Meta:
model = Reporter model = Reporter
interfaces = (DjangoNode, )
class Query(graphene.ObjectType): class Query(graphene.ObjectType):
all_reporters = DjangoFilterConnectionField(ReporterType) all_reporters = DjangoFilterConnectionField(ReporterType)
s = graphene.String(resolver=lambda *_: "S")
debug = graphene.Field(DjangoDebug, name='__debug') debug = graphene.Field(DjangoDebug, name='__debug')
def resolve_all_reporters(self, *args, **kwargs): def resolve_all_reporters(self, *args, **kwargs):

View File

@ -1,6 +1,6 @@
from graphene import ObjectType, List from graphene import ObjectType, List
from .sql.types import DjangoDebugBaseSQL from .sql.types import DjangoDebugSQL
class DjangoDebug(ObjectType): class DjangoDebug(ObjectType):
sql = List(DjangoDebugBaseSQL) sql = List(DjangoDebugSQL)

View File

@ -22,9 +22,6 @@ class DjangoConnectionField(ConnectionField):
else: else:
return self.model._default_manager return self.model._default_manager
def default_resolver(self, root, args, context, info):
return getattr(root, self.source, self.get_manager())
@staticmethod @staticmethod
def connection_resolver(resolver, connection, default_manager, root, args, context, info): def connection_resolver(resolver, connection, default_manager, root, args, context, info):
iterable = resolver(root, args, context, info) iterable = resolver(root, args, context, info)