コード例 #1
0
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
コード例 #2
0
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
コード例 #3
0
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
コード例 #4
0
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()
コード例 #5
0
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