更新
This commit is contained in:
+41
-41
@@ -1,41 +1,41 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""测试用的共同脚手架。"""
|
||||
|
||||
import os
|
||||
import tempfile
|
||||
|
||||
|
||||
class _QueueLogRedirect:
|
||||
"""把队列执行记录挪到临时目录,别让测试写进用户的真实记录里。
|
||||
|
||||
机器人在好几条路径上都会记一步队列流水,而测试里的机器人多半是
|
||||
`__new__` 出来的半成品,谁也不会想到去挡这个写入。不挡的话跑一次测试就往
|
||||
真实的 `queue_events.json` 里灌进几十条「会话 abababab 跳过」,把用户真正
|
||||
需要的排查线索挤出去——记录只留最近 500 条。
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
self._directory = None
|
||||
self._original = None
|
||||
|
||||
def start(self) -> None:
|
||||
from queue_log import QueueLog
|
||||
from wechat_bot import WeChatBot
|
||||
|
||||
self._directory = tempfile.TemporaryDirectory()
|
||||
self._original = WeChatBot.queue_log
|
||||
log = QueueLog(os.path.join(self._directory.name, "queue_events.json"))
|
||||
WeChatBot.queue_log = property(lambda _self, _log=log: _log)
|
||||
|
||||
def stop(self) -> None:
|
||||
from wechat_bot import WeChatBot
|
||||
|
||||
if self._original is not None:
|
||||
WeChatBot.queue_log = self._original
|
||||
self._original = None
|
||||
if self._directory is not None:
|
||||
self._directory.cleanup()
|
||||
self._directory = None
|
||||
|
||||
|
||||
queue_log_redirect = _QueueLogRedirect()
|
||||
# -*- coding: utf-8 -*-
|
||||
"""测试用的共同脚手架。"""
|
||||
|
||||
import os
|
||||
import tempfile
|
||||
|
||||
|
||||
class _QueueLogRedirect:
|
||||
"""把队列执行记录挪到临时目录,别让测试写进用户的真实记录里。
|
||||
|
||||
机器人在好几条路径上都会记一步队列流水,而测试里的机器人多半是
|
||||
`__new__` 出来的半成品,谁也不会想到去挡这个写入。不挡的话跑一次测试就往
|
||||
真实的 `queue_events.json` 里灌进几十条「会话 abababab 跳过」,把用户真正
|
||||
需要的排查线索挤出去——记录只留最近 500 条。
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
self._directory = None
|
||||
self._original = None
|
||||
|
||||
def start(self) -> None:
|
||||
from queue_log import QueueLog
|
||||
from wechat_bot import WeChatBot
|
||||
|
||||
self._directory = tempfile.TemporaryDirectory()
|
||||
self._original = WeChatBot.queue_log
|
||||
log = QueueLog(os.path.join(self._directory.name, "queue_events.json"))
|
||||
WeChatBot.queue_log = property(lambda _self, _log=log: _log)
|
||||
|
||||
def stop(self) -> None:
|
||||
from wechat_bot import WeChatBot
|
||||
|
||||
if self._original is not None:
|
||||
WeChatBot.queue_log = self._original
|
||||
self._original = None
|
||||
if self._directory is not None:
|
||||
self._directory.cleanup()
|
||||
self._directory = None
|
||||
|
||||
|
||||
queue_log_redirect = _QueueLogRedirect()
|
||||
|
||||
Reference in New Issue
Block a user