Fix bug with reference type enforcement on property
where_sighted_refs on Sighting.pull/1/head
parent
a751df32c6
commit
f5bbbe7a3b
|
@ -5,7 +5,7 @@ import pytz
|
||||||
|
|
||||||
import stix2
|
import stix2
|
||||||
|
|
||||||
from .constants import IDENTITY_ID, INDICATOR_ID, SIGHTING_ID, SIGHTING_KWARGS
|
from .constants import IDENTITY_ID, INDICATOR_ID, LOCATION_ID, SIGHTING_ID, SIGHTING_KWARGS
|
||||||
|
|
||||||
EXPECTED_SIGHTING = """{
|
EXPECTED_SIGHTING = """{
|
||||||
"type": "sighting",
|
"type": "sighting",
|
||||||
|
@ -15,7 +15,8 @@ EXPECTED_SIGHTING = """{
|
||||||
"modified": "2016-04-06T20:06:37.000Z",
|
"modified": "2016-04-06T20:06:37.000Z",
|
||||||
"sighting_of_ref": "indicator--a740531e-63ff-4e49-a9e1-a0a3eed0e3e7",
|
"sighting_of_ref": "indicator--a740531e-63ff-4e49-a9e1-a0a3eed0e3e7",
|
||||||
"where_sighted_refs": [
|
"where_sighted_refs": [
|
||||||
"identity--311b2d2d-f010-4473-83ec-1edf84858f4c"
|
"identity--311b2d2d-f010-4473-83ec-1edf84858f4c",
|
||||||
|
"location--a6e9345f-5a15-4c29-8bb3-7dcc5d168d64"
|
||||||
]
|
]
|
||||||
}"""
|
}"""
|
||||||
|
|
||||||
|
@ -41,7 +42,7 @@ def test_sighting_all_required_properties():
|
||||||
created=now,
|
created=now,
|
||||||
modified=now,
|
modified=now,
|
||||||
sighting_of_ref=INDICATOR_ID,
|
sighting_of_ref=INDICATOR_ID,
|
||||||
where_sighted_refs=[IDENTITY_ID],
|
where_sighted_refs=[IDENTITY_ID, LOCATION_ID],
|
||||||
)
|
)
|
||||||
assert str(s) == EXPECTED_SIGHTING
|
assert str(s) == EXPECTED_SIGHTING
|
||||||
|
|
||||||
|
@ -101,6 +102,7 @@ def test_create_sighting_from_objects_rather_than_ids(malware): # noqa: F811
|
||||||
"type": "sighting",
|
"type": "sighting",
|
||||||
"where_sighted_refs": [
|
"where_sighted_refs": [
|
||||||
IDENTITY_ID,
|
IDENTITY_ID,
|
||||||
|
LOCATION_ID
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -114,4 +116,4 @@ def test_parse_sighting(data):
|
||||||
assert sighting.created == dt.datetime(2016, 4, 6, 20, 6, 37, tzinfo=pytz.utc)
|
assert sighting.created == dt.datetime(2016, 4, 6, 20, 6, 37, tzinfo=pytz.utc)
|
||||||
assert sighting.modified == dt.datetime(2016, 4, 6, 20, 6, 37, tzinfo=pytz.utc)
|
assert sighting.modified == dt.datetime(2016, 4, 6, 20, 6, 37, tzinfo=pytz.utc)
|
||||||
assert sighting.sighting_of_ref == INDICATOR_ID
|
assert sighting.sighting_of_ref == INDICATOR_ID
|
||||||
assert sighting.where_sighted_refs == [IDENTITY_ID]
|
assert sighting.where_sighted_refs == [IDENTITY_ID, LOCATION_ID]
|
||||||
|
|
|
@ -86,7 +86,7 @@ class Sighting(_RelationshipObject):
|
||||||
('count', IntegerProperty(min=0, max=999999999)),
|
('count', IntegerProperty(min=0, max=999999999)),
|
||||||
('sighting_of_ref', ReferenceProperty(valid_types="SDO", spec_version='2.1', required=True)),
|
('sighting_of_ref', ReferenceProperty(valid_types="SDO", spec_version='2.1', required=True)),
|
||||||
('observed_data_refs', ListProperty(ReferenceProperty(valid_types='observed-data', spec_version='2.1'))),
|
('observed_data_refs', ListProperty(ReferenceProperty(valid_types='observed-data', spec_version='2.1'))),
|
||||||
('where_sighted_refs', ListProperty(ReferenceProperty(valid_types='identity', spec_version='2.1'))),
|
('where_sighted_refs', ListProperty(ReferenceProperty(valid_types=['identity', 'location'], spec_version='2.1'))),
|
||||||
('summary', BooleanProperty()),
|
('summary', BooleanProperty()),
|
||||||
('revoked', BooleanProperty(default=lambda: False)),
|
('revoked', BooleanProperty(default=lambda: False)),
|
||||||
('labels', ListProperty(StringProperty)),
|
('labels', ListProperty(StringProperty)),
|
||||||
|
|
Loading…
Reference in New Issue