Fix Langfuse logger test mock setup#17588
Merged
AlexsanderHamir merged 3 commits intomainfrom Dec 6, 2025
Merged
Conversation
The test was failing because the logger's Langfuse client wasn't properly mocked. Even though sys.modules was mocked, the logger's __init__ method creates its own Langfuse client instance that wasn't using the test's mock. Changes: - Explicitly set logger.Langfuse to the mock client after initialization - Set logger.langfuse_sdk_version to ensure _supports_* methods work correctly - Added mock_langfuse_client.client attribute to prevent errors during init - Added trace_id to mock_langfuse_generation for proper return value handling - Removed redundant mock setup code This ensures the test can properly verify that _log_langfuse_v2 correctly converts None usage values to 0 by allowing the mock's generation method to be called and asserted. Fixes: AssertionError: Expected 'generation' to have been called once. Called 0 times.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Reverts c6436e1 - the version 0.4.11 doesn't exist on PyPI yet, causing CI to fail when installing dependencies. Reverting back to 0.4.10 until the package is published.
AlexsanderHamir
added a commit
that referenced
this pull request
Dec 6, 2025
This reverts commit a885e21.
4 tasks
AlexsanderHamir
added a commit
that referenced
this pull request
Dec 6, 2025
jquinter
added a commit
that referenced
this pull request
Feb 14, 2026
Fixes test_log_langfuse_v2_handles_null_usage_values flaky test failure by properly cleaning up sys.modules['langfuse'] in tearDown. Changes: - Store original langfuse module in setUp before mocking - Restore original or remove mock in tearDown to prevent state pollution - Remove invalid print_verbose parameter from log_event_on_langfuse Root Cause: The tearDown method was not cleaning up sys.modules['langfuse'] after each test, causing mock state to leak between tests. This caused intermittent failures in CI, especially when tests run in parallel or in different orders. Impact: This test has a long history of flakiness with multiple attempted fixes (#20475, #17599, #17594, #17591, #17588). The missing sys.modules cleanup was the underlying issue causing continued failures despite those patches. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
jquinter
added a commit
that referenced
this pull request
Feb 15, 2026
Fixes test_log_langfuse_v2_handles_null_usage_values flaky test failure by properly cleaning up sys.modules['langfuse'] in tearDown. Changes: - Store original langfuse module in setUp before mocking - Restore original or remove mock in tearDown to prevent state pollution - Remove invalid print_verbose parameter from log_event_on_langfuse Root Cause: The tearDown method was not cleaning up sys.modules['langfuse'] after each test, causing mock state to leak between tests. This caused intermittent failures in CI, especially when tests run in parallel or in different orders. Impact: This test has a long history of flakiness with multiple attempted fixes (#20475, #17599, #17594, #17591, #17588). The missing sys.modules cleanup was the underlying issue causing continued failures despite those patches. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
sameetn
pushed a commit
to sameetn/litellm
that referenced
this pull request
Feb 16, 2026
Fixes test_log_langfuse_v2_handles_null_usage_values flaky test failure by properly cleaning up sys.modules['langfuse'] in tearDown. Changes: - Store original langfuse module in setUp before mocking - Restore original or remove mock in tearDown to prevent state pollution - Remove invalid print_verbose parameter from log_event_on_langfuse Root Cause: The tearDown method was not cleaning up sys.modules['langfuse'] after each test, causing mock state to leak between tests. This caused intermittent failures in CI, especially when tests run in parallel or in different orders. Impact: This test has a long history of flakiness with multiple attempted fixes (BerriAI#20475, BerriAI#17599, BerriAI#17594, BerriAI#17591, BerriAI#17588). The missing sys.modules cleanup was the underlying issue causing continued failures despite those patches. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Title
Fix Langfuse logger test mock setup
Relevant issues
Fixes failing test:
test_log_langfuse_v2_handles_null_usage_valuesPre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
tests/litellm/directory, Adding at least 1 test is a hard requirement - see detailsmake test-unitType
🐛 Bug Fix
Changes
Test Fix: Langfuse logger mock setup
Fixed
test_log_langfuse_v2_handles_null_usage_valuestest failure caused by incorrect mock configuration.Problem:
AssertionError: Expected 'generation' to have been called once. Called 0 timesLangfuseclient wasn't using the test's mock despitesys.modulesmockingSolution:
logger.Langfuseto mock client after initializationlogger.langfuse_sdk_versionto ensure_supports_*methods work correctlymock_langfuse_client.clientattribute to prevent init errorstrace_idtomock_langfuse_generationfor proper return value handlingResult:
_log_langfuse_v2convertsNoneusage values to0TestLangfuseUsageDetailsclass pass (5/5)