Prhub

#26654 rename unittest as unittests

原始 PR 作者 ch-wan 合并时间 2026-05-29 12:14 文件变更 50 提交数 1 评论 1 代码增减 +0 / -0

执行摘要

重命名 attention 测试目录避免与 unittest 模块冲突

PR body 指出该变更是为了解决 CI 失败:链接指向 CI 运行失败日志。失败原因是 test/registered/attention/unittest 目录与 Python 内置 unittest 模块重名,导致 pytest 在收集测试时产生导入冲突或模块搜索路径错误。重命名后消除了这一冲突。

值得快速合并以恢复 CI 正常。该 PR 属于基础设施清理,技术细节简单,但有助于提升开发体验。评审者应确认没有硬编码旧路径的引用。

讨论亮点

该 PR 没有 review 评论或设计讨论。唯一的评论是自动 bot 的每日配额提示,与内容无关。变更直接、简单,未引起争议。

实现拆解

  1. 重命名目录及其所有子文件和子目录:将 test/registered/attention/unittest/ 目录整体移动为 test/registered/attention/unittests/。涉及 50 个文件,包括 __init__.pyconftest.py 以及 dense/mla/ 等子目录下的全部测试文件。每个文件内容保持不变,仅变更路径。

由于测试文件内部使用相对路径(如 sys.path.insert(0, str(Path(__file__).resolve().parents[1])))来添加搜索路径,重命名后 parents[1] 仍然正确指向新目录的父目录,因此无需调整任何导入语句或配置。

配套变更:无。测试本身无逻辑变化,CI 配置也无需修改,因为 pytest 会自动发现 unittests 目录下的测试用例。

文件 模块 状态 重要度
test/registered/attention/unittests/__init__.py 测试模块 renamed 2.71
test/registered/attention/unittests/conftest.py 测试配置 renamed 3.11
test/registered/attention/unittests/dense/test_fa3.py 注意力测试 renamed 2.71

关键源码片段

test/registered/attention/unittests/conftest.py rename-or-move

包含路径设置逻辑,重命名后确保相对路径仍有效,是理解为何无需改动的关键。

import sys
from pathlib import Path# 添加此目录到 sys.path,以便测试文件能正确导入共享工具。
# 此路径在重命名后仍有效,因为 __file__ 指向新位置,
# parents[1] 仍指向 test/registered/attention/。
_here = str(Path(__file__).resolve().parent)
if _here not in sys.path:
    sys.path.insert(0, _here)
test/registered/attention/unittests/dense/test_fa3.py rename-or-move

代表性测试文件,展示导入方式不受影响。

import sys
import unittest
from pathlib import Pathimport torchfrom sglang.srt.model_executor.forward_batch_info import ForwardMode
from sglang.srt.utils import get_device_sm
from sglang.test.test_utils import CustomTestCasesys.path.insert(0, str(Path(__file__).resolve().parents[1]))
# 上一行在重命名后 parents[1] 仍指向 test/registered/attention/,
# 因此导入共享工具不受影响。from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.kits.attention_unittest.attention_methods.dense_attention import (
    DenseAttentionCase,
    make_dense_cases,
    run_dense_attention_case,
)
# ... 后续测试类定义不变

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。仅涉及测试文件重命名,无代码逻辑改动。需确认:(1)没有其他 CI 配置、脚本或文档硬编码了旧路径 unittest;(2)外部依赖或导入路径未受影响。从变更列表看,未修改任何非测试文件,且重命名后的目录结构保持一致,因此回归可能性很小。

对用户无直接影响。对内:修复了 CI 测试发现问题,使注意力相关测试能够正常执行,避免因测试遗漏导致质量问题。对团队:消除了一个已知的 Python 命名空间冲突,降低了后续开发中的困惑。

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论