Improve test coverage
parent
116c784d5c
commit
a2f5981dfb
|
@ -23,13 +23,7 @@ class STIXJSONEncoder(json.JSONEncoder):
|
|||
|
||||
|
||||
def get_required_properties(properties):
|
||||
for k, v in properties.items():
|
||||
if isinstance(v, dict):
|
||||
if v.get('required'):
|
||||
yield k
|
||||
else: # This is a Property subclass
|
||||
if v.required:
|
||||
yield k
|
||||
return (k for k, v in properties.items() if v.required)
|
||||
|
||||
|
||||
class _STIXBase(collections.Mapping):
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
import datetime as dt
|
||||
import json
|
||||
|
||||
import pytest
|
||||
import pytz
|
||||
|
||||
from stix2.base import STIXJSONEncoder
|
||||
|
||||
|
||||
def test_encode_json_datetime():
|
||||
now = dt.datetime(2017, 3, 22, 0, 0, 0, tzinfo=pytz.UTC)
|
||||
test_dict = {'now': now}
|
||||
|
||||
expected = '{"now": "2017-03-22T00:00:00Z"}'
|
||||
assert json.dumps(test_dict, cls=STIXJSONEncoder) == expected
|
||||
|
||||
|
||||
def test_encode_json_object():
|
||||
obj = object()
|
||||
test_dict = {'obj': obj}
|
||||
|
||||
with pytest.raises(TypeError) as excinfo:
|
||||
json.dumps(test_dict, cls=STIXJSONEncoder)
|
||||
|
||||
assert str(excinfo.value) == "Object of type 'object' is not JSON serializable"
|
Loading…
Reference in New Issue