mirror of https://github.com/MISP/PyMISP
Add tests
parent
cdcb1cca5e
commit
a4acc5d147
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from pymisp import PyMISP
|
||||||
|
from keys import misp_url, misp_key
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
|
||||||
|
# Usage for pipe masters: ./last.py -l 5h | jq .
|
||||||
|
|
||||||
|
|
||||||
|
def init(url, key):
|
||||||
|
return PyMISP(url, key, True, 'json', debug=True)
|
||||||
|
|
||||||
|
|
||||||
|
def del_event(m, eventid):
|
||||||
|
result = m.delete_event(eventid)
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
def del_attr(m, attrid):
|
||||||
|
result = m.delete_attribute(attrid)
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
parser = argparse.ArgumentParser(description='Delete an event from a MISP instance.')
|
||||||
|
parser.add_argument("-e", "--event", help="Event ID to delete.")
|
||||||
|
parser.add_argument("-a", "--attribute", help="Attribute ID to delete.")
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
misp = init(misp_url, misp_key)
|
||||||
|
|
||||||
|
if args.event:
|
||||||
|
del_event(misp, args.event)
|
||||||
|
else:
|
||||||
|
del_attr(misp, args.attribute)
|
||||||
|
|
@ -24,12 +24,11 @@ def init(url, key):
|
||||||
|
|
||||||
def get_event(m, event, out=None):
|
def get_event(m, event, out=None):
|
||||||
result = m.get_event(event)
|
result = m.get_event(event)
|
||||||
r = result.json()
|
|
||||||
if out is None:
|
if out is None:
|
||||||
print(json.dumps(r) + '\n')
|
print(json.dumps(result) + '\n')
|
||||||
else:
|
else:
|
||||||
with open(out, 'w') as f:
|
with open(out, 'w') as f:
|
||||||
f.write(json.dumps(r) + '\n')
|
f.write(json.dumps(result) + '\n')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,10 @@ from pymisp import PyMISP
|
||||||
class TestOffline(unittest.TestCase):
|
class TestOffline(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
self.maxDiff = None
|
||||||
self.domain = 'http://misp.local/'
|
self.domain = 'http://misp.local/'
|
||||||
self.key = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
self.key = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||||
self.event = json.load(open('tests/misp_event.json', 'r'))
|
self.event = {'Event': json.load(open('tests/misp_event.json', 'r'))}
|
||||||
self.types = json.load(open('tests/describeTypes.json', 'r'))
|
self.types = json.load(open('tests/describeTypes.json', 'r'))
|
||||||
|
|
||||||
def initURI(self, m):
|
def initURI(self, m):
|
||||||
|
|
@ -25,7 +26,7 @@ class TestOffline(unittest.TestCase):
|
||||||
m.register_uri('POST', self.domain + 'events/2', json=self.event)
|
m.register_uri('POST', self.domain + 'events/2', json=self.event)
|
||||||
m.register_uri('DELETE', self.domain + 'events/2', json={'message': 'Event deleted.'})
|
m.register_uri('DELETE', self.domain + 'events/2', json={'message': 'Event deleted.'})
|
||||||
m.register_uri('DELETE', self.domain + 'events/3', json={'errors': ['Invalid event'], 'message': 'Invalid event', 'name': 'Invalid event', 'url': '/events/3'})
|
m.register_uri('DELETE', self.domain + 'events/3', json={'errors': ['Invalid event'], 'message': 'Invalid event', 'name': 'Invalid event', 'url': '/events/3'})
|
||||||
m.register_uri('DELETE', self.domain + 'attribute/2', json={'message': 'Attribute deleted.'})
|
m.register_uri('DELETE', self.domain + 'attributes/2', json={'message': 'Attribute deleted.'})
|
||||||
|
|
||||||
def test_getEvent(self, m):
|
def test_getEvent(self, m):
|
||||||
self.initURI(m)
|
self.initURI(m)
|
||||||
|
|
@ -41,8 +42,7 @@ class TestOffline(unittest.TestCase):
|
||||||
e0 = pymisp.update_event(2, json.dumps(self.event))
|
e0 = pymisp.update_event(2, json.dumps(self.event))
|
||||||
e1 = pymisp.update_event(2, self.event)
|
e1 = pymisp.update_event(2, self.event)
|
||||||
self.assertEqual(e0, e1)
|
self.assertEqual(e0, e1)
|
||||||
e = {'Event': self.event}
|
e2 = pymisp.update(e0)
|
||||||
e2 = pymisp.update(e)
|
|
||||||
self.assertEqual(e1, e2)
|
self.assertEqual(e1, e2)
|
||||||
self.assertEqual(self.event, e2)
|
self.assertEqual(self.event, e2)
|
||||||
|
|
||||||
|
|
@ -59,4 +59,14 @@ class TestOffline(unittest.TestCase):
|
||||||
self.initURI(m)
|
self.initURI(m)
|
||||||
pymisp = PyMISP(self.domain, self.key, debug=True)
|
pymisp = PyMISP(self.domain, self.key, debug=True)
|
||||||
d = pymisp.delete_attribute(2)
|
d = pymisp.delete_attribute(2)
|
||||||
self.assertEqual(d, {'message': 'Event deleted.'})
|
self.assertEqual(d, {'message': 'Attribute deleted.'})
|
||||||
|
|
||||||
|
def test_publish(self, m):
|
||||||
|
self.initURI(m)
|
||||||
|
pymisp = PyMISP(self.domain, self.key, debug=True)
|
||||||
|
e = pymisp.publish(self.event)
|
||||||
|
pub = self.event
|
||||||
|
pub['Event']['published'] = True
|
||||||
|
self.assertEqual(e, pub)
|
||||||
|
e = pymisp.publish(self.event)
|
||||||
|
self.assertEqual(e, {'error': 'Already published'})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue