mirror of https://github.com/MISP/PyMISP
chg: Do not load schema for event when not necessary
parent
9ea5ec8b1f
commit
7ccf4c15d2
|
@ -1396,11 +1396,8 @@ class MISPEvent(AbstractMISP):
|
||||||
|
|
||||||
def __init__(self, describe_types: Optional[Dict] = None, strict_validation: bool = False, **kwargs):
|
def __init__(self, describe_types: Optional[Dict] = None, strict_validation: bool = False, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
if strict_validation:
|
self.__schema_file = 'schema.json' if strict_validation else 'schema-lax.json'
|
||||||
schema_file = 'schema.json'
|
|
||||||
else:
|
|
||||||
schema_file = 'schema-lax.json'
|
|
||||||
self.__json_schema = self._load_json(self.resources_path / schema_file)
|
|
||||||
if describe_types:
|
if describe_types:
|
||||||
# This variable is used in add_attribute in order to avoid duplicating the structure
|
# This variable is used in add_attribute in order to avoid duplicating the structure
|
||||||
self.describe_types = describe_types
|
self.describe_types = describe_types
|
||||||
|
@ -1618,7 +1615,8 @@ class MISPEvent(AbstractMISP):
|
||||||
event.pop('Object', None)
|
event.pop('Object', None)
|
||||||
self.from_dict(**event)
|
self.from_dict(**event)
|
||||||
if validate:
|
if validate:
|
||||||
jsonschema.validate(json.loads(self.to_json()), self.__json_schema)
|
json_schema = self._load_json(self.resources_path / self.__schema_file)
|
||||||
|
jsonschema.validate({"Event": self.jsonable()}, json_schema)
|
||||||
|
|
||||||
def __setattr__(self, name, value):
|
def __setattr__(self, name, value):
|
||||||
if name in ['date']:
|
if name in ['date']:
|
||||||
|
|
|
@ -48,6 +48,14 @@ class TestMISPEvent(unittest.TestCase):
|
||||||
del self.mispevent.uuid
|
del self.mispevent.uuid
|
||||||
self.assertEqual(self.mispevent.to_json(sort_keys=True, indent=2), json.dumps(ref_json, sort_keys=True, indent=2))
|
self.assertEqual(self.mispevent.to_json(sort_keys=True, indent=2), json.dumps(ref_json, sort_keys=True, indent=2))
|
||||||
|
|
||||||
|
def test_loadfile_validate(self):
|
||||||
|
misp_event = MISPEvent()
|
||||||
|
misp_event.load_file('tests/mispevent_testfiles/event.json', validate=True)
|
||||||
|
|
||||||
|
def test_loadfile_validate_strict(self):
|
||||||
|
misp_event = MISPEvent(strict_validation=True)
|
||||||
|
misp_event.load_file('tests/mispevent_testfiles/event.json', validate=True)
|
||||||
|
|
||||||
def test_event_tag(self):
|
def test_event_tag(self):
|
||||||
self.init_event()
|
self.init_event()
|
||||||
self.mispevent.add_tag('bar')
|
self.mispevent.add_tag('bar')
|
||||||
|
|
Loading…
Reference in New Issue