Beispiel #1
0
 def test_bytes(self):
     s = transaction.BCDataStream()
     s.write(b'foobar')
     self.assertEqual(s.read_bytes(3), b'foo')
     self.assertEqual(s.read_bytes(2), b'ba')
     self.assertEqual(s.read_bytes(4), b'r')
     self.assertEqual(s.read_bytes(1), b'')
Beispiel #2
0
 def test_bool(self):
     s = transaction.BCDataStream()
     s.write(b'f\x00\x00b')
     self.assertTrue(s.read_boolean())
     self.assertFalse(s.read_boolean())
     self.assertFalse(s.read_boolean())
     self.assertTrue(s.read_boolean())
     s.write_boolean(True)
     s.write_boolean(False)
     self.assertEqual(b'\x01\x00', s.read_bytes(2))
     self.assertFalse(s.can_read_more())
Beispiel #3
0
 def test_bytes(self):
     s = transaction.BCDataStream()
     with self.assertRaises(transaction.SerializationError):
         s.read_bytes(1)
     s.write(b'foobar')
     self.assertEqual(s.read_bytes(3), b'foo')
     self.assertEqual(s.read_bytes(2), b'ba')
     with self.assertRaises(transaction.SerializationError):
         s.read_bytes(4)
     self.assertEqual(s.read_bytes(0), b'')
     self.assertEqual(s.read_bytes(1), b'r')
     self.assertEqual(s.read_bytes(0), b'')
Beispiel #4
0
    def test_string(self):
        s = transaction.BCDataStream()
        with self.assertRaises(transaction.SerializationError):
            s.read_string()

        msgs = ['Hello', ' ', 'World', '', '!']
        for msg in msgs:
            s.write_string(msg)
        for msg in msgs:
            self.assertEqual(s.read_string(), msg)

        with self.assertRaises(transaction.SerializationError):
            s.read_string()
Beispiel #5
0
    def test_compact_size(self):
        s = transaction.BCDataStream()
        values = [
            0, 1, 252, 253, 2**16 - 1, 2**16, 2**32 - 1, 2**32, 2**64 - 1
        ]
        for v in values:
            s.write_compact_size(v)

        with self.assertRaises(transaction.SerializationError):
            s.write_compact_size(-1)

        self.assertEqual(
            bh2u(s.input),
            '0001fcfdfd00fdfffffe00000100feffffffffff0000000001000000ffffffffffffffffff'
        )
        for v in values:
            self.assertEqual(s.read_compact_size(), v)

        with self.assertRaises(transaction.SerializationError):
            s.read_compact_size()