def test_add_markings_combination(): before = Malware( **MALWARE_KWARGS ) after = Malware( object_marking_refs=[MARKING_IDS[0], MARKING_IDS[1]], granular_markings=[ { "selectors": ["malware_types"], "marking_ref": MARKING_IDS[2], }, { "selectors": ["name"], "marking_ref": MARKING_IDS[3], }, ], **MALWARE_KWARGS ) before = markings.add_markings(before, MARKING_IDS[0], None) before = markings.add_markings(before, MARKING_IDS[1], None) before = markings.add_markings(before, MARKING_IDS[2], "malware_types") before = markings.add_markings(before, MARKING_IDS[3], "name") for m in before["granular_markings"]: assert m in after["granular_markings"] for m in before["object_marking_refs"]: assert m in after["object_marking_refs"]
def test_add_marking_mark_multiple_selector_multiple_refs_mixed(): before = Malware( **MALWARE_KWARGS ) after = Malware( granular_markings=[ { "selectors": ["description", "name"], "marking_ref": MARKING_IDS[0], }, { "selectors": ["description", "name"], "marking_ref": MARKING_IDS[1], }, { "selectors": ["description", "name"], "lang": MARKING_LANGS[0], }, { "selectors": ["description", "name"], "lang": MARKING_LANGS[1], }, ], **MALWARE_KWARGS ) before = markings.add_markings(before, [MARKING_IDS[0], MARKING_IDS[1], MARKING_LANGS[0], MARKING_LANGS[1]], ["description", "name"]) for m in before["granular_markings"]: assert m in after["granular_markings"]
def test_add_markings_one_marking(data): before = data[0] after = data[1] before = markings.add_markings(before, data[2], None) for m in before["object_marking_refs"]: assert m in after["object_marking_refs"]
def test_add_marking_mark_multiple_selector_one_refs(data): before = data[0] after = data[1] before = markings.add_markings(before, data[2], ["description", "name"]) for m in before["granular_markings"]: assert m in after["granular_markings"]
def test_add_markings_bad_markings(data): before = Malware( **MALWARE_KWARGS ) with pytest.raises(exceptions.InvalidValueError): before = markings.add_markings(before, data, None) assert "object_marking_refs" not in before
def test_add_markings_multiple_marking(): before = Malware(**MALWARE_KWARGS) after = Malware(object_marking_refs=[MARKING_IDS[0], MARKING_IDS[1]], **MALWARE_KWARGS) before = markings.add_markings(before, [MARKING_IDS[0], MARKING_IDS[1]], None) for m in before["object_marking_refs"]: assert m in after["object_marking_refs"]
def test_add_marking_mark_same_property_same_marking(): before = Malware(granular_markings=[ { "selectors": ["description"], "marking_ref": MARKING_IDS[0], }, ], **MALWARE_KWARGS) after = Malware(granular_markings=[ { "selectors": ["description"], "marking_ref": MARKING_IDS[0], }, ], **MALWARE_KWARGS) before = markings.add_markings(before, [MARKING_IDS[0]], ["description"]) for m in before["granular_markings"]: assert m in after["granular_markings"]
def test_add_marking_bad_selector(data, marking): with pytest.raises(InvalidSelectorError): markings.add_markings(data, marking[0], marking[1])
def test_add_marking_bad_selector(data, marking): with pytest.raises(AssertionError): markings.add_markings(data, marking[0], marking[1])