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() @pytest.mark.skip(reason="Very Flaky in CI, will debug later") 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)