"""Offline tests for the global O1Key network route setting.""" import os import sys import unittest from unittest.mock import patch PLUGIN_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, PLUGIN_DIR) from utils.config import ( DEFAULT_NETWORK_ROUTE, NETWORK_ROUTE_CONFIG_KEY, NETWORK_ROUTES, get_api_base_url, get_async_api_base_url, get_base_url_by_route, get_network_route, ) class GlobalNetworkRouteTests(unittest.TestCase): def test_global_route_controls_all_base_url_helpers(self): config = {NETWORK_ROUTE_CONFIG_KEY: "CF加速"} with patch("utils.config.load_config", return_value=config): self.assertEqual(get_network_route(), "CF加速") self.assertEqual(get_base_url_by_route(), NETWORK_ROUTES["CF加速"]) self.assertEqual(get_api_base_url(), NETWORK_ROUTES["CF加速"]) self.assertEqual(get_async_api_base_url(), NETWORK_ROUTES["CF加速"]) def test_invalid_global_route_falls_back_safely(self): with patch( "utils.config.load_config", return_value={NETWORK_ROUTE_CONFIG_KEY: "invalid"}, ): self.assertEqual(get_network_route(), DEFAULT_NETWORK_ROUTE) self.assertEqual( get_base_url_by_route(), NETWORK_ROUTES[DEFAULT_NETWORK_ROUTE], ) def test_explicit_legacy_route_is_still_resolvable(self): with patch("utils.config.load_config", return_value={}): self.assertEqual( get_base_url_by_route("美国直连"), NETWORK_ROUTES["美国直连"], ) def test_custom_base_url_remains_fallback_before_global_route_is_saved(self): custom_url = "https://gateway.example.com/" with patch( "utils.config.load_config", return_value={"O1KEY_API_BASE_URL": custom_url}, ): self.assertEqual(get_api_base_url(), custom_url.rstrip("/")) if __name__ == "__main__": unittest.main(verbosity=2)