Files
zkxw/backend/tests/test_storage_release_dual_gate.py
T

94 lines
3.6 KiB
Python

from app.crud.storage_release_review import (
aggregate_review_conclusion,
conclusion_blank,
matches_dual_review_phase,
normalize_review_side,
review_side_required_menu,
should_copy_legacy_to_qc,
storage_transition,
)
def test_conclusion_blank():
assert conclusion_blank(None) is True
assert conclusion_blank("") is True
assert conclusion_blank(" ") is True
assert conclusion_blank("tg") is False
assert conclusion_blank("btg") is False
def test_aggregate_both_tg():
assert aggregate_review_conclusion("tg", "tg") == "tg"
def test_aggregate_any_btg():
assert aggregate_review_conclusion("btg", "tg") == "btg"
assert aggregate_review_conclusion("tg", "btg") == "btg"
assert aggregate_review_conclusion("btg", None) == "btg"
assert aggregate_review_conclusion("", "btg") == "btg"
def test_aggregate_pending_when_not_aligned():
assert aggregate_review_conclusion("tg", None) is None
assert aggregate_review_conclusion(None, "tg") is None
assert aggregate_review_conclusion(None, None) is None
assert aggregate_review_conclusion("", "") is None
def test_storage_transition_store_when_both_tg_and_pending():
assert storage_transition("tg", "tg", "drk") == "store"
def test_storage_transition_unstore_when_btg_and_stored():
assert storage_transition("btg", "tg", "yrk") == "unstore"
assert storage_transition("tg", "btg", "yrk") == "unstore"
def test_storage_transition_noop_otherwise():
assert storage_transition("tg", "tg", "yrk") == "noop"
assert storage_transition("tg", None, "drk") == "noop"
assert storage_transition("btg", "tg", "drk") == "noop"
assert storage_transition(None, None, "yrk") == "noop"
def test_matches_dual_review_phase_production():
assert matches_dual_review_phase("production", "pending", None, "tg") is True
assert matches_dual_review_phase("production", "pending", "tg", "tg") is False
assert matches_dual_review_phase("production", "reviewed", "btg", None) is True
assert matches_dual_review_phase("production", "reviewed", None, "tg") is False
def test_matches_dual_review_phase_qc():
assert matches_dual_review_phase("qc", "pending", "tg", None) is True
assert matches_dual_review_phase("qc", "reviewed", "tg", "tg") is True
assert matches_dual_review_phase("qc", "reviewed", "tg", None) is False
def test_matches_dual_review_phase_overview():
assert matches_dual_review_phase("overview", "pending", None, "tg") is True
assert matches_dual_review_phase("overview", "pending", "tg", "tg") is False
assert matches_dual_review_phase("overview", "reviewed", "tg", "btg") is True
assert matches_dual_review_phase("overview", "reviewed", "tg", None) is False
def test_should_copy_legacy_to_qc():
assert should_copy_legacy_to_qc(None, "tg") is True
assert should_copy_legacy_to_qc("", "btg") is True
assert should_copy_legacy_to_qc("tg", "tg") is False
assert should_copy_legacy_to_qc(None, None) is False
assert should_copy_legacy_to_qc(None, "") is False
def test_normalize_review_side():
assert normalize_review_side("production") == "production"
assert normalize_review_side(" QC ") == "qc"
assert normalize_review_side("overview") == "overview"
assert normalize_review_side("all") is None
assert normalize_review_side(None) is None
def test_review_side_required_menu():
assert review_side_required_menu("production") == "production:storageReleaseReview:list"
assert review_side_required_menu("qc") == "quality:storageReleaseReview:list"
assert review_side_required_menu("overview") is None