def test_decode_should_raise_for_invalid_escape_sequences(): with pytest.raises(ValueError) as err: decode_value(b'Evil sequence \\m') assert 'Evil sequence' in str(err.value) assert 'contains invalid escape sequence' in str(err.value) assert '\\m' in str(err.value)
def test_decode_should_unescape_characters(value, expected): assert decode_value(value) == expected
def test_decode_should_raise_for_sequences_with_colon(): with pytest.raises(ValueError) as err: decode_value(b'abc:def') assert 'abc:def' in str(err.value) assert 'contains illegal character' in str(err.value)
def test_encoding_process_should_be_reversible(value): assert decode_value(encode_value(value)) == value
def test_decode_should_raise_for_unsupported_types(): with pytest.raises(ValueError) as err: decode_value(u'abc') assert 'Unable to decode non-binary value' in str(err.value) assert repr(u'abc') in str(err.value)
def test_decode_should_handle_bytes(value, expected): assert decode_value(value) == expected