Skip to content

Commit 05a4c82

Browse files
authored
Merge pull request #197 from dan98765/give_middleware_its_own_test_file
Move middleware tests to their own test file
2 parents 04560ea + e70d66c commit 05a4c82

File tree

2 files changed

+140
-119
lines changed

2 files changed

+140
-119
lines changed

graphql/execution/tests/test_executor.py

Lines changed: 0 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -586,125 +586,6 @@ def resolver(*_):
586586
)
587587

588588

589-
def test_middleware():
590-
# type: () -> None
591-
doc = """{
592-
ok
593-
not_ok
594-
}"""
595-
596-
class Data(object):
597-
def ok(self):
598-
# type: () -> str
599-
return "ok"
600-
601-
def not_ok(self):
602-
# type: () -> str
603-
return "not_ok"
604-
605-
doc_ast = parse(doc)
606-
607-
Type = GraphQLObjectType(
608-
"Type",
609-
{"ok": GraphQLField(GraphQLString), "not_ok": GraphQLField(GraphQLString)},
610-
)
611-
612-
def reversed_middleware(next, *args, **kwargs):
613-
# type: (Callable, *Any, **Any) -> Promise
614-
p = next(*args, **kwargs)
615-
return p.then(lambda x: x[::-1])
616-
617-
middlewares = MiddlewareManager(reversed_middleware)
618-
result = execute(GraphQLSchema(Type), doc_ast, Data(), middleware=middlewares)
619-
assert result.data == {"ok": "ko", "not_ok": "ko_ton"}
620-
621-
622-
def test_middleware_class():
623-
# type: () -> None
624-
doc = """{
625-
ok
626-
not_ok
627-
}"""
628-
629-
class Data(object):
630-
def ok(self):
631-
# type: () -> str
632-
return "ok"
633-
634-
def not_ok(self):
635-
# type: () -> str
636-
return "not_ok"
637-
638-
doc_ast = parse(doc)
639-
640-
Type = GraphQLObjectType(
641-
"Type",
642-
{"ok": GraphQLField(GraphQLString), "not_ok": GraphQLField(GraphQLString)},
643-
)
644-
645-
class MyMiddleware(object):
646-
def resolve(self, next, *args, **kwargs):
647-
# type: (Callable, *Any, **Any) -> Promise
648-
p = next(*args, **kwargs)
649-
return p.then(lambda x: x[::-1])
650-
651-
middlewares = MiddlewareManager(MyMiddleware())
652-
result = execute(GraphQLSchema(Type), doc_ast, Data(), middleware=middlewares)
653-
assert result.data == {"ok": "ko", "not_ok": "ko_ton"}
654-
655-
656-
def test_middleware_skip_promise_wrap():
657-
# type: () -> None
658-
doc = """{
659-
ok
660-
not_ok
661-
}"""
662-
663-
class Data(object):
664-
def ok(self):
665-
# type: () -> str
666-
return "ok"
667-
668-
def not_ok(self):
669-
# type: () -> str
670-
return "not_ok"
671-
672-
doc_ast = parse(doc)
673-
674-
Type = GraphQLObjectType(
675-
"Type",
676-
{"ok": GraphQLField(GraphQLString), "not_ok": GraphQLField(GraphQLString)},
677-
)
678-
679-
class MyPromiseMiddleware(object):
680-
def resolve(self, next, *args, **kwargs):
681-
# type: (Callable, *Any, **Any) -> Promise
682-
return Promise.resolve(next(*args, **kwargs))
683-
684-
class MyEmptyMiddleware(object):
685-
def resolve(self, next, *args, **kwargs):
686-
# type: (Callable, *Any, **Any) -> str
687-
return next(*args, **kwargs)
688-
689-
middlewares_with_promise = MiddlewareManager(
690-
MyPromiseMiddleware(), wrap_in_promise=False
691-
)
692-
middlewares_without_promise = MiddlewareManager(
693-
MyEmptyMiddleware(), wrap_in_promise=False
694-
)
695-
696-
result1 = execute(
697-
GraphQLSchema(Type), doc_ast, Data(), middleware=middlewares_with_promise
698-
)
699-
result2 = execute(
700-
GraphQLSchema(Type), doc_ast, Data(), middleware=middlewares_without_promise
701-
)
702-
assert result1.data == result2.data and result1.data == {
703-
"ok": "ok",
704-
"not_ok": "not_ok",
705-
}
706-
707-
708589
def test_executor_properly_propogates_path_data(mocker):
709590
# type: (MockFixture) -> None
710591
time_mock = mocker.patch("time.time")
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
# type: ignore
2+
import json
3+
4+
from pytest import raises
5+
6+
from graphql.error import GraphQLError
7+
from graphql.execution import MiddlewareManager, execute
8+
from graphql.language.parser import parse
9+
from graphql.type import (
10+
GraphQLArgument,
11+
GraphQLBoolean,
12+
GraphQLField,
13+
GraphQLInt,
14+
GraphQLList,
15+
GraphQLObjectType,
16+
GraphQLSchema,
17+
GraphQLString,
18+
GraphQLNonNull,
19+
GraphQLID,
20+
)
21+
from promise import Promise
22+
23+
24+
def test_middleware():
25+
# type: () -> None
26+
doc = """{
27+
ok
28+
not_ok
29+
}"""
30+
31+
class Data(object):
32+
def ok(self):
33+
# type: () -> str
34+
return "ok"
35+
36+
def not_ok(self):
37+
# type: () -> str
38+
return "not_ok"
39+
40+
doc_ast = parse(doc)
41+
42+
Type = GraphQLObjectType(
43+
"Type",
44+
{"ok": GraphQLField(GraphQLString), "not_ok": GraphQLField(GraphQLString)},
45+
)
46+
47+
def reversed_middleware(next, *args, **kwargs):
48+
# type: (Callable, *Any, **Any) -> Promise
49+
p = next(*args, **kwargs)
50+
return p.then(lambda x: x[::-1])
51+
52+
middlewares = MiddlewareManager(reversed_middleware)
53+
result = execute(GraphQLSchema(Type), doc_ast, Data(), middleware=middlewares)
54+
assert result.data == {"ok": "ko", "not_ok": "ko_ton"}
55+
56+
57+
def test_middleware_class():
58+
# type: () -> None
59+
doc = """{
60+
ok
61+
not_ok
62+
}"""
63+
64+
class Data(object):
65+
def ok(self):
66+
# type: () -> str
67+
return "ok"
68+
69+
def not_ok(self):
70+
# type: () -> str
71+
return "not_ok"
72+
73+
doc_ast = parse(doc)
74+
75+
Type = GraphQLObjectType(
76+
"Type",
77+
{"ok": GraphQLField(GraphQLString), "not_ok": GraphQLField(GraphQLString)},
78+
)
79+
80+
class MyMiddleware(object):
81+
def resolve(self, next, *args, **kwargs):
82+
# type: (Callable, *Any, **Any) -> Promise
83+
p = next(*args, **kwargs)
84+
return p.then(lambda x: x[::-1])
85+
86+
middlewares = MiddlewareManager(MyMiddleware())
87+
result = execute(GraphQLSchema(Type), doc_ast, Data(), middleware=middlewares)
88+
assert result.data == {"ok": "ko", "not_ok": "ko_ton"}
89+
90+
91+
def test_middleware_skip_promise_wrap():
92+
# type: () -> None
93+
doc = """{
94+
ok
95+
not_ok
96+
}"""
97+
98+
class Data(object):
99+
def ok(self):
100+
# type: () -> str
101+
return "ok"
102+
103+
def not_ok(self):
104+
# type: () -> str
105+
return "not_ok"
106+
107+
doc_ast = parse(doc)
108+
109+
Type = GraphQLObjectType(
110+
"Type",
111+
{"ok": GraphQLField(GraphQLString), "not_ok": GraphQLField(GraphQLString)},
112+
)
113+
114+
class MyPromiseMiddleware(object):
115+
def resolve(self, next, *args, **kwargs):
116+
# type: (Callable, *Any, **Any) -> Promise
117+
return Promise.resolve(next(*args, **kwargs))
118+
119+
class MyEmptyMiddleware(object):
120+
def resolve(self, next, *args, **kwargs):
121+
# type: (Callable, *Any, **Any) -> str
122+
return next(*args, **kwargs)
123+
124+
middlewares_with_promise = MiddlewareManager(
125+
MyPromiseMiddleware(), wrap_in_promise=False
126+
)
127+
middlewares_without_promise = MiddlewareManager(
128+
MyEmptyMiddleware(), wrap_in_promise=False
129+
)
130+
131+
result1 = execute(
132+
GraphQLSchema(Type), doc_ast, Data(), middleware=middlewares_with_promise
133+
)
134+
result2 = execute(
135+
GraphQLSchema(Type), doc_ast, Data(), middleware=middlewares_without_promise
136+
)
137+
assert result1.data == result2.data and result1.data == {
138+
"ok": "ok",
139+
"not_ok": "not_ok",
140+
}

0 commit comments

Comments
 (0)