Skip to content

Commit 2f5f30e

Browse files
committed
Improved middleware testing
1 parent 786e250 commit 2f5f30e

File tree

1 file changed

+43
-2
lines changed

1 file changed

+43
-2
lines changed

graphql/execution/tests/test_executor.py

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -566,21 +566,62 @@ def resolver(*_):
566566
def test_middleware():
567567
doc = '''{
568568
ok
569+
not_ok
569570
}'''
570571

571572
class Data(object):
572573

573574
def ok(self):
574575
return 'ok'
575576

577+
def not_ok(self):
578+
return 'not_ok'
579+
576580
doc_ast = parse(doc)
577581

578582
Type = GraphQLObjectType('Type', {
579583
'ok': GraphQLField(GraphQLString),
584+
'not_ok': GraphQLField(GraphQLString),
580585
})
581-
middlewares = MiddlewareManager(lambda *_: None)
586+
587+
def reversed_middleware(next, *args, **kwargs):
588+
p = next(*args, **kwargs)
589+
return p.then(lambda x: x[::-1])
590+
591+
middlewares = MiddlewareManager(reversed_middleware)
592+
result = execute(GraphQLSchema(Type), doc_ast, Data(), middlewares=middlewares)
593+
assert result.data == {'ok': 'ko', 'not_ok': 'ko_ton'}
594+
595+
596+
def test_middleware_class():
597+
doc = '''{
598+
ok
599+
not_ok
600+
}'''
601+
602+
class Data(object):
603+
604+
def ok(self):
605+
return 'ok'
606+
607+
def not_ok(self):
608+
return 'not_ok'
609+
610+
doc_ast = parse(doc)
611+
612+
Type = GraphQLObjectType('Type', {
613+
'ok': GraphQLField(GraphQLString),
614+
'not_ok': GraphQLField(GraphQLString),
615+
})
616+
617+
class MyMiddleware(object):
618+
def resolve(self, next, *args, **kwargs):
619+
p = next(*args, **kwargs)
620+
return p.then(lambda x: x[::-1])
621+
622+
middlewares = MiddlewareManager(MyMiddleware())
582623
result = execute(GraphQLSchema(Type), doc_ast, Data(), middlewares=middlewares)
583-
assert result.data == {'ok': None}
624+
assert result.data == {'ok': 'ko', 'not_ok': 'ko_ton'}
584625

585626

586627
def test_middleware_wrong():

0 commit comments

Comments
 (0)