def test_compression_duplicate_code(send_event_command, expected_payload): payload = send_event_command.payload json_payload = JSONEncoder().encode(payload) compressed_string = gzip.compress(json_payload.encode()) b64_payload = b64encode(compressed_string) compressed_payload = b64_payload.decode() assert compressed_payload == expected_payload
def test_json_encoder_encodes_uuid(faker, uuid, expected): key = faker.pystr() input = {key: uuid} output = JSONEncoder().encode(input) expected_output = '{{"{key}": "{expected}"}}'.format(key=key, expected=expected) assert expected_output == output
def test_json_encoder_encodes_datetimes(faker, dt, expected): key = faker.pystr() input = {key: dt} output = JSONEncoder().encode(input) expected_output = '{{"{key}": "{expected}"}}'.format(key=key, expected=expected) assert expected_output == output
def expected_json(send_event_command): obj = { "event": send_event_command.event_name, "payload": send_event_command.payload, } # We know the encoder works, due to :tests.backend.test_encode:, so use it here for convenience. return JSONEncoder().encode(obj)
def expected_payload(send_event_command): obj = send_event_command.payload return SNSBackend.compress(JSONEncoder().encode(obj))
def test_type_error_on_unknown_types(): with pytest.raises(TypeError): JSONEncoder().encode(Sentinel())