保留 Git 自动更新并简化 MAA 任务流程,加入 MaaEnd

This commit is contained in:
2026-11-01 22:41:35 +08:00
parent 8cf86bc408
commit 2527560772
7 changed files with 211 additions and 145 deletions
+41
View File
@@ -0,0 +1,41 @@
import importlib.util
from pathlib import Path
import unittest
from unittest.mock import call, patch
spec = importlib.util.spec_from_file_location("maa_script", Path(__file__).resolve().parents[1] / "ArknightsMaaConfig/maa.py")
maa = importlib.util.module_from_spec(spec)
spec.loader.exec_module(maa)
class MaaTest(unittest.TestCase):
def test_update_uses_proxy_but_game_commands_do_not(self):
with patch.object(maa.os, "environ", {"http_proxy": "http://proxy:7890"}), \
patch.object(maa, "DIRECT", {"MAA_LOG": "info"}), \
patch.object(maa.subprocess, "run") as run:
run.return_value.returncode = 0
maa.command(["maa", "update"], proxy=True)
self.assertEqual(run.call_args.kwargs["env"]["http_proxy"], "http://proxy:7890")
maa.command(["maa", "run", "startup"])
self.assertNotIn("http_proxy", run.call_args.kwargs["env"])
def test_failed_task_does_not_skip_other_tasks_or_shutdown(self):
with patch.object(maa, "command", return_value=0) as command, \
patch.object(maa, "wait_android", return_value=True), \
patch.object(maa, "retry", return_value=True), \
patch.object(maa, "task", side_effect=[True, False, True, True, True, True]) as task:
self.assertEqual(maa.main(), 1)
self.assertEqual(task.call_args_list, [call(name) for name in maa.TASKS])
self.assertEqual(command.call_args.args[0], ["docker", "stop", maa.REDROID])
def test_task_failure_reopens_game_then_retries(self):
with patch.object(maa, "retry", side_effect=[False, True, True, True]) as retry:
self.assertTrue(maa.task("fight"))
self.assertEqual(retry.call_args_list, [
call(maa.maa("run", "fight")), call(maa.maa("closedown")),
call(maa.maa("run", "startup")), call(maa.maa("run", "fight")),
])
if __name__ == "__main__":
unittest.main()