@@ -47,6 +47,10 @@ async def resolve_ticket_raises(request: Request):
4747 raise ResponseException ("Some error." , status = 403 )
4848
4949
50+ async def resolve_ticket_raises_system (request : Request ):
51+ raise ValueError ()
52+
53+
5054class TestGraphQlHandler (unittest .IsolatedAsyncioTestCase ):
5155 CONFIG_FILE_PATH = BASE_PATH / "test_config.yml"
5256 _config = Config (CONFIG_FILE_PATH )
@@ -66,7 +70,8 @@ async def test_execute_operation(self):
6670 result = await handler .execute_operation (request )
6771
6872 self .assertEqual (200 , result .status )
69- self .assertDictEqual (await result .content (), {"data" : {"order_query" : "ticket #4" }, "errors" : []})
73+ expected_content = {"data" : {"order_query" : "ticket #4" }}
74+ self .assertDictEqual (expected_content , await result .content ())
7075
7176 async def test_execute_operation_raises (self ):
7277 routes = {
@@ -83,6 +88,21 @@ async def test_execute_operation_raises(self):
8388
8489 self .assertEqual (403 , result .status )
8590
91+ async def test_execute_operation_raises_system (self ):
92+ routes = {
93+ GraphQlQueryEnrouteDecorator (name = "ticket_query" , output = GraphQLString ): resolve_ticket_raises_system ,
94+ }
95+
96+ schema = GraphQLSchemaBuilder .build (routes = routes )
97+
98+ handler = GraphQlHandler (schema )
99+
100+ request = InMemoryRequest (content = "{ ticket_query }" )
101+
102+ result = await handler .execute_operation (request )
103+
104+ self .assertEqual (500 , result .status )
105+
86106 async def test_execute_wrong_operation (self ):
87107 routes = {
88108 GraphQlQueryEnrouteDecorator (name = "order_query" , output = GraphQLString ): callback_fn ,
@@ -99,8 +119,8 @@ async def test_execute_wrong_operation(self):
99119
100120 content = await result .content ()
101121
102- self .assertEqual (500 , result .status )
103- self .assertNotEqual ( content ["errors" ], [] )
122+ self .assertEqual (400 , result .status )
123+ self .assertEqual ( 1 , len ( content ["errors" ]) )
104124
105125 async def test_schema (self ):
106126 routes = {
@@ -148,8 +168,8 @@ async def test_query_with_variables(self):
148168 content = await result .content ()
149169
150170 self .assertEqual (200 , result .status )
151- self . assertDictEqual ({ " order_query" : 3 }, content [ "data" ])
152- self .assertEqual ([] , content [ "errors" ] )
171+ expected_content = { "data" : { " order_query" : 3 }}
172+ self .assertDictEqual ( expected_content , content )
153173
154174 async def test_simple_query (self ):
155175 routes = {GraphQlQueryEnrouteDecorator (name = "SimpleQuery" , output = GraphQLString ): resolve_simple_query }
@@ -171,8 +191,8 @@ async def test_simple_query(self):
171191 content = await result .content ()
172192
173193 self .assertEqual (200 , result .status )
174- self . assertDictEqual ({ "SimpleQuery " : "ABCD" }, content [ "data" ])
175- self .assertEqual ([] , content [ "errors" ] )
194+ expected_content = { "data " : { "SimpleQuery" : "ABCD" }}
195+ self .assertDictEqual ( expected_content , content )
176196
177197 async def test_query_with_variables_return_user (self ):
178198 routes = {GraphQlQueryEnrouteDecorator (name = "order_query" , argument = GraphQLInt , output = user_type ): resolve_user }
@@ -204,11 +224,12 @@ async def test_query_with_variables_return_user(self):
204224 content = await result .content ()
205225
206226 self .assertEqual (200 , result .status )
207- self .assertDictEqual (
208- {"order_query" : {"id" : "3" , "firstName" : "Jack" , "lastName" : "Johnson" , "tweets" : 563 , "verified" : True }},
209- content ["data" ],
210- )
211- self .assertEqual ([], content ["errors" ])
227+ expected_content = {
228+ "data" : {
229+ "order_query" : {"id" : "3" , "firstName" : "Jack" , "lastName" : "Johnson" , "tweets" : 563 , "verified" : True }
230+ }
231+ }
232+ self .assertDictEqual (expected_content , content )
212233
213234 async def test_mutation (self ):
214235 routes = {
@@ -240,19 +261,18 @@ async def test_mutation(self):
240261 content = await result .content ()
241262
242263 self .assertEqual (200 , result .status )
243- self . assertDictEqual (
244- {
264+ expected_content = {
265+ "data" : {
245266 "createUser" : {
246267 "id" : "4kjjj43-l23k4l3-325kgaa2" ,
247268 "firstName" : "John" ,
248269 "lastName" : "Doe" ,
249270 "tweets" : 42 ,
250271 "verified" : True ,
251272 }
252- },
253- content ["data" ],
254- )
255- self .assertEqual ([], content ["errors" ])
273+ }
274+ }
275+ self .assertDictEqual (expected_content , content )
256276
257277
258278if __name__ == "__main__" :
0 commit comments