test : add unit tests for _unshare_net_supported in parser_sandbox
还没有人认领这个 Issue。
评估
调研方向
Read backend/secuscan/parser_sandbox.py to inspect _unshare_net_supported and its cache globals, then run the pytest command given in the issue. Add testing/backend/unit/test_parser_sandbox_unshare_supported.py with the four mocked platform and probe cases, resetting the cache around each test. Done means all four paths pass in isolation; the issue says tmdeveloper007 is handling it, so confirm availability before starting.
由索引模型根据 Issue 内容生成。
描述
Summary of What Needs to be Done:
Add unit tests for the _unshare_net_supported function in backend/secuscan/parser_sandbox.py. This function probes whether the unshare --user --net system call works on the host, and caches the result to avoid repeated probes.
The function has several distinct code paths that should each be tested:
- Non-Linux platform returns False immediately
unsharebinary not found returns Falseunsharebinary found but probe fails (non-zero exit) returns Falseunsharebinary found and probe succeeds (exit 0) returns True
Changes that Need to be Made:
Create testing/backend/unit/test_parser_sandbox_unshare_supported.py:
- Test non-Linux path by patching
platform.system()to return "Darwin" - Test unshare binary not found by patching
shutil.whichto return None - Test probe failure by patching
subprocess.runto return a non-zero returncode - Test probe success by patching
subprocess.runto return zero returncode - The function uses module-level caching (
_unshare_capability_checked,_unshare_available): each test case needs to reset these globals before and after to ensure test isolation - Import the real production function directly:
from backend.secuscan.parser_sandbox import _unshare_net_supported - Run with
python3 -m pytest testing/backend/unit/test_parser_sandbox_unshare_supported.py -v --noconftest
Impact that it would Provide:
- Tests a code path (capability detection) that is currently completely untested
- Prevents regressions when refactoring the unshare support detection logic
- Ensures the function behaves correctly on different platforms and when the
unsharebinary is unavailable - Uses standard
unittest.mockpatching, no heavy framework dependencies
Note: This task is being handled by tmdeveloper007 — please assign to that account when picking it up.
- 主要语言
- Python
- 星标
- 36
- 派生
- 234
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
utksh1/SecuScan 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
-
area:frontend good first issue level:intermediate priority:low type:testing
难度 2/5 1-3 小时 新手友好度 83/100
-
area:frontend good first issue level:intermediate priority:low type:testing
难度 2/5 1-3 小时 新手友好度 78/100
-
area:frontend good first issue level:beginner priority:low type:testing
难度 2/5 1-3 小时 新手友好度 76/100
-
area:frontend good first issue level:intermediate priority:low type:testing
难度 2/5 1-3 小时 新手友好度 82/100
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 83/100
维护者通常 1 天内回复
-
comp/desktop P3 type/feature
难度 2/5 1-3 小时 新手友好度 78/100
NousResearch/hermes-agent#154285 ·
维护者通常 1 天内回复
-
docs: qualify copied and custom kubectl debug policy notes可能已有人在做 @nym01 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
kubescape/cel-admission-library#166 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
SACGF/variantgrid#2804 · 1 条评论 ·
维护者通常 1 天内回复
-
[BUG] HTTP lifecycle dispatch treats a NO_PROXY-only environment as corporate egress and skips the resolve-and-pinned session可能已有人在做 @bodapatisaikrishna 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复