保留 Git 自动更新并简化 MAA 任务流程,加入 MaaEnd
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user