"""`dwg_review.evidence_model` 单元测试。""" from dwg_review import evidence_model as em def test_make_image_defaults(): assert em.make_image("QUJD") == {"b64": "QUJD", "mime": "image/png", "label": None} def test_make_image_custom(): assert em.make_image("QUJD", "image/jpeg", "tile-1") == { "b64": "QUJD", "mime": "image/jpeg", "label": "tile-1", } def test_make_image_empty_mime_falls_back(): assert em.make_image("x", "")["mime"] == "image/png" def test_source_type_of_default_cad(): assert em.source_type_of({}) == em.SOURCE_CAD assert em.source_type_of(None) == em.SOURCE_CAD assert em.source_type_of({"source_type": ""}) == em.SOURCE_CAD def test_source_type_of_explicit(): assert em.source_type_of({"source_type": "pdf"}) == "pdf" assert em.source_type_of({"source_type": "image"}) == "image" def test_evidence_images_new_form(): ev = { "images": [ em.make_image("A", label="overall"), em.make_image("B", label="tile-1"), ] } out = em.evidence_images(ev) assert [i["b64"] for i in out] == ["A", "B"] assert [i["label"] for i in out] == ["overall", "tile-1"] def test_evidence_images_filters_empty_b64(): ev = {"images": [{"b64": "", "mime": "image/png"}, {"b64": "A"}]} out = em.evidence_images(ev) assert len(out) == 1 assert out[0]["b64"] == "A" def test_evidence_images_legacy_fallback(): ev = {"image_b64": "LEG", "image_mime": "image/jpeg"} assert em.evidence_images(ev) == [ {"b64": "LEG", "mime": "image/jpeg", "label": None, "window": None} ] def test_evidence_images_legacy_default_mime(): assert em.evidence_images({"image_b64": "LEG"})[0]["mime"] == "image/png" def test_evidence_images_empty(): assert em.evidence_images({}) == [] assert em.evidence_images(None) == [] assert em.evidence_images({"images": []}) == [] def test_evidence_images_prefers_new_over_legacy(): ev = {"images": [em.make_image("NEW")], "image_b64": "OLD"} assert [i["b64"] for i in em.evidence_images(ev)] == ["NEW"] def test_primary_image_prefers_overall(): ev = { "images": [ em.make_image("A", label="tile-1"), em.make_image("B", label="overall"), ] } assert em.primary_image(ev)["b64"] == "B" def test_primary_image_first_when_no_overall(): ev = {"images": [em.make_image("A", label="tile-1"), em.make_image("B")]} assert em.primary_image(ev)["b64"] == "A" def test_primary_image_none_when_empty(): assert em.primary_image({}) is None def test_image_labels(): ev = { "images": [ em.make_image("A", label="overall"), em.make_image("B", label="tile-1"), ] } assert em.image_labels(ev) == ["overall", "tile-1"]