← back to Dw Five Field Step0
test/test_sku_guard.py
71 lines
import pathlib
import sys
import unittest
sys.path.insert(0, str(pathlib.Path(__file__).resolve().parents[1]))
from sku_guard import validate_dw_sku
class SkuGuardTests(unittest.TestCase):
def test_add_sample_requires_a_fetched_live_non_sample_base(self):
live = [{"sku": "DWKK-102147", "option1": "Roll"}]
result = validate_dw_sku("DWKK-102147-Sample", "add-sample", live)
self.assertTrue(result["ok"])
self.assertEqual(result["basis"], "live-variant")
self.assertFalse(validate_dw_sku("DWKK-999999-Sample", "add-sample", live)["ok"])
def test_build_roll_requires_a_fetched_live_sample_base(self):
result = validate_dw_sku("DWKK-102147", "build-roll", [
{"sku": "DWKK-102147-Sample", "option1": "Sample"},
])
self.assertTrue(result["ok"])
self.assertEqual(result["basis"], "live-sample-variant")
self.assertFalse(validate_dw_sku("DWKK-999999", "build-roll", [
{"sku": "DWKK-102147-Sample", "option1": "Sample"},
])["ok"])
def test_legitimate_base_ending_sample_is_anchored_without_lossy_double_strip(self):
result = validate_dw_sku("ART-SAMPLE-Sample", "add-sample", [
{"sku": "ART-SAMPLE", "option1": "Roll"},
])
self.assertTrue(result["ok"])
def test_unit_like_text_is_preserved_as_exact_sku_identity(self):
for suffix in ["ROLL", "YARD", "PANEL"]:
base = f"ART-{suffix}"
self.assertTrue(validate_dw_sku(f"{base}-Sample", "add-sample", [
{"sku": base, "option1": "Roll"},
])["ok"])
self.assertFalse(validate_dw_sku("ART-Sample", "add-sample", [
{"sku": base, "option1": "Roll"},
])["ok"])
def test_rejects_coercion_unicode_controls_whitespace_and_unknown_lane(self):
live = [{"sku": "ABC", "option1": "Roll"}]
for candidate in [None, "", "None", "null", 12345, " ABC-Sample", "ABC\nDEF-Sample", "straße-Sample", "abc-Sample"]:
self.assertFalse(validate_dw_sku(candidate, "add-sample", live)["ok"])
self.assertEqual(validate_dw_sku("ABC-Sample", "mystery", live)["reason"], "unknown-lane")
def test_rejects_missing_or_malformed_live_provenance(self):
self.assertEqual(validate_dw_sku("ABC-Sample", "add-sample", None)["reason"], "invalid-live-variants")
self.assertFalse(validate_dw_sku("ABC-Sample", "add-sample", [{"sku": "ABC-Sample", "option1": "Sample"}])["ok"])
self.assertFalse(validate_dw_sku("ABC", "build-roll", [{"sku": "ABC-Sample", "option1": "Roll"}])["ok"])
def test_rejects_duplicate_or_conflicting_live_identities(self):
for live in [
[{"sku": "AAA", "option1": "Roll"}, {"sku": "BBB", "option1": "Roll"}],
[{"sku": "AAA", "option1": "Roll"}, {"sku": "AAA", "option1": "Roll"}],
]:
self.assertEqual(validate_dw_sku("AAA-Sample", "add-sample", live)["reason"],
"ambiguous-live-non-sample-identity")
for live in [
[{"sku": "AAA-Sample", "option1": "Sample"}, {"sku": "BBB-Sample", "option1": "Sample"}],
[{"sku": "AAA-Sample", "option1": "Sample"}, {"sku": "AAA-Sample", "option1": "Sample"}],
]:
self.assertEqual(validate_dw_sku("AAA", "build-roll", live)["reason"],
"ambiguous-live-sample-identity")
if __name__ == "__main__":
unittest.main()