Files
litellm/tests/test_proxy_server_non_root.py
T
2026-01-23 11:43:39 -08:00

64 lines
2.3 KiB
Python

from unittest.mock import patch
import pytest
@pytest.mark.skip(reason="Very Flaky in CI, will debug later")
def test_restructure_ui_html_files_skipped_in_non_root(monkeypatch):
"""
Test that _restructure_ui_html_files is SKIPPED when:
- LITELLM_NON_ROOT is "true"
- ui_path is "/var/lib/litellm/ui"
"""
# 1. Setup environment variables and variables
import litellm.proxy.proxy_server
monkeypatch.setenv("LITELLM_NON_ROOT", "true")
# We need to simulate the execution of the module-level code or
# just test the logic we added.
is_non_root = True # Simulate the variable in proxy_server
ui_path = "/var/lib/litellm/ui"
# Mock the _restructure_ui_html_files function to check if it's called
# Use create=True to allow patching even if the module hasn't been imported yet
# or if the function doesn't exist (it's defined inside a try/except block)
# spec=False prevents spec checking which can fail during import resolution
with patch(
"litellm.proxy.proxy_server._restructure_ui_html_files",
create=True,
spec=False,
) as mock_restructure:
# Simulate the logic we added in proxy_server.py
if is_non_root and ui_path == "/var/lib/litellm/ui":
# Skipping...
pass
else:
mock_restructure(ui_path)
# Verify it was NOT called
mock_restructure.assert_not_called()
def test_restructure_ui_html_files_NOT_skipped_locally(monkeypatch):
"""
Test that _restructure_ui_html_files is NOT skipped for local development
"""
monkeypatch.delenv("LITELLM_NON_ROOT", raising=False)
is_non_root = False
ui_path = "/some/local/path"
# Use create=True and spec=False to allow patching even if the module hasn't been imported yet
# or if the function doesn't exist (it's defined inside a try/except block)
# spec=False prevents spec checking which can fail during import resolution
with patch(
"litellm.proxy.proxy_server._restructure_ui_html_files",
create=True,
spec=False,
) as mock_restructure:
if is_non_root and ui_path == "/var/lib/litellm/ui":
pass
else:
mock_restructure(ui_path)
# Verify it WAS called
mock_restructure.assert_called_once_with(ui_path)