From 9057eed3ecbd413964067d0a605121a879903dce Mon Sep 17 00:00:00 2001 From: Enam Singh Date: Mon, 22 Sep 2025 14:20:26 -0700 Subject: [PATCH] tests: add empty - string ('?q=') case --> 422 for regex validated query param --- tests/test_regex_deprecated_params.py | 33 ++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/tests/test_regex_deprecated_params.py b/tests/test_regex_deprecated_params.py index 2ce64c686..e04820775 100644 --- a/tests/test_regex_deprecated_params.py +++ b/tests/test_regex_deprecated_params.py @@ -70,7 +70,38 @@ def test_query_params_str_validations_item_query_nonregexquery(): ] } ) - + +@needs_py310 +def test_query_params_str_validations_item_query_empty(): + client = get_client() + response = client.get("/items/", params = {"q": ""}) + assert response.status_code == 422 + assert response.json() == IsDict( + { + "detail": [ + { + "type": "string_pattern_mismatch", + "loc": ["query", "q"], + "msg": "String should match pattern '^fixedquery$'", + "input": "", + "ctx": {"pattern": "^fixedquery$"}, + } + ] + } + ) | IsDict( + # TODO: remove when deprecating Pydantic v1 + { + "detail": [ + { + "ctx": {"pattern": "^fixedquery$"}, + "loc": ["query", "q"], + "msg": 'string does not match regex "^fixedquery$"', + "type": "value_error.str.regex", + } + ] + } + + ) @needs_py310 def test_openapi_schema():