def test_set_marking_bad_input(data): before = Malware(object_marking_refs=[MARKING_IDS[0]], **MALWARE_KWARGS) after = Malware(object_marking_refs=[MARKING_IDS[0]], **MALWARE_KWARGS) with pytest.raises(exceptions.InvalidValueError): before = markings.set_markings(before, data, None) assert before == after
def test_set_marking_mark_another_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[1], }, { "selectors": ["description"], "marking_ref": MARKING_IDS[2], }, ], **MALWARE_KWARGS ) before = markings.set_markings(before, [MARKING_IDS[1], MARKING_IDS[2]], ["description"]) for m in before["granular_markings"]: assert m in after["granular_markings"]
def test_remove_marking_mark_one_selector_markings_from_multiple_ones(): after = Malware( granular_markings=[ { "selectors": ["description"], "marking_ref": MARKING_IDS[0], }, { "selectors": ["description", "modified"], "marking_ref": MARKING_IDS[1], }, ], **MALWARE_KWARGS ) before = Malware( granular_markings=[ { "selectors": ["description", "modified"], "marking_ref": MARKING_IDS[0], }, { "selectors": ["description", "modified"], "marking_ref": MARKING_IDS[1], }, ], **MALWARE_KWARGS ) before = markings.remove_markings(before, [MARKING_IDS[0]], ["modified"]) for m in before["granular_markings"]: assert m in after["granular_markings"]
def test_add_markings_combination(): before = Malware(**MALWARE_KWARGS) after = Malware(object_marking_refs=[MARKING_IDS[0], MARKING_IDS[1]], granular_markings=[ { "selectors": ["labels"], "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], "labels") 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_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_remove_markings_bad_markings(): before = Malware( object_marking_refs=[MARKING_IDS[0], MARKING_IDS[1], MARKING_IDS[2]], **MALWARE_KWARGS) with pytest.raises(AssertionError) as excinfo: markings.remove_markings(before, [MARKING_IDS[4]], None) assert str(excinfo.value ) == "Marking ['%s'] was not found in Malware!" % MARKING_IDS[4]
def test_set_marking_mark_one_selector_multiple_refs(): before = Malware(**MALWARE_KWARGS) after = Malware(granular_markings=[ { "selectors": ["description"], "marking_ref": MARKING_IDS[0], }, { "selectors": ["description"], "marking_ref": MARKING_IDS[1], }, ], **MALWARE_KWARGS) before = markings.set_markings(before, [MARKING_IDS[0], MARKING_IDS[1]], ["description"]) for m in before["granular_markings"]: assert m in after["granular_markings"]
def test_set_marking(): before = Malware( object_marking_refs=[MARKING_IDS[0], MARKING_IDS[1], MARKING_IDS[2]], **MALWARE_KWARGS) after = Malware(object_marking_refs=[MARKING_IDS[4], MARKING_IDS[5]], **MALWARE_KWARGS) before = markings.set_markings(before, [MARKING_IDS[4], MARKING_IDS[5]], None) for m in before["object_marking_refs"]: assert m in [MARKING_IDS[4], MARKING_IDS[5]] assert [MARKING_IDS[0], MARKING_IDS[1], MARKING_IDS[2]] not in before["object_marking_refs"] for x in before["object_marking_refs"]: assert x in after["object_marking_refs"]
def test_create_sdo_with_invalid_marking(): with pytest.raises(AssertionError) as excinfo: Malware(granular_markings=[ { "selectors": ["foo"], "marking_ref": MARKING_IDS[0], }, ], **MALWARE_KWARGS) assert str(excinfo.value) == "Selector foo in Malware is not valid!"
def test_remove_marking_not_present(): before = Malware(granular_markings=[ { "selectors": ["description"], "marking_ref": MARKING_IDS[0], }, ], **MALWARE_KWARGS) with pytest.raises(MarkingNotFoundError): markings.remove_markings(before, [MARKING_IDS[1]], ["description"])
def rel_mem_store(): cam = Campaign(id=CAMPAIGN_ID, **CAMPAIGN_KWARGS) idy = Identity(id=IDENTITY_ID, **IDENTITY_KWARGS) ind = Indicator(id=INDICATOR_ID, **INDICATOR_KWARGS) mal = Malware(id=MALWARE_ID, **MALWARE_KWARGS) rel1 = Relationship(ind, 'indicates', mal, id=RELATIONSHIP_IDS[0]) rel2 = Relationship(mal, 'targets', idy, id=RELATIONSHIP_IDS[1]) rel3 = Relationship(cam, 'uses', mal, id=RELATIONSHIP_IDS[2]) stix_objs = [cam, idy, ind, mal, rel1, rel2, rel3] yield MemoryStore(stix_objs)
def test_set_marking_bad_selector(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) with pytest.raises(AssertionError): before = markings.set_markings(before, marking[0], marking[1]) assert before == after
def test_remove_marking_remove_multiple_selector_one_ref(): before = Malware(granular_markings=[ { "selectors": ["description", "modified"], "marking_ref": MARKING_IDS[0], }, ], **MALWARE_KWARGS) before = markings.remove_markings(before, MARKING_IDS[0], ["description", "modified"]) assert "granular_markings" not in before
def test_remove_marking_mark_same_property_same_marking(): before = Malware(granular_markings=[ { "selectors": ["description"], "marking_ref": MARKING_IDS[0], }, ], **MALWARE_KWARGS) before = markings.remove_markings(before, [MARKING_IDS[0]], ["description"]) assert "granular_markings" not in before
def test_set_marking_on_id_property(): malware = Malware( granular_markings=[ { "selectors": ["id"], "marking_ref": MARKING_IDS[0], }, ], **MALWARE_KWARGS ) assert "id" in malware["granular_markings"][0]["selectors"]
from .constants import MARKING_IDS """Tests for the Data Markings API.""" MALWARE_KWARGS = MALWARE_KWARGS_CONST.copy() MALWARE_KWARGS.update({ 'id': MALWARE_ID, 'created': FAKE_TIME, 'modified': FAKE_TIME, }) @pytest.mark.parametrize( "data", [ ( Malware(**MALWARE_KWARGS), Malware(object_marking_refs=[MARKING_IDS[0]], **MALWARE_KWARGS), MARKING_IDS[0], ), ( MALWARE_KWARGS, dict(object_marking_refs=[MARKING_IDS[0]], **MALWARE_KWARGS), MARKING_IDS[0], ), ( Malware(**MALWARE_KWARGS), Malware(object_marking_refs=[TLP_AMBER.id], **MALWARE_KWARGS), TLP_AMBER, ), ], )
"selectors": ["description"], "marking_ref": MARKING_IDS[1], }, ], **MALWARE_KWARGS ) before = markings.add_markings(before, [MARKING_IDS[0], MARKING_IDS[1]], ["description"]) for m in before["granular_markings"]: assert m in after["granular_markings"] @pytest.mark.parametrize( "data", [ ( Malware(**MALWARE_KWARGS), Malware( granular_markings=[ { "selectors": ["description", "name"], "marking_ref": MARKING_IDS[0], }, ], **MALWARE_KWARGS ), MARKING_IDS[0], ), ( MALWARE_KWARGS, dict( 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