(root)/
Python-3.12.0/
Lib/
test/
test_xdrlib.py
       1  import unittest
       2  from test.support import warnings_helper
       3  
       4  xdrlib = warnings_helper.import_deprecated("xdrlib")
       5  
       6  
       7  class ESC[4;38;5;81mXDRTest(ESC[4;38;5;149munittestESC[4;38;5;149m.ESC[4;38;5;149mTestCase):
       8  
       9      def test_xdr(self):
      10          p = xdrlib.Packer()
      11  
      12          s = b'hello world'
      13          a = [b'what', b'is', b'hapnin', b'doctor']
      14  
      15          p.pack_int(42)
      16          p.pack_int(-17)
      17          p.pack_uint(9)
      18          p.pack_bool(True)
      19          p.pack_bool(False)
      20          p.pack_uhyper(45)
      21          p.pack_float(1.9)
      22          p.pack_double(1.9)
      23          p.pack_string(s)
      24          p.pack_list(range(5), p.pack_uint)
      25          p.pack_array(a, p.pack_string)
      26  
      27          # now verify
      28          data = p.get_buffer()
      29          up = xdrlib.Unpacker(data)
      30  
      31          self.assertEqual(up.get_position(), 0)
      32  
      33          self.assertEqual(up.unpack_int(), 42)
      34          self.assertEqual(up.unpack_int(), -17)
      35          self.assertEqual(up.unpack_uint(), 9)
      36          self.assertTrue(up.unpack_bool() is True)
      37  
      38          # remember position
      39          pos = up.get_position()
      40          self.assertTrue(up.unpack_bool() is False)
      41  
      42          # rewind and unpack again
      43          up.set_position(pos)
      44          self.assertTrue(up.unpack_bool() is False)
      45  
      46          self.assertEqual(up.unpack_uhyper(), 45)
      47          self.assertAlmostEqual(up.unpack_float(), 1.9)
      48          self.assertAlmostEqual(up.unpack_double(), 1.9)
      49          self.assertEqual(up.unpack_string(), s)
      50          self.assertEqual(up.unpack_list(up.unpack_uint), list(range(5)))
      51          self.assertEqual(up.unpack_array(up.unpack_string), a)
      52          up.done()
      53          self.assertRaises(EOFError, up.unpack_uint)
      54  
      55  class ESC[4;38;5;81mConversionErrorTest(ESC[4;38;5;149munittestESC[4;38;5;149m.ESC[4;38;5;149mTestCase):
      56  
      57      def setUp(self):
      58          self.packer = xdrlib.Packer()
      59  
      60      def assertRaisesConversion(self, *args):
      61          self.assertRaises(xdrlib.ConversionError, *args)
      62  
      63      def test_pack_int(self):
      64          self.assertRaisesConversion(self.packer.pack_int, 'string')
      65  
      66      def test_pack_uint(self):
      67          self.assertRaisesConversion(self.packer.pack_uint, 'string')
      68  
      69      def test_float(self):
      70          self.assertRaisesConversion(self.packer.pack_float, 'string')
      71  
      72      def test_double(self):
      73          self.assertRaisesConversion(self.packer.pack_double, 'string')
      74  
      75      def test_uhyper(self):
      76          self.assertRaisesConversion(self.packer.pack_uhyper, 'string')
      77  
      78  if __name__ == "__main__":
      79      unittest.main()