From 807928c830e147bd55fd692862a0f0f7f941ff76 Mon Sep 17 00:00:00 2001 From: ric-evans Date: Fri, 6 Dec 2024 13:19:16 -0600 Subject: [PATCH] test more error types --- tests/unit_server/arghandler_test.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/unit_server/arghandler_test.py b/tests/unit_server/arghandler_test.py index f26965ac..bc558af7 100644 --- a/tests/unit_server/arghandler_test.py +++ b/tests/unit_server/arghandler_test.py @@ -1,7 +1,6 @@ """Test server/arghandler.py.""" -# pylint: disable=W0212,W0621 - +import argparse import json import sys from typing import Any, Dict, List, Tuple, Union, cast @@ -16,6 +15,8 @@ from rest_tools.server.arghandler import ArgumentHandler, ArgumentSource from rest_tools.server.handler import RestHandler +# pylint: disable=W0212,W0621 + # these tests are only for 3.9+ if sys.version_info < (3, 9): pytest.skip("only for 3.9+", allow_module_level=True) # type: ignore[var-annotated] @@ -543,7 +544,11 @@ def test_220__argparse_nargs(argument_source: str) -> None: "argument_source", [QUERY_ARGUMENTS, JSON_BODY_ARGUMENTS], ) -def test_230__argparse_catch_most__error(argument_source: str) -> None: +@pytest.mark.parametrize( + "exc", + [TypeError, ValueError, argparse.ArgumentTypeError, argparse.ArgumentError], +) +def test_230__argparse_catch_most__error(argument_source: str, exc: Exception) -> None: """Test `argument_source` arguments using argparse's advanced options.""" args: Dict[str, Any] = { "bar": "True", @@ -560,7 +565,7 @@ def test_230__argparse_catch_most__error(argument_source: str) -> None: ) def _error_now(): - raise TypeError("it's a bad value") + raise exc("it's a bad value") for arg, _ in args.items(): print()