fix(tests): apply user edits when creating test from template
Some checks failed
Aegis CI / lint-and-test (push) Has been cancelled
Some checks failed
Aegis CI / lint-and-test (push) Has been cancelled
The form captured name/description/platform/procedure/tool edits but never sent them — the created test always used the raw template values. - TestTemplateInstantiate schema: add optional override fields (name, description, platform, procedure_text, tool_used) - create_test_from_template service: accept *_override kwargs; use override value when provided, fall back to template value - Router: pass all override fields from payload to service - Frontend API createTestFromTemplate: accept overrides object, spread into body - TestFromTemplateForm: pass all form state values as overrides Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -93,10 +93,17 @@ def create_test_from_template(
|
||||
template_id: uuid.UUID,
|
||||
technique_id_or_mitre: str,
|
||||
creator_id: uuid.UUID,
|
||||
# Optional user-edited overrides (take priority over template values)
|
||||
name_override: str | None = None,
|
||||
description_override: str | None = None,
|
||||
platform_override: str | None = None,
|
||||
procedure_text_override: str | None = None,
|
||||
tool_used_override: str | None = None,
|
||||
) -> Test:
|
||||
"""Instantiate a Test from a TestTemplate.
|
||||
|
||||
technique_id_or_mitre can be a UUID string or MITRE ID (e.g. T1059.001).
|
||||
Override fields, when provided, take precedence over the template's values.
|
||||
Raises EntityNotFoundError if template or technique not found.
|
||||
Does not commit; caller uses UnitOfWork.
|
||||
"""
|
||||
@@ -121,11 +128,11 @@ def create_test_from_template(
|
||||
|
||||
test = Test(
|
||||
technique_id=technique.id,
|
||||
name=template.name,
|
||||
description=template.description,
|
||||
platform=template.platform,
|
||||
procedure_text=template.attack_procedure,
|
||||
tool_used=template.tool_suggested,
|
||||
name=name_override if name_override is not None else template.name,
|
||||
description=description_override if description_override is not None else template.description,
|
||||
platform=platform_override if platform_override is not None else template.platform,
|
||||
procedure_text=procedure_text_override if procedure_text_override is not None else template.attack_procedure,
|
||||
tool_used=tool_used_override if tool_used_override is not None else template.tool_suggested,
|
||||
remediation_steps=template.suggested_remediation,
|
||||
created_by=creator_id,
|
||||
state=TestState.draft,
|
||||
|
||||
Reference in New Issue
Block a user