def test_filter_latest_versions(): """Tests that filtering only returns latest versions.""" malware1 = Malware(name='malware1', labels=['label1']).save() Malware(name='malware2', labels=['label1']).save() malware1.update({'name': 'malware11'}) assert Malware.filter({'name': 'malware1'})[0].modified == malware1.modified assert len(Malware.filter({'name': 'malware'})) == 2
def test_malware_versionning(): """Tests that a getting a Malware object returns the most recent version.""" malware = Malware(name='asd', labels=['label1']) malware.save() stix_id = malware.id malware.update({'name': 'dsa'}) fetched = Malware.get(stix_id) assert fetched.id == stix_id assert fetched.created < fetched.modified
def test_update_malware(): """Tests that a Malware object is succesfully updated.""" kc_phases = [{'kill_chain_name': 'cyber', 'phase_name': 'cyber1'}] malware = Malware(name='asd', labels=['label1'], description='123', kill_chain_phases=kc_phases) malware.save() modified = malware.modified stix_id = malware.id updated = malware.update({'name': 'dsa'}) assert updated.name == 'dsa' assert updated.description == '123' assert updated.kill_chain_phases == kc_phases assert malware.modified > modified assert updated.id == stix_id
def test_malware_delete(): malware = Malware(name='asd', labels=['label1']).save() malware.update({'name': 'dsa'}) assert len(Malware.list()) == 1 malware.delete(all_versions=True) assert not Malware.list()
def test_all_versions(): """Tests that a updating malware results in two versions.""" malware = Malware(name='asd', labels=['label1']).save() malware.update({'name': 'dsa'}) assert len(malware.all_versions()) == 2