test : add unit tests for _build_triage_prompt in triage_engine

未关闭
#2,420 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

  • #2425 来自 @tmdeveloper007 —— 已关闭,未合并

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
35/100
Issue 类型
功能
描述清晰度
描述清楚
活跃度
停滞
技术栈
python
领域
security, testing

调研方向

Read backend/secuscan/triage_engine.py to inspect _build_triage_prompt() and the existing tests in testing/backend/unit/test_triage_engine.py. Add focused tests for the listed fields, defaults, response format, and deterministic output. Done means those cases verify the prompt without invoking an LLM; linked pull request #2425 is closed and unmerged, so check its changes before starting.

由索引模型根据 Issue 内容生成。

描述

Summary of What Needs to be Done:
Add unit tests for the _build_triage_prompt() helper function in backend/secuscan/triage_engine.py. This private function constructs the prompt string passed to the LLM when triaging a SAST finding. It formats the finding title, category, severity, description, code context, and variables into a structured prompt.

The existing test file testing/backend/unit/test_triage_engine.py tests extract_code_context, is_eligible_for_triage, triage_finding, and triage_findings, but _build_triage_prompt is not directly imported or tested.

Changes that Need to be Made:
In testing/backend/unit/test_triage_engine.py:

  • Import _build_triage_prompt from backend.secuscan.triage_engine
  • Test that the prompt includes the finding title
  • Test that the prompt includes the finding category
  • Test that the prompt includes the severity
  • Test that the prompt includes the description
  • Test that the prompt includes the code snippet from context
  • Test that the prompt includes variable hints
  • Test that missing/None values fall back to defaults like "Untitled finding", "(no source snippet available)", "(none identified)"
  • Test that the prompt ends with the response format instructions (JSON object requirements)
  • Test that the prompt is a pure function (same inputs always produce same output)

Impact that it would Provide:

  • Directly tests the prompt construction logic without needing a mock LLM
  • Ensures the LLM receives well-formed prompts with all required fields
  • Catches regressions if the prompt template changes

Note: This task is being handled by tmdeveloper007 — please assign to that account when picking it up.

主要语言
Python
星标
36
派生
234
PR 合并指标
30 天内没有已合并 PR

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

utksh1/SecuScan 的其他 Issue

查看 utksh1/SecuScan 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。