@@ -135,8 +135,9 @@ async def test_error_handler_command_invoke_error(self):
135135 }
136136 )
137137
138- for case in test_cases :
139- with self .subTest (args = case ["args" ], expect_mock_call = case ["expect_mock_call" ]):
138+ for i , case in enumerate (test_cases ):
139+ mock_type = "send" if case ["expect_mock_call" ] == "send" else "mock_function"
140+ with self .subTest (test_case = i , expect_mock_call = mock_type ):
140141 self .ctx .send .reset_mock ()
141142 self .assertIsNone (await self .cog .on_command_error (* case ["args" ]))
142143 if case ["expect_mock_call" ] == "send" :
@@ -161,8 +162,8 @@ async def test_error_handler_conversion_error(self):
161162 }
162163 )
163164
164- for case in cases :
165- with self .subTest (** case ):
165+ for i , case in enumerate ( cases ) :
166+ with self .subTest (test_case = i ):
166167 self .assertIsNone (await self .cog .on_command_error (self .ctx , case ["error" ]))
167168 case ["mock_function_to_call" ].assert_awaited_once_with (self .ctx , case ["error" ].original )
168169
@@ -173,8 +174,8 @@ async def test_error_handler_unexpected_errors(self):
173174 errors .ExtensionError (name = "foo" ),
174175 )
175176
176- for err in errs :
177- with self .subTest (error = err ):
177+ for i , err in enumerate ( errs ) :
178+ with self .subTest (test_case = i ):
178179 self .cog .handle_unexpected_error .reset_mock ()
179180 self .assertIsNone (await self .cog .on_command_error (self .ctx , err ))
180181 self .cog .handle_unexpected_error .assert_awaited_once_with (self .ctx , err )
@@ -251,8 +252,8 @@ async def test_try_silence_silence_arguments(self):
251252 (MockTextChannel (), True )
252253 )
253254
254- for channel , kick in test_cases :
255- with self .subTest (kick = kick , channel = channel ):
255+ for i , ( channel , kick ) in enumerate ( test_cases ) :
256+ with self .subTest (test_case = i , kick = kick ):
256257 self .ctx .reset_mock ()
257258 self .ctx .invoked_with = "shh"
258259
@@ -291,8 +292,8 @@ async def test_try_silence_unsilence(self):
291292 ("unshh" , MockTextChannel ())
292293 )
293294
294- for invoke , channel in test_cases :
295- with self .subTest (message = invoke , channel = channel ):
295+ for i , ( invoke , channel ) in enumerate ( test_cases ) :
296+ with self .subTest (test_case = i , message = invoke , has_channel = channel is not None ):
296297 self .bot .get_command .side_effect = (self .silence .silence , self .silence .unsilence )
297298 self .ctx .reset_mock ()
298299
@@ -386,33 +387,39 @@ async def test_handle_input_error_handler_errors(self):
386387 """Should handle each error probably."""
387388 test_cases = (
388389 {
390+ "error_type" : "MissingRequiredArgument" ,
389391 "error" : errors .MissingRequiredArgument (MagicMock ()),
390392 "call_prepared" : True
391393 },
392394 {
395+ "error_type" : "TooManyArguments" ,
393396 "error" : errors .TooManyArguments (),
394397 "call_prepared" : True
395398 },
396399 {
400+ "error_type" : "BadArgument" ,
397401 "error" : errors .BadArgument (),
398402 "call_prepared" : True
399403 },
400404 {
405+ "error_type" : "BadUnionArgument" ,
401406 "error" : errors .BadUnionArgument (MagicMock (), MagicMock (), MagicMock ()),
402407 "call_prepared" : True
403408 },
404409 {
410+ "error_type" : "ArgumentParsingError" ,
405411 "error" : errors .ArgumentParsingError (),
406412 "call_prepared" : False
407413 },
408414 {
415+ "error_type" : "UserInputError" ,
409416 "error" : errors .UserInputError (),
410417 "call_prepared" : True
411418 }
412419 )
413420
414421 for case in test_cases :
415- with self .subTest (error = case ["error " ], call_prepared = case ["call_prepared" ]):
422+ with self .subTest (error_type = case ["error_type " ], call_prepared = case ["call_prepared" ]):
416423 self .ctx .reset_mock ()
417424 self .cog .send_error_with_help = AsyncMock ()
418425 self .assertIsNone (await self .cog .handle_user_input_error (self .ctx , case ["error" ]))
@@ -426,33 +433,39 @@ async def test_handle_check_failure_errors(self):
426433 """Should await `ctx.send` when error is check failure."""
427434 test_cases = (
428435 {
436+ "error_type" : "BotMissingPermissions" ,
429437 "error" : errors .BotMissingPermissions (MagicMock ()),
430438 "call_ctx_send" : True
431439 },
432440 {
441+ "error_type" : "BotMissingRole" ,
433442 "error" : errors .BotMissingRole (MagicMock ()),
434443 "call_ctx_send" : True
435444 },
436445 {
446+ "error_type" : "BotMissingAnyRole" ,
437447 "error" : errors .BotMissingAnyRole (MagicMock ()),
438448 "call_ctx_send" : True
439449 },
440450 {
451+ "error_type" : "NoPrivateMessage" ,
441452 "error" : errors .NoPrivateMessage (),
442453 "call_ctx_send" : True
443454 },
444455 {
456+ "error_type" : "InWhitelistCheckFailure" ,
445457 "error" : InWhitelistCheckFailure (1234 ),
446458 "call_ctx_send" : True
447459 },
448460 {
461+ "error_type" : "ResponseCodeError" ,
449462 "error" : ResponseCodeError (MagicMock ()),
450463 "call_ctx_send" : False
451464 }
452465 )
453466
454467 for case in test_cases :
455- with self .subTest (error = case ["error " ], call_ctx_send = case ["call_ctx_send" ]):
468+ with self .subTest (error_type = case ["error_type " ], call_ctx_send = case ["call_ctx_send" ]):
456469 self .ctx .reset_mock ()
457470 await self .cog .handle_check_failure (self .ctx , case ["error" ])
458471 if case ["call_ctx_send" ]:
@@ -465,25 +478,29 @@ async def test_handle_api_error(self, log_mock):
465478 """Should `ctx.send` on HTTP error codes, and log at correct level."""
466479 test_cases = (
467480 {
481+ "status" : 400 ,
468482 "error" : ResponseCodeError (AsyncMock (status = 400 )),
469483 "log_level" : "error"
470484 },
471485 {
486+ "status" : 404 ,
472487 "error" : ResponseCodeError (AsyncMock (status = 404 )),
473488 "log_level" : "debug"
474489 },
475490 {
491+ "status" : 550 ,
476492 "error" : ResponseCodeError (AsyncMock (status = 550 )),
477493 "log_level" : "warning"
478494 },
479495 {
496+ "status" : 1000 ,
480497 "error" : ResponseCodeError (AsyncMock (status = 1000 )),
481498 "log_level" : "warning"
482499 }
483500 )
484501
485502 for case in test_cases :
486- with self .subTest (error = case ["error " ], log_level = case ["log_level" ]):
503+ with self .subTest (status = case ["status " ], log_level = case ["log_level" ]):
487504 self .ctx .reset_mock ()
488505 log_mock .reset_mock ()
489506 await self .cog .handle_api_error (self .ctx , case ["error" ])
@@ -500,7 +517,7 @@ async def test_handle_api_error(self, log_mock):
500517 async def test_handle_unexpected_error (self , log_mock , new_scope_mock ):
501518 """Should `ctx.send` this error, error log this and sent to Sentry."""
502519 for case in (None , MockGuild ()):
503- with self .subTest (guild = case ):
520+ with self .subTest (has_guild = case is not None ):
504521 self .ctx .reset_mock ()
505522 log_mock .reset_mock ()
506523 new_scope_mock .reset_mock ()
0 commit comments