合并外部维护版本并同步自动每日功能
This commit is contained in:
@@ -111,5 +111,48 @@ class BgiLogCompletionTests(unittest.IsolatedAsyncioTestCase):
|
||||
callback.assert_not_awaited()
|
||||
self.assertEqual(monitor._current_group, "自动每日")
|
||||
|
||||
|
||||
class BgiLogInterruptTests(unittest.IsolatedAsyncioTestCase):
|
||||
async def test_task_interrupt_marker_triggers_interrupt_callback(self):
|
||||
monitor = BgiLogMonitor(".", logging.getLogger("test-bgi-interrupt-log"))
|
||||
finish = AsyncMock()
|
||||
interrupt = AsyncMock()
|
||||
monitor.set_finish_callback(finish)
|
||||
monitor.set_interrupt_callback(interrupt)
|
||||
with patch.object(monitor, "_get_current_log_size", return_value=0):
|
||||
monitor.set_current_group("霜仙花", "group-run")
|
||||
|
||||
# BetterGI 被外部取消时只写“任务中断”,不写“配置组 X 执行结束”。
|
||||
monitor._process_line('任务中断:"取消自动任务"')
|
||||
await asyncio.sleep(0)
|
||||
|
||||
interrupt.assert_awaited_once_with("霜仙花", "group-run")
|
||||
finish.assert_not_awaited()
|
||||
self.assertIsNone(monitor._current_group)
|
||||
|
||||
async def test_cancel_auto_task_marker_triggers_interrupt_callback(self):
|
||||
monitor = BgiLogMonitor(".", logging.getLogger("test-bgi-cancel-log"))
|
||||
interrupt = AsyncMock()
|
||||
monitor.set_interrupt_callback(interrupt)
|
||||
with patch.object(monitor, "_get_current_log_size", return_value=0):
|
||||
monitor.set_current_group("霜仙花", "group-run")
|
||||
|
||||
monitor._process_line("取消自动任务")
|
||||
await asyncio.sleep(0)
|
||||
|
||||
interrupt.assert_awaited_once_with("霜仙花", "group-run")
|
||||
self.assertIsNone(monitor._current_group)
|
||||
|
||||
async def test_interrupt_does_not_fire_when_no_current_group(self):
|
||||
monitor = BgiLogMonitor(".", logging.getLogger("test-bgi-no-group-log"))
|
||||
interrupt = AsyncMock()
|
||||
monitor.set_interrupt_callback(interrupt)
|
||||
|
||||
monitor._process_line('任务中断:"取消自动任务"')
|
||||
await asyncio.sleep(0)
|
||||
|
||||
interrupt.assert_not_awaited()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user