Update Live-streaming code (auto-daily features)
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
import asyncio
|
||||
import logging
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from tempfile import TemporaryDirectory
|
||||
from types import SimpleNamespace
|
||||
from unittest.mock import patch
|
||||
from unittest.mock import AsyncMock, patch
|
||||
|
||||
from app.danmu_queue import BgiLogMonitor, WebServer
|
||||
|
||||
@@ -69,5 +71,45 @@ class BgiLogDisplayFormatTests(unittest.TestCase):
|
||||
)
|
||||
|
||||
|
||||
class BgiLogCompletionTests(unittest.IsolatedAsyncioTestCase):
|
||||
async def test_configuration_group_marker_still_finishes_current_group(self):
|
||||
monitor = BgiLogMonitor(".", logging.getLogger("test-bgi-group-log"))
|
||||
callback = AsyncMock()
|
||||
monitor.set_finish_callback(callback)
|
||||
with patch.object(monitor, "_get_current_log_size", return_value=0):
|
||||
monitor.set_current_group("薄荷", "group-run")
|
||||
|
||||
monitor._process_line('配置组 "薄荷" 执行结束')
|
||||
await asyncio.sleep(0)
|
||||
|
||||
callback.assert_awaited_once_with("薄荷", "group-run")
|
||||
self.assertIsNone(monitor._current_group)
|
||||
|
||||
async def test_one_dragon_marker_finishes_managed_daily(self):
|
||||
monitor = BgiLogMonitor(".", logging.getLogger("test-bgi-one-dragon-log"))
|
||||
callback = AsyncMock()
|
||||
monitor.set_finish_callback(callback)
|
||||
with patch.object(monitor, "_get_current_log_size", return_value=0):
|
||||
monitor.set_current_one_dragon("自动每日(委托)", "daily-run")
|
||||
|
||||
monitor._process_line("一条龙和配置组任务结束")
|
||||
await asyncio.sleep(0)
|
||||
|
||||
callback.assert_awaited_once_with("自动每日(委托)", "daily-run")
|
||||
self.assertIsNone(monitor._current_group)
|
||||
|
||||
async def test_child_group_completion_does_not_finish_one_dragon_early(self):
|
||||
monitor = BgiLogMonitor(".", logging.getLogger("test-bgi-child-group-log"))
|
||||
callback = AsyncMock()
|
||||
monitor.set_finish_callback(callback)
|
||||
with patch.object(monitor, "_get_current_log_size", return_value=0):
|
||||
monitor.set_current_one_dragon("自动每日", "daily-run")
|
||||
|
||||
monitor._process_line('配置组 "每日委托" 执行结束')
|
||||
await asyncio.sleep(0)
|
||||
|
||||
callback.assert_not_awaited()
|
||||
self.assertEqual(monitor._current_group, "自动每日")
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user