38 lines
1.3 KiB
Python
38 lines
1.3 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")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|