summaryrefslogtreecommitdiff
path: root/tests/common/packed.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/common/packed.py')
-rw-r--r--tests/common/packed.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/common/packed.py b/tests/common/packed.py
new file mode 100644
index 0000000..25918d2
--- /dev/null
+++ b/tests/common/packed.py
@@ -0,0 +1,59 @@
+
+# Tests pour valider les tampons de données
+
+
+from chrysacase import ChrysalideTestCase
+from pychrysalide.common import PackedBuffer
+
+
+class TestPackedBuffers(ChrysalideTestCase):
+ """TestCase for common.PackedBuffer*"""
+
+ def testPackedBufferConstructor(self):
+ """Validate new packed buffers."""
+
+ pbuf = PackedBuffer()
+ self.assertIsNotNone(pbuf)
+
+
+ def testPackedBufferData(self):
+ """Play with packed buffer data."""
+
+ pbuf = PackedBuffer()
+
+ data = b'0123456789'
+
+ pbuf.extend(data, False)
+ pbuf.extend(data)
+
+ self.assertEqual(pbuf.payload_length, 2 * len(data))
+
+ self.assertFalse(pbuf.more_data)
+
+ pbuf.rewind()
+
+ self.assertTrue(pbuf.more_data)
+
+ got = pbuf.peek(1)
+ self.assertEqual(got, b'0')
+
+ got = pbuf.peek(2)
+ self.assertEqual(got, b'01')
+
+ pbuf.advance(3)
+
+ got = pbuf.peek(2)
+ self.assertEqual(got, b'34')
+
+ pbuf.advance(8)
+
+ got = pbuf.peek(2)
+ self.assertEqual(got, b'12')
+
+ pbuf.rewind()
+
+ got = pbuf.extract(4)
+ self.assertEqual(got, b'0123')
+
+ got = pbuf.extract(8, True)
+ self.assertEqual(got, b'10987654')