3 from cStringIO import StringIO
6 def encode_and_decode_vuint(x):
9 return vint.read_vuint(StringIO(f.getvalue()))
14 for x in (0, 1, 42, 128, 10**16):
15 WVPASSEQ(encode_and_decode_vuint(x), x)
16 WVEXCEPT(Exception, vint.write_vuint, StringIO(), -1)
17 WVEXCEPT(EOFError, vint.read_vuint, StringIO())
20 def encode_and_decode_vint(x):
23 return vint.read_vint(StringIO(f.getvalue()))
28 values = (0, 1, 42, 64, 10**16)
30 WVPASSEQ(encode_and_decode_vint(x), x)
31 for x in [-x for x in values]:
32 WVPASSEQ(encode_and_decode_vint(x), x)
33 WVEXCEPT(EOFError, vint.read_vint, StringIO())
36 def encode_and_decode_bvec(x):
39 return vint.read_bvec(StringIO(f.getvalue()))
44 values = ('', 'x', 'foo', '\0', '\0foo', 'foo\0bar\0')
46 WVPASSEQ(encode_and_decode_bvec(x), x)
47 WVEXCEPT(EOFError, vint.read_bvec, StringIO())
49 for x in ('foo', 'bar', 'baz', 'bax'):
50 vint.write_bvec(outf, x)
51 inf = StringIO(outf.getvalue())
52 WVPASSEQ(vint.read_bvec(inf), 'foo')
53 WVPASSEQ(vint.read_bvec(inf), 'bar')
55 WVPASSEQ(vint.read_bvec(inf), 'bax')
58 def pack_and_unpack(types, *values):
59 data = vint.pack(types, *values)
60 return vint.unpack(types, data)
64 def test_pack_and_unpack():
67 ('ss', ['foo', 'bar']),
79 (types, values) = test
80 WVPASSEQ(pack_and_unpack(types, *values), values)
81 WVEXCEPT(Exception, vint.pack, 's')
82 WVEXCEPT(Exception, vint.pack, 's', 'foo', 'bar')
83 WVEXCEPT(Exception, vint.pack, 'x', 1)
84 WVEXCEPT(Exception, vint.unpack, 's', '')
85 WVEXCEPT(Exception, vint.unpack, 'x', '')