94 lines
3.6 KiB
Python
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
|