Skip to content

Commit

Permalink
Merge pull request #605 from mfang90739/fix_issue_586
Browse files Browse the repository at this point in the history
Fix constraint violation checking for GranularMarking in v21.
  • Loading branch information
rpiazza authored Sep 25, 2024
2 parents fa8c95b + a2beb46 commit b2bbaee
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
12 changes: 12 additions & 0 deletions stix2/test/v21/test_markings.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,18 @@ def test_granular_example_with_bad_selector():
assert str(excinfo.value) == "Invalid value for GranularMarking 'selectors': must adhere to selector syntax."


def test_granular_marking_mutual_exclusion_error():
with pytest.raises(stix2.exceptions.MutuallyExclusivePropertiesError) as excinfo:
stix2.v21.GranularMarking(
lang="en",
marking_ref=stix2.TLP_GREEN,
selectors=["foo"],
)
assert excinfo.value.cls == stix2.v21.GranularMarking
assert excinfo.value.properties == ["lang", "marking_ref"]
assert 'are mutually exclusive' in str(excinfo.value)


def test_campaign_with_granular_markings_example():
campaign = stix2.v21.Campaign(
id="campaign--8e2e2d2b-17d4-4cbf-938f-98ee46b3cd3f",
Expand Down
1 change: 1 addition & 0 deletions stix2/v21/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ class GranularMarking(_STIXBase21):
def _check_object_constraints(self):
super(GranularMarking, self)._check_object_constraints()
self._check_at_least_one_property(['lang', 'marking_ref'])
self._check_mutually_exclusive_properties(['lang', 'marking_ref'])


class LanguageContent(_STIXBase21):
Expand Down

0 comments on commit b2bbaee

Please sign in to comment.