| 
									
										
											  
											
												Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60734 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r60731 | raymond.hettinger | 2008-02-11 19:51:08 +0100 (Mon, 11 Feb 2008) | 1 line
  No need to register classes that already inherit from ABCs.
........
  r60733 | lars.gustaebel | 2008-02-11 20:17:10 +0100 (Mon, 11 Feb 2008) | 2 lines
  Make sure that xstar headers are read correctly.
........
  r60734 | raymond.hettinger | 2008-02-11 21:05:53 +0100 (Mon, 11 Feb 2008) | 1 line
  Add tests for pickletools.optimize().
........
											
										 
											2008-02-11 22:57:17 +00:00
										 |  |  | import pickle | 
					
						
							| 
									
										
										
										
											2003-01-27 18:51:48 +00:00
										 |  |  | import pickletools | 
					
						
							| 
									
										
										
										
											2008-05-20 21:35:26 +00:00
										 |  |  | from test import support | 
					
						
							| 
									
										
											  
											
												Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60734 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r60731 | raymond.hettinger | 2008-02-11 19:51:08 +0100 (Mon, 11 Feb 2008) | 1 line
  No need to register classes that already inherit from ABCs.
........
  r60733 | lars.gustaebel | 2008-02-11 20:17:10 +0100 (Mon, 11 Feb 2008) | 2 lines
  Make sure that xstar headers are read correctly.
........
  r60734 | raymond.hettinger | 2008-02-11 21:05:53 +0100 (Mon, 11 Feb 2008) | 1 line
  Add tests for pickletools.optimize().
........
											
										 
											2008-02-11 22:57:17 +00:00
										 |  |  | from test.pickletester import AbstractPickleTests | 
					
						
							|  |  |  | from test.pickletester import AbstractPickleModuleTests | 
					
						
							| 
									
										
										
										
											2015-11-14 12:46:42 +00:00
										 |  |  | import unittest | 
					
						
							| 
									
										
											  
											
												Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60734 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r60731 | raymond.hettinger | 2008-02-11 19:51:08 +0100 (Mon, 11 Feb 2008) | 1 line
  No need to register classes that already inherit from ABCs.
........
  r60733 | lars.gustaebel | 2008-02-11 20:17:10 +0100 (Mon, 11 Feb 2008) | 2 lines
  Make sure that xstar headers are read correctly.
........
  r60734 | raymond.hettinger | 2008-02-11 21:05:53 +0100 (Mon, 11 Feb 2008) | 1 line
  Add tests for pickletools.optimize().
........
											
										 
											2008-02-11 22:57:17 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class OptimizedPickleTests(AbstractPickleTests, AbstractPickleModuleTests): | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-03-17 22:56:06 +00:00
										 |  |  |     def dumps(self, arg, proto=None): | 
					
						
							| 
									
										
											  
											
												Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60734 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r60731 | raymond.hettinger | 2008-02-11 19:51:08 +0100 (Mon, 11 Feb 2008) | 1 line
  No need to register classes that already inherit from ABCs.
........
  r60733 | lars.gustaebel | 2008-02-11 20:17:10 +0100 (Mon, 11 Feb 2008) | 2 lines
  Make sure that xstar headers are read correctly.
........
  r60734 | raymond.hettinger | 2008-02-11 21:05:53 +0100 (Mon, 11 Feb 2008) | 1 line
  Add tests for pickletools.optimize().
........
											
										 
											2008-02-11 22:57:17 +00:00
										 |  |  |         return pickletools.optimize(pickle.dumps(arg, proto)) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-24 19:40:09 +00:00
										 |  |  |     def loads(self, buf, **kwds): | 
					
						
							|  |  |  |         return pickle.loads(buf, **kwds) | 
					
						
							| 
									
										
											  
											
												Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60734 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r60731 | raymond.hettinger | 2008-02-11 19:51:08 +0100 (Mon, 11 Feb 2008) | 1 line
  No need to register classes that already inherit from ABCs.
........
  r60733 | lars.gustaebel | 2008-02-11 20:17:10 +0100 (Mon, 11 Feb 2008) | 2 lines
  Make sure that xstar headers are read correctly.
........
  r60734 | raymond.hettinger | 2008-02-11 21:05:53 +0100 (Mon, 11 Feb 2008) | 1 line
  Add tests for pickletools.optimize().
........
											
										 
											2008-02-11 22:57:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-04 20:32:06 +00:00
										 |  |  |     # Test relies on precise output of dumps() | 
					
						
							|  |  |  |     test_pickle_to_2x = None | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-16 18:00:56 +02:00
										 |  |  |     def test_optimize_long_binget(self): | 
					
						
							|  |  |  |         data = [str(i) for i in range(257)] | 
					
						
							|  |  |  |         data.append(data[-1]) | 
					
						
							|  |  |  |         for proto in range(pickle.HIGHEST_PROTOCOL + 1): | 
					
						
							|  |  |  |             pickled = pickle.dumps(data, proto) | 
					
						
							|  |  |  |             unpickled = pickle.loads(pickled) | 
					
						
							|  |  |  |             self.assertEqual(unpickled, data) | 
					
						
							|  |  |  |             self.assertIs(unpickled[-1], unpickled[-2]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             pickled2 = pickletools.optimize(pickled) | 
					
						
							|  |  |  |             unpickled2 = pickle.loads(pickled2) | 
					
						
							|  |  |  |             self.assertEqual(unpickled2, data) | 
					
						
							|  |  |  |             self.assertIs(unpickled2[-1], unpickled2[-2]) | 
					
						
							|  |  |  |             self.assertNotIn(pickle.LONG_BINGET, pickled2) | 
					
						
							|  |  |  |             self.assertNotIn(pickle.LONG_BINPUT, pickled2) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_optimize_binput_and_memoize(self): | 
					
						
							|  |  |  |         pickled = (b'\x80\x04\x95\x15\x00\x00\x00\x00\x00\x00\x00' | 
					
						
							|  |  |  |                    b']\x94(\x8c\x04spamq\x01\x8c\x03ham\x94h\x02e.') | 
					
						
							|  |  |  |         #    0: \x80 PROTO      4 | 
					
						
							|  |  |  |         #    2: \x95 FRAME      21 | 
					
						
							|  |  |  |         #   11: ]    EMPTY_LIST | 
					
						
							|  |  |  |         #   12: \x94 MEMOIZE | 
					
						
							|  |  |  |         #   13: (    MARK | 
					
						
							|  |  |  |         #   14: \x8c     SHORT_BINUNICODE 'spam' | 
					
						
							|  |  |  |         #   20: q        BINPUT     1 | 
					
						
							|  |  |  |         #   22: \x8c     SHORT_BINUNICODE 'ham' | 
					
						
							|  |  |  |         #   27: \x94     MEMOIZE | 
					
						
							|  |  |  |         #   28: h        BINGET     2 | 
					
						
							|  |  |  |         #   30: e        APPENDS    (MARK at 13) | 
					
						
							|  |  |  |         #   31: .    STOP | 
					
						
							|  |  |  |         self.assertIn(pickle.BINPUT, pickled) | 
					
						
							|  |  |  |         unpickled = pickle.loads(pickled) | 
					
						
							|  |  |  |         self.assertEqual(unpickled, ['spam', 'ham', 'ham']) | 
					
						
							|  |  |  |         self.assertIs(unpickled[1], unpickled[2]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         pickled2 = pickletools.optimize(pickled) | 
					
						
							|  |  |  |         unpickled2 = pickle.loads(pickled2) | 
					
						
							|  |  |  |         self.assertEqual(unpickled2, ['spam', 'ham', 'ham']) | 
					
						
							|  |  |  |         self.assertIs(unpickled2[1], unpickled2[2]) | 
					
						
							|  |  |  |         self.assertNotIn(pickle.BINPUT, pickled2) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60734 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r60731 | raymond.hettinger | 2008-02-11 19:51:08 +0100 (Mon, 11 Feb 2008) | 1 line
  No need to register classes that already inherit from ABCs.
........
  r60733 | lars.gustaebel | 2008-02-11 20:17:10 +0100 (Mon, 11 Feb 2008) | 2 lines
  Make sure that xstar headers are read correctly.
........
  r60734 | raymond.hettinger | 2008-02-11 21:05:53 +0100 (Mon, 11 Feb 2008) | 1 line
  Add tests for pickletools.optimize().
........
											
										 
											2008-02-11 22:57:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-14 12:46:42 +00:00
										 |  |  | class MiscTestCase(unittest.TestCase): | 
					
						
							|  |  |  |     def test__all__(self): | 
					
						
							|  |  |  |         blacklist = {'bytes_types', | 
					
						
							|  |  |  |                      'UP_TO_NEWLINE', 'TAKEN_FROM_ARGUMENT1', | 
					
						
							|  |  |  |                      'TAKEN_FROM_ARGUMENT4', 'TAKEN_FROM_ARGUMENT4U', | 
					
						
							|  |  |  |                      'TAKEN_FROM_ARGUMENT8U', 'ArgumentDescriptor', | 
					
						
							|  |  |  |                      'read_uint1', 'read_uint2', 'read_int4', 'read_uint4', | 
					
						
							|  |  |  |                      'read_uint8', 'read_stringnl', 'read_stringnl_noescape', | 
					
						
							|  |  |  |                      'read_stringnl_noescape_pair', 'read_string1', | 
					
						
							|  |  |  |                      'read_string4', 'read_bytes1', 'read_bytes4', | 
					
						
							|  |  |  |                      'read_bytes8', 'read_unicodestringnl', | 
					
						
							|  |  |  |                      'read_unicodestring1', 'read_unicodestring4', | 
					
						
							|  |  |  |                      'read_unicodestring8', 'read_decimalnl_short', | 
					
						
							|  |  |  |                      'read_decimalnl_long', 'read_floatnl', 'read_float8', | 
					
						
							|  |  |  |                      'read_long1', 'read_long4', | 
					
						
							|  |  |  |                      'uint1', 'uint2', 'int4', 'uint4', 'uint8', 'stringnl', | 
					
						
							|  |  |  |                      'stringnl_noescape', 'stringnl_noescape_pair', 'string1', | 
					
						
							|  |  |  |                      'string4', 'bytes1', 'bytes4', 'bytes8', | 
					
						
							|  |  |  |                      'unicodestringnl', 'unicodestring1', 'unicodestring4', | 
					
						
							|  |  |  |                      'unicodestring8', 'decimalnl_short', 'decimalnl_long', | 
					
						
							|  |  |  |                      'floatnl', 'float8', 'long1', 'long4', | 
					
						
							|  |  |  |                      'StackObject', | 
					
						
							|  |  |  |                      'pyint', 'pylong', 'pyinteger_or_bool', 'pybool', 'pyfloat', | 
					
						
							|  |  |  |                      'pybytes_or_str', 'pystring', 'pybytes', 'pyunicode', | 
					
						
							|  |  |  |                      'pynone', 'pytuple', 'pylist', 'pydict', 'pyset', | 
					
						
							|  |  |  |                      'pyfrozenset', 'anyobject', 'markobject', 'stackslice', | 
					
						
							|  |  |  |                      'OpcodeInfo', 'opcodes', 'code2op', | 
					
						
							|  |  |  |                      } | 
					
						
							|  |  |  |         support.check__all__(self, pickletools, blacklist=blacklist) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60734 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r60731 | raymond.hettinger | 2008-02-11 19:51:08 +0100 (Mon, 11 Feb 2008) | 1 line
  No need to register classes that already inherit from ABCs.
........
  r60733 | lars.gustaebel | 2008-02-11 20:17:10 +0100 (Mon, 11 Feb 2008) | 2 lines
  Make sure that xstar headers are read correctly.
........
  r60734 | raymond.hettinger | 2008-02-11 21:05:53 +0100 (Mon, 11 Feb 2008) | 1 line
  Add tests for pickletools.optimize().
........
											
										 
											2008-02-11 22:57:17 +00:00
										 |  |  | def test_main(): | 
					
						
							| 
									
										
										
										
											2008-05-20 21:35:26 +00:00
										 |  |  |     support.run_unittest(OptimizedPickleTests) | 
					
						
							| 
									
										
										
										
											2015-11-14 12:46:42 +00:00
										 |  |  |     support.run_unittest(MiscTestCase) | 
					
						
							| 
									
										
										
										
											2008-05-20 21:35:26 +00:00
										 |  |  |     support.run_doctest(pickletools) | 
					
						
							| 
									
										
											  
											
												Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60734 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r60731 | raymond.hettinger | 2008-02-11 19:51:08 +0100 (Mon, 11 Feb 2008) | 1 line
  No need to register classes that already inherit from ABCs.
........
  r60733 | lars.gustaebel | 2008-02-11 20:17:10 +0100 (Mon, 11 Feb 2008) | 2 lines
  Make sure that xstar headers are read correctly.
........
  r60734 | raymond.hettinger | 2008-02-11 21:05:53 +0100 (Mon, 11 Feb 2008) | 1 line
  Add tests for pickletools.optimize().
........
											
										 
											2008-02-11 22:57:17 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == "__main__": | 
					
						
							|  |  |  |     test_main() |