From ac6496883e6ffe174849637ce3c532a26c63e59c Mon Sep 17 00:00:00 2001 From: Zuyi Zhao Date: Fri, 5 Dec 2025 17:35:31 +0000 Subject: [PATCH 1/2] fix(tests/middleware): add teardown method to clean up middleware even for tests that are bad. --- .../middleware/test_middleware_exceptions.py | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/python/tests/common/fastapi/middleware/test_middleware_exceptions.py b/python/tests/common/fastapi/middleware/test_middleware_exceptions.py index 31f8199..c82503e 100644 --- a/python/tests/common/fastapi/middleware/test_middleware_exceptions.py +++ b/python/tests/common/fastapi/middleware/test_middleware_exceptions.py @@ -23,9 +23,28 @@ def setup_method(self): from model_hosting_container_standards.common.fastapi.middleware.source.decorator_loader import ( decorator_loader, ) + from model_hosting_container_standards.common.fastapi.middleware.registry import ( + middleware_registry, + ) # Clear decorator loader state decorator_loader.clear() + # Clear middleware registry state + middleware_registry.clear_middlewares() + + def teardown_method(self): + """Clear global state after each test.""" + from model_hosting_container_standards.common.fastapi.middleware.source.decorator_loader import ( + decorator_loader, + ) + from model_hosting_container_standards.common.fastapi.middleware.registry import ( + middleware_registry, + ) + + # Clear decorator loader state + decorator_loader.clear() + # Clear middleware registry state + middleware_registry.clear_middlewares() def test_middleware_registration_error_invalid_name(self): """Test MiddlewareRegistrationError for invalid middleware name.""" @@ -121,13 +140,6 @@ def second_input_formatter(): def test_exception_chaining(self): """Test that exceptions are properly chained with 'from' clause.""" - from model_hosting_container_standards.common.fastapi.middleware.registry import ( - middleware_registry, - ) - - # Clear the global registry first - middleware_registry.clear_middlewares() - # First register a middleware using decorator @custom_middleware("pre_post_process") def first_middleware(): @@ -143,6 +155,3 @@ def duplicate_middleware(): # Check that the original ValueError is chained assert exc_info.value.__cause__ is not None assert isinstance(exc_info.value.__cause__, ValueError) - - # Clean up - middleware_registry.clear_middlewares() From 50254bf722ed3d6e32a057b01a916c7306ee1387 Mon Sep 17 00:00:00 2001 From: Zuyi Zhao Date: Fri, 5 Dec 2025 17:36:21 +0000 Subject: [PATCH 2/2] linting. --- .../middleware/test_middleware_exceptions.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/python/tests/common/fastapi/middleware/test_middleware_exceptions.py b/python/tests/common/fastapi/middleware/test_middleware_exceptions.py index c82503e..bb372ac 100644 --- a/python/tests/common/fastapi/middleware/test_middleware_exceptions.py +++ b/python/tests/common/fastapi/middleware/test_middleware_exceptions.py @@ -20,12 +20,12 @@ class TestMiddlewareExceptions: def setup_method(self): """Clear global state before each test.""" - from model_hosting_container_standards.common.fastapi.middleware.source.decorator_loader import ( - decorator_loader, - ) from model_hosting_container_standards.common.fastapi.middleware.registry import ( middleware_registry, ) + from model_hosting_container_standards.common.fastapi.middleware.source.decorator_loader import ( + decorator_loader, + ) # Clear decorator loader state decorator_loader.clear() @@ -34,12 +34,12 @@ def setup_method(self): def teardown_method(self): """Clear global state after each test.""" - from model_hosting_container_standards.common.fastapi.middleware.source.decorator_loader import ( - decorator_loader, - ) from model_hosting_container_standards.common.fastapi.middleware.registry import ( middleware_registry, ) + from model_hosting_container_standards.common.fastapi.middleware.source.decorator_loader import ( + decorator_loader, + ) # Clear decorator loader state decorator_loader.clear() @@ -140,6 +140,7 @@ def second_input_formatter(): def test_exception_chaining(self): """Test that exceptions are properly chained with 'from' clause.""" + # First register a middleware using decorator @custom_middleware("pre_post_process") def first_middleware():