Thomas Wouters | 89f507f | 2006-12-13 04:49:30 +0000 | [diff] [blame] | 1 | from test import test_support |
| 2 | import unittest |
| 3 | |
Martin v. Löwis | c2a0ac2 | 2005-02-24 20:22:10 +0000 | [diff] [blame] | 4 | import xdrlib |
| 5 | |
Thomas Wouters | 89f507f | 2006-12-13 04:49:30 +0000 | [diff] [blame] | 6 | class XDRTest(unittest.TestCase): |
| 7 | |
| 8 | def test_xdr(self): |
| 9 | p = xdrlib.Packer() |
| 10 | |
| 11 | s = 'hello world' |
| 12 | a = ['what', 'is', 'hapnin', 'doctor'] |
| 13 | |
| 14 | p.pack_int(42) |
| 15 | p.pack_uint(9) |
| 16 | p.pack_bool(True) |
| 17 | p.pack_bool(False) |
Guido van Rossum | e2a383d | 2007-01-15 16:59:06 +0000 | [diff] [blame] | 18 | p.pack_uhyper(45) |
Thomas Wouters | 89f507f | 2006-12-13 04:49:30 +0000 | [diff] [blame] | 19 | p.pack_float(1.9) |
| 20 | p.pack_double(1.9) |
| 21 | p.pack_string(s) |
| 22 | p.pack_list(range(5), p.pack_uint) |
| 23 | p.pack_array(a, p.pack_string) |
| 24 | |
| 25 | # now verify |
| 26 | data = p.get_buffer() |
| 27 | up = xdrlib.Unpacker(data) |
| 28 | |
| 29 | self.assertEqual(up.get_position(), 0) |
| 30 | |
| 31 | self.assertEqual(up.unpack_int(), 42) |
| 32 | self.assertEqual(up.unpack_uint(), 9) |
| 33 | self.assert_(up.unpack_bool() is True) |
| 34 | |
| 35 | # remember position |
| 36 | pos = up.get_position() |
| 37 | self.assert_(up.unpack_bool() is False) |
| 38 | |
| 39 | # rewind and unpack again |
| 40 | up.set_position(pos) |
| 41 | self.assert_(up.unpack_bool() is False) |
| 42 | |
Guido van Rossum | e2a383d | 2007-01-15 16:59:06 +0000 | [diff] [blame] | 43 | self.assertEqual(up.unpack_uhyper(), 45) |
Thomas Wouters | 89f507f | 2006-12-13 04:49:30 +0000 | [diff] [blame] | 44 | self.assertAlmostEqual(up.unpack_float(), 1.9) |
| 45 | self.assertAlmostEqual(up.unpack_double(), 1.9) |
| 46 | self.assertEqual(up.unpack_string(), s) |
| 47 | self.assertEqual(up.unpack_list(up.unpack_uint), range(5)) |
| 48 | self.assertEqual(up.unpack_array(up.unpack_string), a) |
| 49 | up.done() |
| 50 | self.assertRaises(EOFError, up.unpack_uint) |
| 51 | |
| 52 | def test_main(): |
| 53 | test_support.run_unittest(XDRTest) |
| 54 | |
| 55 | if __name__ == "__main__": |
| 56 | test_main() |