hy-app-monitor/tests/test_gateway_mysql_alias.py
2026-04-24 14:46:19 +08:00

46 lines
1.7 KiB
Python

from __future__ import annotations
import unittest
from entry.http_app import match_proxy_target, rewrite_target_path
class GatewayMysqlAliasTests(unittest.TestCase):
def test_match_proxy_target_returns_mysql_alias(self) -> None:
target = match_proxy_target("/mysql/api/mysql/overview")
self.assertIsNotNone(target)
self.assertEqual(target["app"], "mysql")
self.assertEqual(target["basePath"], "/mysql")
self.assertEqual(target["upstreamBasePath"], "/yumi")
def test_rewrite_target_path_preserves_query(self) -> None:
rewritten = rewrite_target_path("/mysql/api/mysql/overview?refresh=1", "/mysql", "/yumi")
self.assertEqual(rewritten, "/yumi/api/mysql/overview?refresh=1")
def test_match_proxy_target_returns_common_alias(self) -> None:
target = match_proxy_target("/common/api/cdn/overview")
self.assertIsNotNone(target)
self.assertEqual(target["app"], "common")
self.assertEqual(target["basePath"], "/common")
self.assertEqual(target["upstreamBasePath"], "/yumi")
def test_common_alias_rewrite_preserves_query(self) -> None:
rewritten = rewrite_target_path("/common/api/cdn/overview?limit=20", "/common", "/yumi")
self.assertEqual(rewritten, "/yumi/api/cdn/overview?limit=20")
def test_match_proxy_target_returns_haiyi_entry(self) -> None:
target = match_proxy_target("/haiyi/api/health")
self.assertIsNotNone(target)
self.assertEqual(target["app"], "haiyi")
self.assertEqual(target["basePath"], "/haiyi")
self.assertEqual(target["upstreamBasePath"], "/haiyi")
if __name__ == "__main__":
unittest.main()