Skip to content

Commit 4bb2ebc

Browse files
authored
Merge pull request #1447 from monjiapawne/get-event-no-sightings
Add no_sightings option to get_event
2 parents 6338dd6 + ae7c378 commit 4bb2ebc

2 files changed

Lines changed: 21 additions & 2 deletions

File tree

pymisp/api.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,7 @@ def events(self, pythonify: bool = False) -> dict[str, Any] | list[MISPEvent] |
414414
def get_event(self, event: MISPEvent | int | str | UUID,
415415
deleted: bool | int | list[int] = False,
416416
extended: bool | int = False,
417+
no_sightings: bool | int = False,
417418
pythonify: bool = False) -> dict[str, Any] | MISPEvent:
418419
"""Get an event from a MISP instance. Includes collections like
419420
Attribute, EventReport, Feed, Galaxy, Object, Tag, etc. so the
@@ -422,6 +423,7 @@ def get_event(self, event: MISPEvent | int | str | UUID,
422423
:param event: event to get
423424
:param deleted: whether to include soft-deleted attributes
424425
:param extended: whether to get extended events
426+
:param no_sightings: set to skip sightings on attributes (they're included by default)
425427
:param pythonify: Returns a list of PyMISP Objects instead of the plain json output. Warning: it might use a lot of RAM
426428
"""
427429
event_id = get_uuid_or_id_from_abstract_misp(event)
@@ -430,10 +432,13 @@ def get_event(self, event: MISPEvent | int | str | UUID,
430432
data['deleted'] = deleted
431433
if extended:
432434
data['extended'] = extended
435+
kw_params = {}
436+
if no_sightings:
437+
kw_params['noSightings'] = 1
433438
if data:
434-
r = self._prepare_request('POST', f'events/view/{event_id}', data=data)
439+
r = self._prepare_request('POST', f'events/view/{event_id}', data=data, kw_params=kw_params)
435440
else:
436-
r = self._prepare_request('GET', f'events/view/{event_id}')
441+
r = self._prepare_request('GET', f'events/view/{event_id}', kw_params=kw_params)
437442
event_r = self._check_json_response(r)
438443
if not (self.global_pythonify or pythonify) or 'errors' in event_r:
439444
return event_r

tests/testlive_comprehensive.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1082,6 +1082,20 @@ def test_extend_event(self) -> None:
10821082
self.admin_misp_connector.delete_event(first)
10831083
self.admin_misp_connector.delete_event(second)
10841084

1085+
def test_event_no_sightings(self) -> None:
1086+
first = self.create_simple_event()
1087+
try:
1088+
first = self.user_misp_connector.add_event(first)
1089+
self.user_misp_connector.add_sighting({'value': first.attributes[0].value})
1090+
1091+
with_s = self.user_misp_connector.get_event(first.id)
1092+
self.assertTrue(any(a.sightings for a in with_s.attributes))
1093+
1094+
without_s = self.user_misp_connector.get_event(first.id, no_sightings=True)
1095+
self.assertFalse(any(a.sightings for a in without_s.attributes))
1096+
finally:
1097+
self.admin_misp_connector.delete_event(first)
1098+
10851099
def test_edit_attribute(self) -> None:
10861100
first = self.create_simple_event()
10871101
try:

0 commit comments

Comments
 (0)