From 3bb2423ab8db2991d5e46e6423baf30fbfab9c4a Mon Sep 17 00:00:00 2001 From: Ishaan Jaffer Date: Fri, 20 Feb 2026 17:44:18 -0800 Subject: [PATCH] test(proxy): cover narrow prisma connection error detection --- .../proxy/db/test_exception_handler.py | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/tests/test_litellm/proxy/db/test_exception_handler.py b/tests/test_litellm/proxy/db/test_exception_handler.py index e68c9b6a995..8c07b2a19e6 100644 --- a/tests/test_litellm/proxy/db/test_exception_handler.py +++ b/tests/test_litellm/proxy/db/test_exception_handler.py @@ -31,10 +31,28 @@ from litellm.proxy.db.exception_handler import PrismaDBExceptionHandler # Test is_database_connection_error method +@pytest.mark.parametrize( + "prisma_error", + [ + HTTPClientClosedError(), + ClientNotConnectedError(), + PrismaError("can't reach database server"), + PrismaError("connection refused"), + PrismaError("timed out while connecting"), + ], +) +def test_is_database_connection_error_prisma_connection_errors(prisma_error): + """ + Test that only Prisma connection-related errors are considered DB connection errors. + """ + assert PrismaDBExceptionHandler.is_database_connection_error(prisma_error) == True + + @pytest.mark.parametrize( "prisma_error", [ PrismaError(), + PrismaError("validation failed on query"), DataError(data={"user_facing_error": {"meta": {"table": "test_table"}}}), UniqueViolationError( data={"user_facing_error": {"meta": {"table": "test_table"}}} @@ -52,15 +70,10 @@ from litellm.proxy.db.exception_handler import PrismaDBExceptionHandler RecordNotFoundError( data={"user_facing_error": {"meta": {"table": "test_table"}}} ), - HTTPClientClosedError(), - ClientNotConnectedError(), ], ) -def test_is_database_connection_error_prisma_errors(prisma_error): - """ - Test that all Prisma errors are considered database connection errors - """ - assert PrismaDBExceptionHandler.is_database_connection_error(prisma_error) == True +def test_is_database_connection_error_non_connection_prisma_errors(prisma_error): + assert PrismaDBExceptionHandler.is_database_connection_error(prisma_error) == False def test_is_database_connection_generic_errors():