diff options
Diffstat (limited to 'Lib/test/pickletester.py')
| -rw-r--r-- | Lib/test/pickletester.py | 31 | 
1 files changed, 31 insertions, 0 deletions
diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index f1a1384..249cc54 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -484,6 +484,27 @@ class AbstractPickleTests(unittest.TestCase):          self.assertEqual(x, y)      def test_short_tuples(self): +        # Map (proto, len(tuple)) to expected opcode. +        expected_opcode = {(0, 0): pickle.TUPLE, +                           (0, 1): pickle.TUPLE, +                           (0, 2): pickle.TUPLE, +                           (0, 3): pickle.TUPLE, +                           (0, 4): pickle.TUPLE, + +                           (1, 0): pickle.EMPTY_TUPLE, +                           (1, 1): pickle.TUPLE, +                           (1, 2): pickle.TUPLE, +                           (1, 3): pickle.TUPLE, +                           (1, 4): pickle.TUPLE, + +                           (2, 0): pickle.EMPTY_TUPLE, +                           (2, 1): pickle.TUPLE1, +                           (2, 2): pickle.TUPLE2, +                           (2, 3): pickle.TUPLE3, +                           (2, 4): pickle.TUPLE, +                          } +        all_tuple_opcodes = (pickle.TUPLE, pickle.EMPTY_TUPLE, +                             pickle.TUPLE1, pickle.TUPLE2, pickle.TUPLE3)          a = ()          b = (1,)          c = (1, 2) @@ -495,6 +516,16 @@ class AbstractPickleTests(unittest.TestCase):                  y = self.loads(s)                  self.assertEqual(x, y, (proto, x, s, y)) +                # Verify that the protocol-correct tuple-building opcode +                # was generated. +                expected = expected_opcode[proto, len(x)] +                for opcode in s: +                    if opcode in all_tuple_opcodes: +                        self.assertEqual(expected, opcode) +                        break +                else: +                    self.fail("didn't find a tuple-building opcode in pickle") +      def test_singletons(self):          for proto in protocols:              for x in None, False, True:  | 
