diff options
author | Alexander Belopolsky <alexander.belopolsky@gmail.com> | 2010-06-11 16:04:59 (GMT) |
---|---|---|
committer | Alexander Belopolsky <alexander.belopolsky@gmail.com> | 2010-06-11 16:04:59 (GMT) |
commit | 177e8530cbf5ece4264d48da3c11a7e1fc45dcb4 (patch) | |
tree | 3c0fa69fff00f24eb799f7cfad03669e73d7bf7f /Lib | |
parent | 9b88b916a903d97e3125b4436ac5c14620a78238 (diff) | |
download | cpython-177e8530cbf5ece4264d48da3c11a7e1fc45dcb4.zip cpython-177e8530cbf5ece4264d48da3c11a7e1fc45dcb4.tar.gz cpython-177e8530cbf5ece4264d48da3c11a7e1fc45dcb4.tar.bz2 |
Issue #3129: Trailing digits in format string are no longer ignored.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_struct.py | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/Lib/test/test_struct.py b/Lib/test/test_struct.py index 0c8cd2c..b9faa28 100644 --- a/Lib/test/test_struct.py +++ b/Lib/test/test_struct.py @@ -443,7 +443,7 @@ class StructTest(unittest.TestCase): # Test bogus offset (issue 3694) sb = small_buf - self.assertRaises(TypeError, struct.pack_into, b'1', sb, None) + self.assertRaises(TypeError, struct.pack_into, b'', sb, None) def test_pack_into_fn(self): test_string = b'Reykjavik rocks, eow!' @@ -510,6 +510,32 @@ class StructTest(unittest.TestCase): def test_crasher(self): self.assertRaises(MemoryError, struct.pack, "357913941b", "a") + def test_trailing_counter(self): + store = array.array('b', b' '*100) + + # format lists containing only count spec should result in an error + self.assertRaises(struct.error, struct.pack, '12345') + self.assertRaises(struct.error, struct.unpack, '12345', '') + self.assertRaises(struct.error, struct.pack_into, '12345', store, 0) + self.assertRaises(struct.error, struct.unpack_from, '12345', store, 0) + + # Format lists with trailing count spec should result in an error + self.assertRaises(struct.error, struct.pack, 'c12345', 'x') + self.assertRaises(struct.error, struct.unpack, 'c12345', 'x') + self.assertRaises(struct.error, struct.pack_into, 'c12345', store, 0, + 'x') + self.assertRaises(struct.error, struct.unpack_from, 'c12345', store, + 0) + + # Mixed format tests + self.assertRaises(struct.error, struct.pack, '14s42', 'spam and eggs') + self.assertRaises(struct.error, struct.unpack, '14s42', + 'spam and eggs') + self.assertRaises(struct.error, struct.pack_into, '14s42', store, 0, + 'spam and eggs') + self.assertRaises(struct.error, struct.unpack_from, '14s42', store, 0) + + def test_main(): run_unittest(StructTest) |