Replace the prior release tree with the current plugin, frontend, tests, and documentation. Document retired node IDs and the public Gitea update source.
61 lines
2.0 KiB
Python
61 lines
2.0 KiB
Python
"""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)
|