From 619538ced782cbdcc4a4d47097ef128b9bb5e003 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Vinot?= Date: Mon, 16 Jan 2017 14:47:43 -0500 Subject: [PATCH] Fix travis --- pymisp/api.py | 41 +++++++++++++++++++++++------------------ tests/test_offline.py | 12 ++++++------ 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/pymisp/api.py b/pymisp/api.py index 4324158a1..e85e9de89 100644 --- a/pymisp/api.py +++ b/pymisp/api.py @@ -46,6 +46,7 @@ class distributions(object): all_communities = 3 sharing_group = 4 + class threat_level(object): """Enumeration of the available threat levels.""" high = 1 @@ -320,6 +321,14 @@ def _one_or_more(self, value): # ########## Helpers ########## + def _make_mispevent(self, event): + if not isinstance(event, MISPEvent): + e = MISPEvent(self.describe_types) + e.load(event) + else: + e = event + return e + def get(self, eid): return self.get_event(eid) @@ -327,33 +336,30 @@ def get_stix(self, **kwargs): return self.get_stix_event(**kwargs) def update(self, event): - if event['Event'].get('uuid'): - eid = event['Event']['uuid'] + e = self._make_mispevent(event) + if e.uuid: + eid = e.uuid else: - eid = event['Event']['id'] - return self.update_event(eid, event) + eid = e.id + return self.update_event(eid, json.dumps(e, cls=EncodeUpdate)) def publish(self, event): - if event['Event']['published']: + e = self._make_mispevent(event) + if e.published: return {'error': 'Already published'} - e = MISPEvent(self.describe_types) - e.load(event) e.publish() - return self.update_event(event['Event']['id'], json.dumps(e, cls=EncodeUpdate)) + return self.update(event) def change_threat_level(self, event, threat_level_id): - e = MISPEvent(self.describe_types) - e.load(event) + e = self._make_mispevent(event) e.threat_level_id = threat_level_id - return self.update_event(event['Event']['id'], json.dumps(e, cls=EncodeUpdate)) + return self.update(event) def change_sharing_group(self, event, sharing_group_id): - e = MISPEvent(self.describe_types) - e.load(event) + e = self._make_mispevent(event) e.distribution = 4 # Needs to be 'Sharing group' e.sharing_group_id = sharing_group_id - return self.update_event(event['Event']['id'], json.dumps(e, cls=EncodeUpdate)) - + return self.update(event) def new_event(self, distribution=None, threat_level_id=None, analysis=None, info=None, date=None, published=False, orgc_id=None, org_id=None, sharing_group_id=None): misp_event = self._prepare_full_event(distribution, threat_level_id, analysis, info, date, published, orgc_id, org_id, sharing_group_id) @@ -391,7 +397,7 @@ def _send_attributes(self, event, attributes, proposal=False): e = MISPEvent(self.describe_types) e.load(event) e.attributes += attributes - response = self.update_event(event['Event']['id'], json.dumps(e, cls=EncodeUpdate)) + response = self.update(event) return response def add_named_attribute(self, event, type_value, value, category=None, to_ids=False, comment=None, distribution=None, proposal=False, **kwargs): @@ -1054,11 +1060,10 @@ def sighting_per_json(self, json_file): def get_sharing_groups(self): session = self.__prepare_session() - url = urljoin(self.root_url, 'sharing_groups') + url = urljoin(self.root_url, 'sharing_groups.json') response = session.get(url) return self._check_response(response)['response'] - # ############## Users ################## def _set_user_parameters(self, email, org_id, role_id, password, external_auth_required, diff --git a/tests/test_offline.py b/tests/test_offline.py index f4ffd250c..298485ce6 100644 --- a/tests/test_offline.py +++ b/tests/test_offline.py @@ -38,11 +38,11 @@ def setUp(self): def initURI(self, m): m.register_uri('GET', self.domain + 'events/1', json=self.auth_error_msg, status_code=403) - m.register_uri('GET', self.domain + 'servers/getVersion.json', json={"version": "2.4.50"}) - m.register_uri('GET', self.domain + 'sharing_groups/index.json', json=self.sharing_groups) + m.register_uri('GET', self.domain + 'servers/getVersion.json', json={"version": "2.4.56"}) + m.register_uri('GET', self.domain + 'sharing_groups.json', json=self.sharing_groups) m.register_uri('GET', self.domain + 'attributes/describeTypes.json', json=self.types) m.register_uri('GET', self.domain + 'events/2', json=self.event) - m.register_uri('POST', self.domain + 'events/2', json=self.event) + m.register_uri('POST', self.domain + 'events/5758ebf5-c898-48e6-9fe9-5665c0a83866', json=self.event) 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 + 'attributes/2', json={'message': 'Attribute deleted.'}) @@ -60,8 +60,8 @@ def test_getEvent(self, m): def test_updateEvent(self, m): self.initURI(m) pymisp = PyMISP(self.domain, self.key) - e0 = pymisp.update_event(2, json.dumps(self.event)) - e1 = pymisp.update_event(2, self.event) + e0 = pymisp.update_event('5758ebf5-c898-48e6-9fe9-5665c0a83866', json.dumps(self.event)) + e1 = pymisp.update_event('5758ebf5-c898-48e6-9fe9-5665c0a83866', self.event) self.assertEqual(e0, e1) e2 = pymisp.update(e0) self.assertEqual(e1, e2) @@ -97,7 +97,7 @@ def test_getVersions(self, m): api_version = pymisp.get_api_version() self.assertEqual(api_version, {'version': pm.__version__}) server_version = pymisp.get_version() - self.assertEqual(server_version, {"version": "2.4.50"}) + self.assertEqual(server_version, {"version": "2.4.56"}) def test_getSharingGroups(self, m): self.initURI(m)