Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_parse_inf():
result = parse(b'I', '')[0]
assert result == float('inf')
def test_parse_unknown():
with raises(ValueError):
parse(b'H', struct.pack('>f', 1.5))
def test_parse_false():
result = parse(b'F', '')[0]
assert result == False
def test_parse_midi():
data = MidiTuple(0, 144, 72, 64)
result = parse(b'm', struct.pack('>I', format_midi(data)))[0]
assert result == data
def test_parse_string_encoded():
assert parse(
b's', struct.pack('%is' % padded(len('t')), u'é'.encode('utf8')),
encoding='utf8'
)[0] == u'é'
s = u'aééééààààa'
s_ = s.encode('utf8')
assert parse(
b's',
struct.pack('%is' % padded(len(s_) + 1), s_ + b'\0'),
encoding='utf8'
)[0] == s
with raises(UnicodeDecodeError):
parse(
b's',
struct.pack('%is' % padded(len(s_) + 1), s_ + b'\0'),
def test_parse_int():
assert parse(b'i', struct.pack('>i', 1))[0] == 1
s = u'aééééààààa'
s_ = s.encode('utf8')
assert parse(
b's',
struct.pack('%is' % padded(len(s_) + 1), s_ + b'\0'),
encoding='utf8'
)[0] == s
with raises(UnicodeDecodeError):
parse(
b's',
struct.pack('%is' % padded(len(s_) + 1), s_ + b'\0'),
encoding='ascii'
)[0] == s
assert parse(
b's',
struct.pack('%is' % padded(len(s_) + 1), s_ + b'\0'),
encoding='ascii',
encoding_errors='replace'
)[0] == u'a����������������a'
assert parse(
b's',
struct.pack('%is' % padded(len(s_) + 1), s_ + b'\0'),
encoding='ascii',
encoding_errors='ignore'
)[0] == 'aa'
def test_parse_blob():
length = 10
data = tuple(range(length))
pad = padded(length, 8)
fmt = '>i%iQ' % pad
s = struct.pack(fmt, length, *(data + (pad - length) * (0, )))
result = parse(b'b', s)[0]
assert result == data
def test_parse_true():
result = parse(b'T', '')[0]
assert result == True