Add external references to object factory

stix2.1
clenk 2017-07-12 16:11:51 -04:00
parent 593f16662a
commit 6ddad22810
2 changed files with 14 additions and 1 deletions

View File

@ -1,10 +1,12 @@
class ObjectFactory(object):
def __init__(self, created_by=None, object_markings=None, granular_markings=None):
def __init__(self, created_by=None, object_markings=None,
granular_markings=None, external_references=None):
self.created_by = created_by
self.object_markings = object_markings
self.granular_markings = granular_markings
self.external_references = external_references
def create(self, cls, **kwargs):
if self.created_by is not None:
@ -13,5 +15,7 @@ class ObjectFactory(object):
kwargs['object_marking_refs'] = self.object_markings
if self.granular_markings is not None:
kwargs['granular_markings'] = self.granular_markings
if self.external_references is not None:
kwargs['external_references'] = self.external_references
return cls(**kwargs)

View File

@ -37,3 +37,12 @@ def test_object_factory_granular_markings():
granular_markings=marking)
ind = factory.create(stix2.Indicator, **INDICATOR_KWARGS)
assert "created_by_ref" in ind.granular_markings[0].selectors
def test_object_factory_external_resource():
ext_ref = stix2.ExternalReference(source_name="ACME Threat Intel",
description="Threat report")
factory = stix2.ObjectFactory(external_references=ext_ref)
ind = factory.create(stix2.Indicator, **INDICATOR_KWARGS)
assert ind.external_references[0].source_name == "ACME Threat Intel"
assert ind.external_references[0].description == "Threat report"