Add tests for _id_contributing_properties for custom observables
parent
41e541959d
commit
055ad97a7a
|
@ -1,3 +1,5 @@
|
||||||
|
import uuid
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
import stix2
|
import stix2
|
||||||
|
@ -665,6 +667,76 @@ def test_observed_data_with_custom_observable_object():
|
||||||
assert ob_data.objects['0'].property1 == 'something'
|
assert ob_data.objects['0'].property1 == 'something'
|
||||||
|
|
||||||
|
|
||||||
|
def test_custom_observable_object_det_id_1():
|
||||||
|
@stix2.v21.CustomObservable(
|
||||||
|
'x-det-id-observable-1', [
|
||||||
|
('property1', stix2.properties.StringProperty(required=True)),
|
||||||
|
('property2', stix2.properties.IntegerProperty()),
|
||||||
|
], [
|
||||||
|
'property1',
|
||||||
|
],
|
||||||
|
)
|
||||||
|
class DetIdObs1():
|
||||||
|
pass
|
||||||
|
|
||||||
|
dio_1 = DetIdObs1(property1='I am property1!', property2=42)
|
||||||
|
dio_2 = DetIdObs1(property1='I am property1!', property2=24)
|
||||||
|
assert dio_1.property1 == dio_2.property1 == 'I am property1!'
|
||||||
|
assert dio_1.id == dio_2.id
|
||||||
|
|
||||||
|
uuid_obj = uuid.UUID(dio_1.id[-36:])
|
||||||
|
assert uuid_obj.variant == uuid.RFC_4122
|
||||||
|
assert uuid_obj.version == 5
|
||||||
|
|
||||||
|
dio_3 = DetIdObs1(property1='I am property1!', property2=42)
|
||||||
|
dio_4 = DetIdObs1(property1='I am also property1!', property2=24)
|
||||||
|
assert dio_3.property1 == 'I am property1!'
|
||||||
|
assert dio_4.property1 == 'I am also property1!'
|
||||||
|
assert dio_3.id != dio_4.id
|
||||||
|
|
||||||
|
|
||||||
|
def test_custom_observable_object_det_id_2():
|
||||||
|
@stix2.v21.CustomObservable(
|
||||||
|
'x-det-id-observable-2', [
|
||||||
|
('property1', stix2.properties.StringProperty(required=True)),
|
||||||
|
('property2', stix2.properties.IntegerProperty()),
|
||||||
|
], [
|
||||||
|
'property1', 'property2',
|
||||||
|
],
|
||||||
|
)
|
||||||
|
class DetIdObs2():
|
||||||
|
pass
|
||||||
|
|
||||||
|
dio_1 = DetIdObs2(property1='I am property1!', property2=42)
|
||||||
|
dio_2 = DetIdObs2(property1='I am property1!', property2=42)
|
||||||
|
assert dio_1.property1 == dio_2.property1 == 'I am property1!'
|
||||||
|
assert dio_1.property2 == dio_2.property2 == 42
|
||||||
|
assert dio_1.id == dio_2.id
|
||||||
|
|
||||||
|
dio_3 = DetIdObs2(property1='I am property1!', property2=42)
|
||||||
|
dio_4 = DetIdObs2(property1='I am also property1!', property2=42)
|
||||||
|
assert dio_3.property1 == 'I am property1!'
|
||||||
|
assert dio_4.property1 == 'I am also property1!'
|
||||||
|
assert dio_3.property2 == dio_4.property2 == 42
|
||||||
|
assert dio_3.id != dio_4.id
|
||||||
|
|
||||||
|
|
||||||
|
def test_custom_observable_object_no_id_contrib_props():
|
||||||
|
@stix2.v21.CustomObservable(
|
||||||
|
'x-det-id-observable-3', [
|
||||||
|
('property1', stix2.properties.StringProperty(required=True)),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
class DetIdObs3():
|
||||||
|
pass
|
||||||
|
|
||||||
|
dio = DetIdObs3(property1="I am property1!")
|
||||||
|
|
||||||
|
uuid_obj = uuid.UUID(dio.id[-36:])
|
||||||
|
assert uuid_obj.variant == uuid.RFC_4122
|
||||||
|
assert uuid_obj.version == 4
|
||||||
|
|
||||||
|
|
||||||
@stix2.v21.CustomExtension(
|
@stix2.v21.CustomExtension(
|
||||||
stix2.v21.DomainName, 'x-new-ext', [
|
stix2.v21.DomainName, 'x-new-ext', [
|
||||||
('property1', stix2.properties.StringProperty(required=True)),
|
('property1', stix2.properties.StringProperty(required=True)),
|
||||||
|
|
Loading…
Reference in New Issue