mirror of
https://github.com/baoweise-bot/aimili-vpngate.git
synced 2026-09-09 09:46:49 +08:00
fix: refill nodes after exhausted failover
This commit is contained in:
@@ -631,6 +631,16 @@ class ManagerLogicTests(unittest.TestCase):
|
||||
connect_mock.assert_called_once_with("old-node")
|
||||
auto_switch_mock.assert_not_called()
|
||||
|
||||
def test_auto_switch_exhaustion_schedules_background_refill(self) -> None:
|
||||
with (
|
||||
mock.patch.object(manager, "schedule_background_refill", return_value=True) as schedule_mock,
|
||||
mock.patch.object(manager, "log_to_json") as log_mock,
|
||||
):
|
||||
manager.auto_switch_node(attempt=3)
|
||||
|
||||
schedule_mock.assert_called_once_with()
|
||||
log_mock.assert_called_once_with("INFO", "Main", "连续自动切换失败,已启动唯一后台节点补齐任务")
|
||||
|
||||
def test_physical_interface_detection_is_cached(self) -> None:
|
||||
original_cache = manager.vpn_utils.physical_interface_cache
|
||||
manager.vpn_utils.physical_interface_cache = (None, 0.0)
|
||||
@@ -828,8 +838,8 @@ class ManagerLogicTests(unittest.TestCase):
|
||||
self.assertEqual(519, entries[-1]["index"])
|
||||
|
||||
def test_web_update_controls_only_expose_stable_main_channel(self) -> None:
|
||||
self.assertEqual("2.1.4", manager.APP_VERSION)
|
||||
self.assertEqual("V2.1.4 正式版", manager.APP_VERSION_LABEL)
|
||||
self.assertEqual("2.1.5", manager.APP_VERSION)
|
||||
self.assertEqual("V2.1.5 正式版", manager.APP_VERSION_LABEL)
|
||||
self.assertIn("检测更新", manager.INDEX_HTML)
|
||||
self.assertIn("/api/check_update", manager.INDEX_HTML)
|
||||
self.assertIn("/tree/main", manager.INDEX_HTML)
|
||||
@@ -874,7 +884,7 @@ class ManagerLogicTests(unittest.TestCase):
|
||||
def test_release_workflow_uses_full_patch_version(self) -> None:
|
||||
workflow_text = (manager.ROOT_DIR / ".github" / "workflows" / "release.yml").read_text(encoding="utf-8")
|
||||
|
||||
self.assertIn("default: v2.1.4", workflow_text)
|
||||
self.assertIn("default: v2.1.5", workflow_text)
|
||||
self.assertIn("AimiliVPN V$(tr -d '\\r\\n' < VERSION) 正式版", workflow_text)
|
||||
self.assertNotIn("cut -d. -f1,2 VERSION", workflow_text)
|
||||
|
||||
@@ -901,8 +911,8 @@ class ManagerLogicTests(unittest.TestCase):
|
||||
|
||||
def test_latest_release_check_reports_current_formal_version(self) -> None:
|
||||
release = {
|
||||
"tag_name": "v2.1.4",
|
||||
"name": "AimiliVPN V2.1.4 正式版",
|
||||
"tag_name": "v2.1.5",
|
||||
"name": "AimiliVPN V2.1.5 正式版",
|
||||
"draft": False,
|
||||
"prerelease": False,
|
||||
}
|
||||
@@ -910,7 +920,7 @@ class ManagerLogicTests(unittest.TestCase):
|
||||
result = manager.check_latest_release()
|
||||
|
||||
self.assertFalse(result["update_available"])
|
||||
self.assertEqual("V2.1.4 正式版", result["current_version_label"])
|
||||
self.assertEqual("V2.1.5 正式版", result["current_version_label"])
|
||||
|
||||
def test_latest_release_check_reports_source_update_command(self) -> None:
|
||||
release = {"tag_name": "v2.2.0", "draft": False, "prerelease": False}
|
||||
|
||||
Reference in New Issue
Block a user