🔧 修复P0级问题:40+文件语法错误 + import路径 + 清理废弃代码
✨ 跟项目能跑起来就差这一步!这次狠狠修了一波: 🩺 修复40+损坏Python文件 - 补全所有缺少的class定义头(plugin-loader-pro、code-reviewer、 http-api/ws-api/http-tcp、webui/dashboard/log-terminal 等) - 修复中文括号、字符串未闭合、缩进错乱等语法问题 🔗 创建符号链接 plugin_bridge -> plugin-bridge - 解决Python模块路径不支持连字符的问题 - 关联修复 plugin-bridge 中错误的 import 路径 🧹 清理废弃代码 - 删除 oss/tui/ 目录(已废弃) - 清理所有 __pycache__ 和 .pyc 缓存文件 ✅ 全量语法检查通过,零错误! 📋 ai.md 新增代码审计报告和分阶段修复计划 🗺️ 所有插件 use() 调用现在走统一路径
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
Tests for Logger
|
||||
"""Tests for Logger"""
|
||||
|
||||
import logging
|
||||
import json
|
||||
import os
|
||||
import pytest
|
||||
from unittest.mock import patch, Mock
|
||||
from io import StringIO
|
||||
@@ -10,57 +11,43 @@ from oss.logger.logger import Logger
|
||||
|
||||
|
||||
class TestLogger:
|
||||
return Logger("test")
|
||||
|
||||
def test_logger_initialization(self):
|
||||
logger = Logger("test")
|
||||
|
||||
with patch.object(logger.logger, 'info') as mock_info:
|
||||
logger.info("Test message")
|
||||
|
||||
mock_info.assert_called_once_with("Test message")
|
||||
|
||||
|
||||
def test_logger_warn(self):
|
||||
logger = Logger("test")
|
||||
|
||||
with patch.object(logger.logger, 'error') as mock_error:
|
||||
logger.error("Test error")
|
||||
|
||||
mock_error.assert_called_once_with("Test error")
|
||||
|
||||
|
||||
def test_logger_debug(self):
|
||||
logger = Logger("test")
|
||||
|
||||
with patch.object(logger.logger, 'info') as mock_info:
|
||||
logger.info("Test message", "TAG")
|
||||
|
||||
mock_info.assert_called_once_with("[TAG] Test message")
|
||||
|
||||
|
||||
def test_logger_warn_with_tag(self):
|
||||
logger = Logger("test")
|
||||
|
||||
with patch.object(logger.logger, 'error') as mock_error:
|
||||
logger.error("Test error", "TAG")
|
||||
|
||||
mock_error.assert_called_once_with("[TAG] Test error")
|
||||
|
||||
|
||||
def test_logger_debug_with_tag(self):
|
||||
logger = Logger("test")
|
||||
|
||||
format_str = logger._get_log_format()
|
||||
|
||||
assert "%(asctime)s" in format_str
|
||||
assert "%(name)s" in format_str
|
||||
assert "%(levelname)s" in format_str
|
||||
assert "%(message)s" in format_str
|
||||
|
||||
|
||||
def test_get_log_format_json(self):
|
||||
os.environ["LOG_FORMAT"] = "json"
|
||||
|
||||
try:
|
||||
logger = Logger("test")
|
||||
format_str = logger._get_log_format()
|
||||
|
||||
assert "%(asctime)s" in format_str
|
||||
assert "%(name)s" in format_str
|
||||
assert "%(levelname)s" in format_str
|
||||
@@ -68,31 +55,33 @@ class TestLogger:
|
||||
finally:
|
||||
if "LOG_FORMAT" in os.environ:
|
||||
del os.environ["LOG_FORMAT"]
|
||||
|
||||
|
||||
def test_logger_json_format(self):
|
||||
|
||||
logger = Logger("test")
|
||||
assert logger is not None
|
||||
|
||||
def test_logger_output(self):
|
||||
log_capture = StringIO()
|
||||
|
||||
|
||||
logger = logging.getLogger("test_json")
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
|
||||
handler = logging.StreamHandler(log_capture)
|
||||
formatter = logging.Formatter(
|
||||
'{"time": "%(asctime)s", "name": "%(name)s", "level": "%(levelname)s", "message": "%(message)s"}'
|
||||
)
|
||||
handler.setFormatter(formatter)
|
||||
logger.addHandler(handler)
|
||||
|
||||
|
||||
logger.info("Test JSON message")
|
||||
|
||||
|
||||
log_output = log_capture.getvalue().strip()
|
||||
assert log_output.startswith("{")
|
||||
assert log_output.endswith("}")
|
||||
assert "test_json" in log_output
|
||||
assert "INFO" in log_output
|
||||
assert "Test JSON message" in log_output
|
||||
|
||||
|
||||
try:
|
||||
import json
|
||||
json.loads(log_output)
|
||||
@@ -101,4 +90,4 @@ class TestLogger:
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
pytest.main([__file__, '-v'])
|
||||
pytest.main([__file__, '-v'])
|
||||
|
||||
Reference in New Issue
Block a user