X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/62f9f6c4f3408ba29d555a7ed27658bbeae270c0..b115b0c0883c2af8170b0e733bb1c47b40f2647e:/t/t-bytes.py diff --git a/t/t-bytes.py b/t/t-bytes.py index 6755e96..36a3f9f 100644 --- a/t/t-bytes.py +++ b/t/t-bytes.py @@ -48,6 +48,7 @@ class TestByteString (U.TestCase): x = C.ByteString(T.bin("once upon a time there was a string")) ## Check that simple indexing works. + me.assertEqual(type(x[3]), C.ByteString) me.assertEqual(x[3], 'e') me.assertEqual(x[-5], 't') @@ -55,7 +56,8 @@ class TestByteString (U.TestCase): x[34]; me.assertRaises(IndexError, lambda: x[35]) x[-35]; me.assertRaises(IndexError, lambda: x[-36]) - ## Check slicing. + ## Check slicing. This should always give us bytes. + me.assertEqual(type(x[7:17]), C.ByteString) me.assertEqual(x[7:17], T.bin("on a time ")) ## Complex slicing is also supported. @@ -143,13 +145,18 @@ class TestByteString (U.TestCase): me.assertEqual(~x, C.bytes("fc5a03")) ## Concatenation. + me.assertEqual(type(x + y), C.ByteString) me.assertEqual(x + y, C.bytes("03a5fc5fac30")) ## Replication (asymmetric but commutative). + me.assertEqual(type(3*x), C.ByteString) + me.assertEqual(type(x*3), C.ByteString) me.assertEqual(3*x, C.bytes("03a5fc03a5fc03a5fc")) me.assertEqual(x*3, C.bytes("03a5fc03a5fc03a5fc")) ## Replication by zero (regression test). + me.assertEqual(type(0*x), C.ByteString) + me.assertEqual(type(x*0), C.ByteString) me.assertEqual(0*x, C.ByteString(T.bin(""))) me.assertEqual(x*0, C.ByteString(T.bin("")))