parent
6f680be8a6
commit
0c47936ee0
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
from . import exceptions
|
from . import exceptions
|
||||||
from .bundle import Bundle
|
from .bundle import Bundle
|
||||||
|
from .environment import ObjectFactory
|
||||||
from .observables import (URL, AlternateDataStream, ArchiveExt, Artifact,
|
from .observables import (URL, AlternateDataStream, ArchiveExt, Artifact,
|
||||||
AutonomousSystem, Directory, DomainName,
|
AutonomousSystem, Directory, DomainName,
|
||||||
EmailAddress, EmailMessage, EmailMIMEComponent, File,
|
EmailAddress, EmailMessage, EmailMIMEComponent, File,
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
|
||||||
|
class ObjectFactory(object):
|
||||||
|
|
||||||
|
def __init__(self, created_by=None):
|
||||||
|
self.created_by = created_by
|
||||||
|
|
||||||
|
def create(self, cls=None, **kwargs):
|
||||||
|
if cls is None:
|
||||||
|
raise ValueError('No STIX object class provided')
|
||||||
|
|
||||||
|
if self.created_by is not None:
|
||||||
|
kwargs['created_by_ref'] = self.created_by
|
||||||
|
|
||||||
|
return cls(**kwargs)
|
|
@ -20,6 +20,12 @@ TOOL_ID = "tool--8e2e2d2b-17d4-4cbf-938f-98ee46b3cd3f"
|
||||||
SIGHTING_ID = "sighting--bfbc19db-ec35-4e45-beed-f8bde2a772fb"
|
SIGHTING_ID = "sighting--bfbc19db-ec35-4e45-beed-f8bde2a772fb"
|
||||||
VULNERABILITY_ID = "vulnerability--0c7b5b88-8ff7-4a4d-aa9d-feb398cd0061"
|
VULNERABILITY_ID = "vulnerability--0c7b5b88-8ff7-4a4d-aa9d-feb398cd0061"
|
||||||
|
|
||||||
|
# Minimum required args for an Identity instance
|
||||||
|
IDENTITY_KWARGS = dict(
|
||||||
|
name="John Smith",
|
||||||
|
identity_class="individual",
|
||||||
|
)
|
||||||
|
|
||||||
# Minimum required args for an Indicator instance
|
# Minimum required args for an Indicator instance
|
||||||
INDICATOR_KWARGS = dict(
|
INDICATOR_KWARGS = dict(
|
||||||
labels=['malicious-activity'],
|
labels=['malicious-activity'],
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
import stix2
|
||||||
|
|
||||||
|
from .constants import IDENTITY_ID, IDENTITY_KWARGS, INDICATOR_KWARGS
|
||||||
|
|
||||||
|
|
||||||
|
def test_object_factory_created_by_ref_str():
|
||||||
|
factory = stix2.ObjectFactory(created_by=IDENTITY_ID)
|
||||||
|
ind = factory.create(stix2.Indicator, **INDICATOR_KWARGS)
|
||||||
|
assert ind.created_by_ref == IDENTITY_ID
|
||||||
|
|
||||||
|
|
||||||
|
def test_object_factory_created_by_ref_obj():
|
||||||
|
id_obj = stix2.Identity(id=IDENTITY_ID, **IDENTITY_KWARGS)
|
||||||
|
factory = stix2.ObjectFactory(created_by=id_obj)
|
||||||
|
ind = factory.create(stix2.Indicator, **INDICATOR_KWARGS)
|
||||||
|
assert ind.created_by_ref == IDENTITY_ID
|
Loading…
Reference in New Issue