已合并
test(logging): add testcase for torch._logging.set_logs #42018
木路折创建于 7月18日
test(logging): add testcase for torch._logging.set_logs #42018
已合并
Pull Request已成功合入, 合并人@ascend-robot
(感谢 木路折 的贡献)atomgit-bot
7月18日 评论:
7月18日 评论:
变更摘要
该PR新增测试文件 test/test_library_logging.py,为 torch._logging.set_logs 接口补充了完整的单元测试覆盖。测试类 TestLibraryLogging 验证了组件日志级别设置、artifact 开关、模块别名、无效参数校验以及环境变量 TORCH_LOGS 优先级等核心行为。
主要改动
- 新增测试文件
test/test_library_logging.py:创建了独立的测试模块,使用preserve_log_state()上下文管理器确保各测试用例之间日志状态隔离。 - 验证默认清零行为:
test_set_logs_default_clears_state测试无参调用set_logs()后,artifact 状态和日志级别对被正确重置。 - 验证组件与 artifact 设置:
test_set_logs_enable_component和test_set_logs_enable_artifact分别测试通过关键字参数设置已注册组件(如dynamo)的日志级别和启用 artifact(如graph_code)。 - 验证
modules别名与错误处理:test_set_logs_modules测试通过modules字典参数设置别名组件;test_set_logs_invalid_artifact_value、test_set_logs_invalid_log_level、test_set_logs_invalid_module_name覆盖了非法参数时抛出ValueError的场景。 - 验证环境变量优先级:
test_set_logs_env_var_precedence使用unittest.mock.patch.dict模拟TORCH_LOGS环境变量设置后,确认set_logs()调用被忽略,确保环境变量具有更高优先级。


ascend-robot
7月18日 评论:
7月18日 评论:
atomgit-bot
7月18日 评论:
7月18日 评论:
代码审查
审查总结
该 diff 是新增的测试文件 test/test_library_logging.py,为 torch._logging.set_logs 添加了 8 个测试用例。经审查,发现 2 个 P2 级别问题,无 P0/P1 问题。
文件审查结果
- test/test_library_logging.py:发现 2 个问题(已上报)
问题摘要
| 优先级 | 数量 | 说明 |
|---|---|---|
| P0 | 0 | — |
| P1 | 0 | — |
| P2 | 2 | 测试逻辑缺陷:无效模块名测试中使用了非法日志级别值(True),可能导致假阳性;环境变量优先级测试中 _init_logs() 未在异常路径上被调用 |
| P3 | 0 | — |
整体风险判断:低风险。两个问题均为测试可靠性问题,不影响生产代码。修复后测试将更加稳健,避免在实现细节变化时产生假阳性或级联测试失败。
⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。


7月18日 添加了label:ascend-cla/no
此处折叠了178条消息 查看更多
li_jing_hw
24 天前 评论:
24 天前 评论:
/approve


24 天前 添加了label:approvedlgtm
24 天前 合入了pull request
ascend-robot
24 天前 评论:
24 天前 评论:
Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


ascend-robot
24 天前 评论:
24 天前 评论:
流水线 pytorch_gitcode_PR_multiVersion#13575 [ commitID:78a034d4 ] 已完成


【合入来源】
关联社区 issue:https://gitcode.com/Ascend/pytorch/issues/2899
pytorch 官方社区没有针对
torch._logging.set_logs的独立、充分测试用例,本次按任务要求新增测试文件补齐该 API 的验证。【修改方案】
一、API 功能说明
二、测试用例完备性说明
新增
test/test_library_logging.py,从以下几个维度验证torch._logging.set_logs:默认状态重置
test_set_logs_default_clears_state:调用set_logs()无参时清空日志状态。组件日志级别设置
test_set_logs_enable_component:通过别名设置日志级别并校验 logger 级别。Artifact 启用
test_set_logs_enable_artifact:通过 artifact 别名启用日志产物。modules 参数
test_set_logs_modules:通过modules参数批量配置已注册别名。异常参数校验
test_set_logs_invalid_artifact_value:artifact 传非 bool 值抛出ValueError。test_set_logs_invalid_log_level:日志级别非法时抛出ValueError。test_set_logs_invalid_module_name:modules中传入未注册名称时抛出ValueError。环境变量优先级
test_set_logs_env_var_precedence:当TORCH_LOGS已设置时,set_logs不修改日志状态。三、NPU 适配
torch._logging.set_logs为纯 Python 层日志配置接口,不涉及算子调用、张量计算或设备内存操作,与 CPU/GPU/NPU 完全解耦。昇腾 NPU 环境下无需修改 API 源码,测试中也无需导入torch_npu或创建 NPU 张量,可直接复用。【资料变更】
不涉及。
torch._logging.set_logs属于 PyTorch 内部日志模块私有接口,本 PR 仅补充测试用例,无需在docs/zh/api/native_api中刷新资料。【接口变更】
不涉及。本 PR 仅新增测试用例,未修改公共接口。
【功能验证】
已在本地环境执行测试命令:
TORCH_DEVICE_BACKEND_AUTOLOAD=0 python test/test_library_logging.py输出:
【CheckList】