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()