39 lines
		
	
	
		
			907 B
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			907 B
		
	
	
	
		
			Python
		
	
	
| import datetime as dt
 | |
| import json
 | |
| import uuid
 | |
| 
 | |
| import pytest
 | |
| import pytz
 | |
| 
 | |
| import stix2
 | |
| 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 " is not JSON serializable" in str(excinfo.value)
 | |
| 
 | |
| 
 | |
| def test_deterministic_id_unicode():
 | |
|     mutex = {'name': u'D*Fl#Ed*\u00a3\u00a8', 'type': 'mutex'}
 | |
|     obs = stix2.parse(mutex, version="2.1")
 | |
| 
 | |
|     dd_idx = obs.id.index("--")
 | |
|     id_uuid = uuid.UUID(obs.id[dd_idx+2:])
 | |
| 
 | |
|     assert id_uuid.variant == uuid.RFC_4122
 | |
|     assert id_uuid.version == 5
 |