| 
									
										
										
										
											1999-03-25 22:38:49 +00:00
										 |  |  | import cPickle | 
					
						
							| 
									
										
										
										
											2001-10-15 21:38:56 +00:00
										 |  |  | from cStringIO import StringIO | 
					
						
							|  |  |  | from pickletester import AbstractPickleTests, AbstractPickleModuleTests | 
					
						
							|  |  |  | from test_support import run_unittest | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class cPickleTests(AbstractPickleTests, AbstractPickleModuleTests): | 
					
						
							| 
									
										
										
										
											2001-10-18 21:57:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-10-15 21:38:56 +00:00
										 |  |  |     def setUp(self): | 
					
						
							|  |  |  |         self.dumps = cPickle.dumps | 
					
						
							|  |  |  |         self.loads = cPickle.loads | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     error = cPickle.BadPickleGet | 
					
						
							|  |  |  |     module = cPickle | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class cPicklePicklerTests(AbstractPickleTests): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def dumps(self, arg, bin=0): | 
					
						
							|  |  |  |         f = StringIO() | 
					
						
							|  |  |  |         p = cPickle.Pickler(f, bin) | 
					
						
							|  |  |  |         p.dump(arg) | 
					
						
							|  |  |  |         f.seek(0) | 
					
						
							|  |  |  |         return f.read() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def loads(self, buf): | 
					
						
							|  |  |  |         f = StringIO(buf) | 
					
						
							|  |  |  |         p = cPickle.Unpickler(f) | 
					
						
							|  |  |  |         return p.load() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     error = cPickle.BadPickleGet | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class cPickleListPicklerTests(AbstractPickleTests): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def dumps(self, arg, bin=0): | 
					
						
							|  |  |  |         p = cPickle.Pickler(bin) | 
					
						
							|  |  |  |         p.dump(arg) | 
					
						
							|  |  |  |         return p.getvalue() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def loads(self, *args): | 
					
						
							|  |  |  |         f = StringIO(args[0]) | 
					
						
							|  |  |  |         p = cPickle.Unpickler(f) | 
					
						
							|  |  |  |         return p.load() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     error = cPickle.BadPickleGet | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class cPickleFastPicklerTests(AbstractPickleTests): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def dumps(self, arg, bin=0): | 
					
						
							|  |  |  |         f = StringIO() | 
					
						
							|  |  |  |         p = cPickle.Pickler(f, bin) | 
					
						
							|  |  |  |         p.fast = 1 | 
					
						
							|  |  |  |         p.dump(arg) | 
					
						
							|  |  |  |         f.seek(0) | 
					
						
							|  |  |  |         return f.read() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def loads(self, *args): | 
					
						
							|  |  |  |         f = StringIO(args[0]) | 
					
						
							|  |  |  |         p = cPickle.Unpickler(f) | 
					
						
							|  |  |  |         return p.load() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     error = cPickle.BadPickleGet | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_recursive_list(self): | 
					
						
							|  |  |  |         self.assertRaises(ValueError, | 
					
						
							|  |  |  |                           AbstractPickleTests.test_recursive_list, | 
					
						
							|  |  |  |                           self) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_recursive_inst(self): | 
					
						
							|  |  |  |         self.assertRaises(ValueError, | 
					
						
							|  |  |  |                           AbstractPickleTests.test_recursive_inst, | 
					
						
							|  |  |  |                           self) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_recursive_dict(self): | 
					
						
							|  |  |  |         self.assertRaises(ValueError, | 
					
						
							|  |  |  |                           AbstractPickleTests.test_recursive_dict, | 
					
						
							|  |  |  |                           self) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_recursive_multi(self): | 
					
						
							|  |  |  |         self.assertRaises(ValueError, | 
					
						
							|  |  |  |                           AbstractPickleTests.test_recursive_multi, | 
					
						
							|  |  |  |                           self) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == "__main__": | 
					
						
							|  |  |  |     run_unittest(cPickleTests) | 
					
						
							|  |  |  |     run_unittest(cPicklePicklerTests) | 
					
						
							|  |  |  |     run_unittest(cPickleListPicklerTests) | 
					
						
							|  |  |  |     run_unittest(cPickleFastPicklerTests) |