Merge pull request #258 from khdesai/stix2_issue_248

Fixes #248
master
Chris Lenk 2019-04-24 13:42:14 -04:00 committed by GitHub
commit 7ee7fb8336
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 6 deletions

View File

@ -143,12 +143,12 @@ class _STIXBase(collections.Mapping):
if custom_props: if custom_props:
self.__allow_custom = True self.__allow_custom = True
# Remove any keyword arguments whose value is None # Remove any keyword arguments whose value is None or [] (i.e. empty list)
setting_kwargs = {} setting_kwargs = {}
props = kwargs.copy() props = kwargs.copy()
props.update(custom_props) props.update(custom_props)
for prop_name, prop_value in props.items(): for prop_name, prop_value in props.items():
if prop_value is not None: if prop_value is not None and prop_value != []:
setting_kwargs[prop_name] = prop_value setting_kwargs[prop_name] = prop_value
# Detect any missing required properties # Detect any missing required properties

View File

@ -35,6 +35,22 @@ def test_malware_with_all_required_properties():
assert str(mal) == EXPECTED_MALWARE assert str(mal) == EXPECTED_MALWARE
def test_malware_with_empty_optional_field():
now = dt.datetime(2016, 5, 12, 8, 17, 27, tzinfo=pytz.utc)
mal = stix2.v20.Malware(
type="malware",
id=MALWARE_ID,
created=now,
modified=now,
labels=["ransomware"],
name="Cryptolocker",
external_references=[],
)
assert str(mal) == EXPECTED_MALWARE
def test_malware_autogenerated_properties(malware): def test_malware_autogenerated_properties(malware):
assert malware.type == 'malware' assert malware.type == 'malware'
assert malware.id == 'malware--00000000-0000-4000-8000-000000000001' assert malware.id == 'malware--00000000-0000-4000-8000-000000000001'

View File

@ -107,7 +107,6 @@ def test_add_markings_combination():
"data", [ "data", [
([""]), ([""]),
(""), (""),
([]),
([MARKING_IDS[0], 456]), ([MARKING_IDS[0], 456]),
], ],
) )
@ -576,7 +575,6 @@ def test_set_marking():
@pytest.mark.parametrize( @pytest.mark.parametrize(
"data", [ "data", [
([]),
([""]), ([""]),
(""), (""),
([MARKING_IDS[4], 687]), ([MARKING_IDS[4], 687]),

View File

@ -106,7 +106,6 @@ def test_add_markings_combination():
"data", [ "data", [
([""]), ([""]),
(""), (""),
([]),
([MARKING_IDS[0], 456]), ([MARKING_IDS[0], 456]),
], ],
) )
@ -575,7 +574,6 @@ def test_set_marking():
@pytest.mark.parametrize( @pytest.mark.parametrize(
"data", [ "data", [
([]),
([""]), ([""]),
(""), (""),
([MARKING_IDS[4], 687]), ([MARKING_IDS[4], 687]),