Fix or ignore Flake8 warnings.

stix2.1
Greg Back 2017-03-22 08:05:59 -05:00
parent 26c65e3bd0
commit a0600b5ba4
11 changed files with 61 additions and 66 deletions

View File

@ -1,5 +1,7 @@
"""Python APIs for STIX 2."""
# flake8: noqa
from .bundle import Bundle
from .common import ExternalReference, KillChainPhase
from .sdo import AttackPattern, Campaign, CourseOfAction, Identity, Indicator, \

View File

@ -3,7 +3,6 @@
import collections
import datetime as dt
import json
import uuid
from .utils import format_datetime, get_timestamp, NOW

View File

@ -1,7 +1,5 @@
"""STIX 2 Common Data Types and Properties"""
import re
from .base import _STIXBase
from .properties import Property, BooleanProperty, ReferenceProperty
from .utils import NOW

View File

@ -1,8 +1,6 @@
import re
import uuid
from .utils import NOW
class Property(object):
"""Represent a property of STIX data type.

View File

@ -2,11 +2,10 @@ import datetime as dt
import uuid
import pytest
import pytz
import stix2
from .constants import FAKE_TIME, INDICATOR_ID, MALWARE_ID, RELATIONSHIP_ID
from .constants import FAKE_TIME
from .constants import INDICATOR_KWARGS, MALWARE_KWARGS, RELATIONSHIP_KWARGS

View File

@ -2,7 +2,7 @@ import pytest
import stix2
from .fixtures import clock, uuid4, indicator, malware, relationship
from .fixtures import clock, uuid4, indicator, malware, relationship # noqa: F401
EXPECTED_BUNDLE = """{
"id": "bundle--00000000-0000-0000-0000-000000000004",
@ -54,32 +54,32 @@ def test_empty_bundle():
def test_bundle_with_wrong_type():
with pytest.raises(ValueError) as excinfo:
bundle = stix2.Bundle(type="not-a-bundle")
stix2.Bundle(type="not-a-bundle")
assert str(excinfo.value) == "Invalid value for Bundle 'type': must equal 'bundle'."
def test_bundle_id_must_start_with_bundle():
with pytest.raises(ValueError) as excinfo:
bundle = stix2.Bundle(id='my-prefix--')
stix2.Bundle(id='my-prefix--')
assert str(excinfo.value) == "Invalid value for Bundle 'id': must start with 'bundle--'."
def test_bundle_with_wrong_spec_version():
with pytest.raises(ValueError) as excinfo:
bundle = stix2.Bundle(spec_version="1.2")
stix2.Bundle(spec_version="1.2")
assert str(excinfo.value) == "Invalid value for Bundle 'spec_version': must equal '2.0'."
def test_create_bundle(indicator, malware, relationship):
def test_create_bundle(indicator, malware, relationship): # noqa: F811
bundle = stix2.Bundle(objects=[indicator, malware, relationship])
assert str(bundle) == EXPECTED_BUNDLE
def test_create_bundle_with_positional_args(indicator, malware, relationship):
def test_create_bundle_with_positional_args(indicator, malware, relationship): # noqa: F811
bundle = stix2.Bundle(indicator, malware, relationship)
assert str(bundle) == EXPECTED_BUNDLE

View File

@ -108,5 +108,5 @@ def test_external_reference_offline():
def test_external_reference_source_required():
with pytest.raises(ValueError) as excinfo:
ref = stix2.ExternalReference()
stix2.ExternalReference()
assert str(excinfo.value) == "Missing required field(s) for ExternalReference: (source_name)."

View File

@ -2,14 +2,14 @@ import datetime as dt
import uuid
from .constants import FAKE_TIME
from .fixtures import clock, uuid4
from .fixtures import clock, uuid4 # noqa: F401
def test_clock(clock):
def test_clock(clock): # noqa: F811
assert dt.datetime.now() == FAKE_TIME
def test_my_uuid4_fixture(uuid4):
def test_my_uuid4_fixture(uuid4): # noqa: F811
assert uuid.uuid4() == "00000000-0000-0000-0000-000000000001"
assert uuid.uuid4() == "00000000-0000-0000-0000-000000000002"
assert uuid.uuid4() == "00000000-0000-0000-0000-000000000003"

View File

@ -6,7 +6,7 @@ import pytz
import stix2
from .constants import FAKE_TIME, INDICATOR_ID, INDICATOR_KWARGS
from .fixtures import clock, uuid4, indicator
from .fixtures import clock, uuid4, indicator # noqa: F401
EXPECTED_INDICATOR = """{
"created": "2017-01-01T00:00:01Z",
@ -35,7 +35,7 @@ def test_indicator_with_all_required_fields():
now = dt.datetime(2017, 1, 1, 0, 0, 1, tzinfo=pytz.utc)
epoch = dt.datetime(1970, 1, 1, 0, 0, 1, tzinfo=pytz.utc)
indicator = stix2.Indicator(
ind = stix2.Indicator(
type="indicator",
id=INDICATOR_ID,
labels=['malicious-activity'],
@ -45,11 +45,11 @@ def test_indicator_with_all_required_fields():
valid_from=epoch,
)
assert str(indicator) == EXPECTED_INDICATOR
assert repr(indicator) == EXPECTED_INDICATOR_REPR
assert str(ind) == EXPECTED_INDICATOR
assert repr(ind) == EXPECTED_INDICATOR_REPR
def test_indicator_autogenerated_fields(indicator):
def test_indicator_autogenerated_fields(indicator): # noqa: F811
assert indicator.type == 'indicator'
assert indicator.id == 'indicator--00000000-0000-0000-0000-000000000001'
assert indicator.created == FAKE_TIME
@ -69,43 +69,43 @@ def test_indicator_autogenerated_fields(indicator):
def test_indicator_type_must_be_indicator():
with pytest.raises(ValueError) as excinfo:
indicator = stix2.Indicator(type='xxx', **INDICATOR_KWARGS)
stix2.Indicator(type='xxx', **INDICATOR_KWARGS)
assert str(excinfo.value) == "Invalid value for Indicator 'type': must equal 'indicator'."
def test_indicator_id_must_start_with_indicator():
with pytest.raises(ValueError) as excinfo:
indicator = stix2.Indicator(id='my-prefix--', **INDICATOR_KWARGS)
stix2.Indicator(id='my-prefix--', **INDICATOR_KWARGS)
assert str(excinfo.value) == "Invalid value for Indicator 'id': must start with 'indicator--'."
def test_indicator_required_fields():
with pytest.raises(ValueError) as excinfo:
indicator = stix2.Indicator()
stix2.Indicator()
assert str(excinfo.value) == "Missing required field(s) for Indicator: (labels, pattern)."
def test_indicator_required_field_pattern():
with pytest.raises(ValueError) as excinfo:
indicator = stix2.Indicator(labels=['malicious-activity'])
stix2.Indicator(labels=['malicious-activity'])
assert str(excinfo.value) == "Missing required field(s) for Indicator: (pattern)."
def test_indicator_created_ref_invalid_format():
with pytest.raises(ValueError) as excinfo:
indicator = stix2.Indicator(created_by_ref='myprefix--12345678', **INDICATOR_KWARGS)
stix2.Indicator(created_by_ref='myprefix--12345678', **INDICATOR_KWARGS)
assert str(excinfo.value) == "Invalid value for Indicator 'created_by_ref': must match <object-type>--<guid>."
def test_indicator_revoked_invalid():
with pytest.raises(ValueError) as excinfo:
indicator = stix2.Indicator(revoked='false', **INDICATOR_KWARGS)
stix2.Indicator(revoked='false', **INDICATOR_KWARGS)
assert str(excinfo.value) == "Invalid value for Indicator 'revoked': must be a boolean value."
def test_cannot_assign_to_indicator_attributes(indicator):
def test_cannot_assign_to_indicator_attributes(indicator): # noqa: F811
with pytest.raises(ValueError) as excinfo:
indicator.valid_from = dt.datetime.now()
@ -114,12 +114,12 @@ def test_cannot_assign_to_indicator_attributes(indicator):
def test_invalid_kwarg_to_indicator():
with pytest.raises(TypeError) as excinfo:
indicator = stix2.Indicator(my_custom_property="foo", **INDICATOR_KWARGS)
stix2.Indicator(my_custom_property="foo", **INDICATOR_KWARGS)
assert str(excinfo.value) == "unexpected keyword arguments: ['my_custom_property']"
def test_created_modified_time_are_identical_by_default():
"""By default, the created and modified times should be the same."""
indicator = stix2.Indicator(**INDICATOR_KWARGS)
ind = stix2.Indicator(**INDICATOR_KWARGS)
assert indicator.created == indicator.modified
assert ind.created == ind.modified

View File

@ -6,7 +6,7 @@ import pytz
import stix2
from .constants import FAKE_TIME, MALWARE_ID, MALWARE_KWARGS
from .fixtures import clock, uuid4, malware
from .fixtures import clock, uuid4, malware # noqa: F401
EXPECTED_MALWARE = """{
"created": "2016-05-12T08:17:27Z",
@ -23,7 +23,7 @@ EXPECTED_MALWARE = """{
def test_malware_with_all_required_fields():
now = dt.datetime(2016, 5, 12, 8, 17, 27, tzinfo=pytz.utc)
malware = stix2.Malware(
mal = stix2.Malware(
type="malware",
id=MALWARE_ID,
created=now,
@ -32,10 +32,10 @@ def test_malware_with_all_required_fields():
name="Cryptolocker",
)
assert str(malware) == EXPECTED_MALWARE
assert str(mal) == EXPECTED_MALWARE
def test_malware_autogenerated_fields(malware):
def test_malware_autogenerated_fields(malware): # noqa: F811
assert malware.type == 'malware'
assert malware.id == 'malware--00000000-0000-0000-0000-000000000001'
assert malware.created == FAKE_TIME
@ -53,31 +53,31 @@ def test_malware_autogenerated_fields(malware):
def test_malware_type_must_be_malware():
with pytest.raises(ValueError) as excinfo:
malware = stix2.Malware(type='xxx', **MALWARE_KWARGS)
stix2.Malware(type='xxx', **MALWARE_KWARGS)
assert str(excinfo.value) == "Invalid value for Malware 'type': must equal 'malware'."
def test_malware_id_must_start_with_malware():
with pytest.raises(ValueError) as excinfo:
malware = stix2.Malware(id='my-prefix--', **MALWARE_KWARGS)
stix2.Malware(id='my-prefix--', **MALWARE_KWARGS)
assert str(excinfo.value) == "Invalid value for Malware 'id': must start with 'malware--'."
def test_malware_required_fields():
with pytest.raises(ValueError) as excinfo:
malware = stix2.Malware()
stix2.Malware()
assert str(excinfo.value) == "Missing required field(s) for Malware: (labels, name)."
def test_malware_required_field_name():
with pytest.raises(ValueError) as excinfo:
malware = stix2.Malware(labels=['ransomware'])
stix2.Malware(labels=['ransomware'])
assert str(excinfo.value) == "Missing required field(s) for Malware: (name)."
def test_cannot_assign_to_malware_attributes(malware):
def test_cannot_assign_to_malware_attributes(malware): # noqa: F811
with pytest.raises(ValueError) as excinfo:
malware.name = "Cryptolocker II"
@ -86,5 +86,5 @@ def test_cannot_assign_to_malware_attributes(malware):
def test_invalid_kwarg_to_malware():
with pytest.raises(TypeError) as excinfo:
malware = stix2.Malware(my_custom_property="foo", **MALWARE_KWARGS)
stix2.Malware(my_custom_property="foo", **MALWARE_KWARGS)
assert str(excinfo.value) == "unexpected keyword arguments: ['my_custom_property']"

View File

@ -7,7 +7,7 @@ import stix2
from .constants import FAKE_TIME, INDICATOR_ID, MALWARE_ID, RELATIONSHIP_ID
from .constants import RELATIONSHIP_KWARGS
from .fixtures import clock, uuid4, indicator, malware, relationship
from .fixtures import clock, uuid4, indicator, malware, relationship # noqa: F401
EXPECTED_RELATIONSHIP = """{
@ -24,7 +24,7 @@ EXPECTED_RELATIONSHIP = """{
def test_relationship_all_required_fields():
now = dt.datetime(2016, 4, 6, 20, 6, 37, tzinfo=pytz.utc)
relationship = stix2.Relationship(
rel = stix2.Relationship(
type='relationship',
id=RELATIONSHIP_ID,
created=now,
@ -33,10 +33,10 @@ def test_relationship_all_required_fields():
source_ref=INDICATOR_ID,
target_ref=MALWARE_ID,
)
assert str(relationship) == EXPECTED_RELATIONSHIP
assert str(rel) == EXPECTED_RELATIONSHIP
def test_relationship_autogenerated_fields(relationship):
def test_relationship_autogenerated_fields(relationship): # noqa: F811
assert relationship.type == 'relationship'
assert relationship.id == 'relationship--00000000-0000-0000-0000-000000000001'
assert relationship.created == FAKE_TIME
@ -56,41 +56,40 @@ def test_relationship_autogenerated_fields(relationship):
def test_relationship_type_must_be_relationship():
with pytest.raises(ValueError) as excinfo:
relationship = stix2.Relationship(type='xxx', **RELATIONSHIP_KWARGS)
stix2.Relationship(type='xxx', **RELATIONSHIP_KWARGS)
assert str(excinfo.value) == "Invalid value for Relationship 'type': must equal 'relationship'."
def test_relationship_id_must_start_with_relationship():
with pytest.raises(ValueError) as excinfo:
relationship = stix2.Relationship(id='my-prefix--', **RELATIONSHIP_KWARGS)
stix2.Relationship(id='my-prefix--', **RELATIONSHIP_KWARGS)
assert str(excinfo.value) == "Invalid value for Relationship 'id': must start with 'relationship--'."
def test_relationship_required_field_relationship_type():
with pytest.raises(ValueError) as excinfo:
relationship = stix2.Relationship()
stix2.Relationship()
assert str(excinfo.value) == "Missing required field(s) for Relationship: (relationship_type, source_ref, target_ref)."
def test_relationship_missing_some_required_fields():
with pytest.raises(ValueError) as excinfo:
# relationship_type is checked first, so make sure that is provided
relationship = stix2.Relationship(relationship_type='indicates')
stix2.Relationship(relationship_type='indicates')
assert str(excinfo.value) == "Missing required field(s) for Relationship: (source_ref, target_ref)."
def test_relationship_required_field_target_ref():
with pytest.raises(ValueError) as excinfo:
relationship = stix2.Relationship(
stix2.Relationship(
relationship_type='indicates',
source_ref=INDICATOR_ID
)
assert str(excinfo.value) == "Missing required field(s) for Relationship: (target_ref)."
def test_cannot_assign_to_relationship_attributes(relationship):
def test_cannot_assign_to_relationship_attributes(relationship): # noqa: F811
with pytest.raises(ValueError) as excinfo:
relationship.relationship_type = "derived-from"
@ -99,27 +98,27 @@ def test_cannot_assign_to_relationship_attributes(relationship):
def test_invalid_kwarg_to_relationship():
with pytest.raises(TypeError) as excinfo:
relationship = stix2.Relationship(my_custom_property="foo", **RELATIONSHIP_KWARGS)
stix2.Relationship(my_custom_property="foo", **RELATIONSHIP_KWARGS)
assert str(excinfo.value) == "unexpected keyword arguments: ['my_custom_property']" in str(excinfo)
def test_create_relationship_from_objects_rather_than_ids(indicator, malware):
relationship = stix2.Relationship(
def test_create_relationship_from_objects_rather_than_ids(indicator, malware): # noqa: F811
rel = stix2.Relationship(
relationship_type="indicates",
source_ref=indicator,
target_ref=malware,
)
assert relationship.relationship_type == 'indicates'
assert relationship.source_ref == 'indicator--00000000-0000-0000-0000-000000000001'
assert relationship.target_ref == 'malware--00000000-0000-0000-0000-000000000002'
assert relationship.id == 'relationship--00000000-0000-0000-0000-000000000003'
assert rel.relationship_type == 'indicates'
assert rel.source_ref == 'indicator--00000000-0000-0000-0000-000000000001'
assert rel.target_ref == 'malware--00000000-0000-0000-0000-000000000002'
assert rel.id == 'relationship--00000000-0000-0000-0000-000000000003'
def test_create_relationship_with_positional_args(indicator, malware):
relationship = stix2.Relationship(indicator, 'indicates', malware)
def test_create_relationship_with_positional_args(indicator, malware): # noqa: F811
rel = stix2.Relationship(indicator, 'indicates', malware)
assert relationship.relationship_type == 'indicates'
assert relationship.source_ref == 'indicator--00000000-0000-0000-0000-000000000001'
assert relationship.target_ref == 'malware--00000000-0000-0000-0000-000000000002'
assert relationship.id == 'relationship--00000000-0000-0000-0000-000000000003'
assert rel.relationship_type == 'indicates'
assert rel.source_ref == 'indicator--00000000-0000-0000-0000-000000000001'
assert rel.target_ref == 'malware--00000000-0000-0000-0000-000000000002'
assert rel.id == 'relationship--00000000-0000-0000-0000-000000000003'