@@ -566,21 +566,62 @@ def resolver(*_):
566566def 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
586627def test_middleware_wrong ():
0 commit comments