feat(tests): retarget submit-red/submit-blue through review gates, add review decisions
This commit is contained in:
@@ -13,6 +13,7 @@ from unittest.mock import MagicMock, patch
|
||||
from app.domain.exceptions import InvalidTransitionError
|
||||
from app.models.enums import TestState
|
||||
from app.services.test_workflow_service import (
|
||||
approve_red_review,
|
||||
can_transition,
|
||||
reopen_test,
|
||||
start_execution,
|
||||
@@ -108,18 +109,20 @@ def test_draft_to_validated_fails(mock_log):
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
@patch("app.services.test_workflow_service.select_reviewer")
|
||||
@patch("app.services.test_workflow_service.log_action")
|
||||
def test_red_executing_to_blue_evaluating(mock_log):
|
||||
def test_red_executing_to_blue_evaluating(mock_log, mock_select_reviewer):
|
||||
test = _make_test(TestState.red_executing)
|
||||
user = _make_user("red_tech")
|
||||
db = _make_db()
|
||||
mock_select_reviewer.return_value = _make_user("red_lead")
|
||||
|
||||
result = submit_red_evidence(db, test, user)
|
||||
|
||||
assert result.state == TestState.blue_evaluating
|
||||
assert result.state == TestState.red_review
|
||||
db.flush.assert_called()
|
||||
mock_log.assert_called()
|
||||
print(" [PASS] Transition red_executing -> blue_evaluating works")
|
||||
print(" [PASS] Transition red_executing -> red_review works")
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -193,11 +196,13 @@ def test_reopen_clears_validation(mock_log):
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
@patch("app.services.test_workflow_service.select_reviewer")
|
||||
@patch("app.services.test_workflow_service.log_action")
|
||||
def test_transitions_generate_audit_logs(mock_log):
|
||||
def test_transitions_generate_audit_logs(mock_log, mock_select_reviewer):
|
||||
test = _make_test(TestState.draft)
|
||||
user = _make_user("red_tech")
|
||||
db = _make_db()
|
||||
mock_select_reviewer.return_value = _make_user("red_lead")
|
||||
|
||||
start_execution(db, test, user)
|
||||
assert mock_log.call_count >= 1
|
||||
@@ -207,8 +212,12 @@ def test_transitions_generate_audit_logs(mock_log):
|
||||
assert mock_log.call_count > c1
|
||||
c2 = mock_log.call_count
|
||||
|
||||
submit_blue_evidence(db, test, user)
|
||||
approve_red_review(db, test, _make_user("red_lead"))
|
||||
assert mock_log.call_count > c2
|
||||
c3 = mock_log.call_count
|
||||
|
||||
submit_blue_evidence(db, test, user)
|
||||
assert mock_log.call_count > c3
|
||||
|
||||
print(" [PASS] Each transition generates an audit log")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user