Some checks failed
Aegis CI / lint-and-test (push) Has been cancelled
1. New 'disputed' state — one lead approved, the other rejected:
- Both approved → validated (unchanged)
- Both rejected → rejected (unchanged)
- One approves + one rejects → disputed (new)
- DB: ALTER TYPE teststate ADD VALUE 'disputed'
- Notification sent to the approving lead explaining the conflict
with the rejection notes
2. Disputed UI in TestDetailHeader:
- Amber banner showing conflict + rejection reason from notes
- 'Change Vote to Rejected' button for the lead who approved
- Validation indicators shown for disputed state too
3. Fix timestamps on reopen (rejected → draft):
- Keep red_started_at, blue_started_at etc. as historical record
- Only clear paused_at defensively
- Timestamps naturally update when test is re-executed
4. disputed badge (amber) added to all badge color maps
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
"""Canonical domain enums for Aegis.
|
|
|
|
These enums represent core domain concepts and are the single source of
|
|
truth. ``models/enums.py`` re-exports them so that existing ORM code
|
|
continues to work without changes.
|
|
"""
|
|
|
|
import enum
|
|
|
|
|
|
class TechniqueStatus(str, enum.Enum):
|
|
not_evaluated = "not_evaluated"
|
|
in_progress = "in_progress"
|
|
validated = "validated"
|
|
partial = "partial"
|
|
not_covered = "not_covered"
|
|
review_required = "review_required"
|
|
|
|
|
|
class TestState(str, enum.Enum):
|
|
draft = "draft"
|
|
red_executing = "red_executing"
|
|
blue_evaluating = "blue_evaluating"
|
|
in_review = "in_review"
|
|
validated = "validated"
|
|
rejected = "rejected"
|
|
disputed = "disputed" # one lead approved, the other rejected
|
|
|
|
|
|
class TeamSide(str, enum.Enum):
|
|
red = "red"
|
|
blue = "blue"
|
|
|
|
|
|
class TestResult(str, enum.Enum):
|
|
detected = "detected"
|
|
not_detected = "not_detected"
|
|
partially_detected = "partially_detected"
|
|
|
|
|
|
class DataClassification(str, enum.Enum):
|
|
public = "public"
|
|
internal = "internal"
|
|
sensitive = "sensitive"
|
|
restricted = "restricted"
|