summaryrefslogtreecommitdiffstats
path: root/Lib/test/pickletester.py
Commit message (Collapse)AuthorAgeFilesLines
* Patch #995766: Keyword argument support in cPickle.Martin v. Löwis2004-07-271-0/+10
|
* Deleting cyclic object comparison.Armin Rigo2003-10-281-15/+10
| | | | | SF patch 825639 http://mail.python.org/pipermail/python-dev/2003-October/039445.html
* MyComplex now works.Guido van Rossum2003-03-021-1/+1
|
* test_load_from_canned_string(): Created a DATA2 string to test a cannedTim Peters2003-03-021-2/+66
| | | | proto 2 pickle too.
* Three test cases for __reduce_ex__. This fails for cPickle, until TimGuido van Rossum2003-02-181-0/+52
| | | | checks in his changes to support this in cPickle.c.
* cPickle.c, load_build(): Taught cPickle how to pick apartTim Peters2003-02-151-6/+1
| | | | | | | | | | | | | | | | | | the optional proto 2 slot state. pickle.py, load_build(): CAUTION: Noted that cPickle's load_build and pickle's load_build really don't do the same things with the state, and didn't before this patch either. cPickle never tries to do .update(), and has no backoff if instance.__dict__ can't be retrieved. There are no tests that can tell the difference, and part of what cPickle's load_build() did looked accidental to me, so I don't know what the true intent is here. pickletester.py, test_pickle.py: Got rid of the hack for exempting cPickle from running some of the proto 2 tests. dictobject.c, PyDict_Next(): documented intended use.
* cPickle produces NEWOBJ appropriately now. It still doesn't knowTim Peters2003-02-141-6/+6
| | | | how to unpickle the new slot-full state tuples.
* We didn't have any tests making pickles with one of {pickle, cPickle},Tim Peters2003-02-131-0/+5
| | | | | | | and loading them via the other, except for the special cases of this Guido added to test_datetime.py for datetime module objects. The new test_xpickle.py tries all of pickletester's AbstractPickleTests in both x-module ways.
* Added a simple NEWOBJ test. This is in the pickle-only part of theTim Peters2003-02-131-0/+15
| | | | test for now (cPickle can't yet produce NEWOBJ).
* Added a HIGHEST_PROTOCOL module attribute to pickle and cPickle.Tim Peters2003-02-131-2/+4
|
* Implemented batching for dicts in cPickle. This is after two failedTim Peters2003-02-111-17/+17
| | | | | attempts to merge the C list-batch and dict-batch code -- they worked, but it was a godawful mess to read.
* Implemented list batching in cPickle.Tim Peters2003-02-111-17/+17
|
* Added tests to ensure that list and dict "chunking" are actuallyTim Peters2003-02-111-1/+51
| | | | | | getting done. Since this isn't yet implemented in cPickle, the new tests are in TempAbstractPickleTests (which cPickle doesn't run).
* cPickle: exempt two_tuple from GC -- it's a speed hack, and doesn'tTim Peters2003-02-041-11/+53
| | | | | | | | | | | | guarantee to keep valid pointers in its slots. tests: Moved ExtensionSaver from test_copy_reg into pickletester, and use it both places. Once extension codes get assigned, it won't be safe to overwrite them willy nilly in test suites, and ExtensionSaver does a thorough job of undoing any possible damage. Beefed up the EXT[124] tests a bit, to check the smallest and largest codes in each opcode's range too.
* cPickle now generates proto 2 EXT[124] when appropriate.Tim Peters2003-02-041-18/+18
| | | | | Moved such EXT tests as currently exist from TempAbstractPickleTests to AbstractPickleTests, so that test_cpickle runs them too.
* test_newobj_tuple(), test_newobj_list(): These tests should work underTim Peters2003-02-031-8/+10
| | | | all protocols, so tried them under all.
* test_newobj_generic(): Use the global protocols vector instead of aTim Peters2003-02-031-1/+1
| | | | hardcoded list.
* Added a bit to the EXT[124] tests, and refactored them to squash codeTim Peters2003-02-031-51/+27
| | | | duplication. Note that these still don't get run under cPickle.
* Do a better job of testing that opcodes aren't generated under protocolsTim Peters2003-02-031-18/+32
| | | | earlier than the ones in which they were introduced.
* Proper testing of proto 2 in part requires checking that the new opcodesTim Peters2003-02-031-11/+10
| | | | | | are actually getting generated. Add helpered method ensure_opcode_in_pickle to do a correct job checking for that. Changed test_long1(), test_long4(), and test_short_tuples() to use it.
* cPickle support for TUPLE[123]. Incidentally plugged several undetectedTim Peters2003-02-021-0/+31
| | | | overflow holes in Pdata_grow().
* Implemented proto 2 NEWTRUE and NEWFALSE in cPickle.Tim Peters2003-02-021-0/+6
|
* Beefed up the tests by putting in more "for proto in protocols:" outerTim Peters2003-02-021-86/+231
| | | | | | | loops. Renamed DATA and BINDATA to DATA0 and DATA1. Included disassemblies, but noted why we can't test them. Added XXX comment to cPickle about a mysterious comment, where pickle and cPickle diverge in how they number PUT indices.
* Add cPickle support for PROTO. Duplicated PROTO/LONG1/LONG4 code inTim Peters2003-02-021-2/+23
| | | | | the hitherto unknown (to me) noload() cPickle function, which is (a) something we don't test at all, and (b) pickle.py doesn't have.
* long(string, base) now takes time linear in len(string) when base is aTim Peters2003-02-021-10/+1
| | | | | power of 2. Enabled the tail end of test_long() in pickletester.py because it no longer takes forever when run from test_pickle.py.
* cPickle.c: Full support for the new LONG1 and LONG4. Added comments.Tim Peters2003-02-021-11/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assorted code cleanups; e.g., sizeof(char) is 1 by definition, so there's no need to do things like multiply by sizeof(char) in hairy malloc arguments. Fixed an undetected-overflow bug in readline_file(). longobject.c: Fixed a really stupid bug in the new _PyLong_NumBits. pickle.py: Fixed stupid bug in save_long(): When proto is 2, it wrote LONG1 or LONG4, but forgot to return then -- it went on to append the proto 1 LONG opcode too. Fixed equally stupid cancelling bugs in load_long1() and load_long4(): they *returned* the unpickled long instead of pushing it on the stack. The return values were ignored. Tests passed before only because save_long() pickled the long twice. Fixed bugs in encode_long(). Noted that decode_long() is quadratic-time despite our hopes, because long(string, 16) is still quadratic-time in len(string). It's hex() that's linear-time. I don't know a way to make decode_long() linear-time in Python, short of maybe transforming the 256's-complement bytes into marshal's funky internal format, and letting marshal decode that. It would be more valuable to make long(string, 16) linear time. pickletester.py: Added a global "protocols" vector so tests can try all the protocols in a sane way. Changed test_ints() and test_unicode() to do so. Added a new test_long(), but the tail end of it is disabled because it "takes forever" under pickle.py (but runs very quickly under cPickle: cPickle proto 2 for longs is linear-time).
* Removed all uses of the out-of-favor __safe_for_unpickling__ magicTim Peters2003-02-011-2/+0
| | | | attr, and copy_reg.safe_constructors.
* Implement appropriate __getnewargs__ for all immutable subclassable builtinGuido van Rossum2003-01-291-2/+44
| | | | | | | | types. The special handling for these can now be removed from save_newobj(). Add some testing for this. Also add support for setting the 'fast' flag on the Python Pickler class, which suppresses use of the memo.
* Test all three EXT opcodes, and move these tests intoGuido van Rossum2003-01-291-0/+61
| | | | TempAbstractPickleTests, because they don't work with cPickle yet.
* Temporary hacks to arrange that the pickle tests relying on protocol 2Tim Peters2003-01-281-0/+6
| | | | | | only get run by test_pickle.py now (& not by test_cpickle.py). This should be undone when protocol 2 is implemented in cPickle too. test_cpickle should pass again.
* Add a test for a list subclass with a __dict__ as well as slots.Guido van Rossum2003-01-281-0/+17
|
* The default __reduce__ on the base object type obscured anyGuido van Rossum2003-01-281-23/+14
| | | | | | possibility of calling save_reduce(). Add a special hack for this. The tests for this are much simpler now (no __getstate__ or __getnewargs__ needed).
* Some experimental support for generating NEWOBJ with proto=2, andGuido van Rossum2003-01-281-0/+39
| | | | fixed a bug in load_newobj().
* OK, this is really the last one tonight!Guido van Rossum2003-01-281-0/+7
| | | | NEWFALSE and NEWTRUE.
* Shouldn't test short tuples with all items equal -- one potential bugGuido van Rossum2003-01-281-4/+4
| | | | | | | would be that the tuple is reversed on unpickling, and we should catch that. :-) Goodnight -- that's it for toniht!
* More protocol 2: TUPLE1, TUPLE2, TUPLE3.Guido van Rossum2003-01-281-0/+12
| | | | Also moved the special case for empty tuples from save() to save_tuple().
* First baby steps towards implementing protocol 2: PROTO, LONG1 and LONG4.Guido van Rossum2003-01-281-0/+14
|
* Add some simple tests of the persistence hooks.Jeremy Hylton2002-11-131-0/+35
|
* Check for trailing backslash. Fixes #593656.Martin v. Löwis2002-08-141-0/+1
|
* Patch #505705: Remove eval in pickle and cPickle.Martin v. Löwis2002-08-141-3/+3
|
* Massive changes from SF 589982 (tempfile.py rewrite, by ZackGuido van Rossum2002-08-091-13/+15
| | | | | Weinberg). This changes all uses of deprecated tempfile functions to the recommended ones.
* Complete the absolute import patch for the test suite. All relativeBarry Warsaw2002-07-301-1/+1
| | | | | | | | imports of test modules now import from the test package. Other related oddities are also fixed (like DeprecationWarning filters that weren't specifying the full import part, etc.). Also did a general code cleanup to remove all "from test.test_support import *"'s. Other from...import *'s weren't changed.
* Whitespace normalization.Tim Peters2002-04-161-1/+1
|
* Special support for pickling os.stat and os.stat_vfs results portablyMichael W. Hudson2002-03-061-0/+11
| | | | | | | | (the types come from different modules on different platforms). Added tests for pickling these types. May be a bugfix candidate.
* A fix & test forMichael W. Hudson2002-03-051-0/+7
| | | | | | | | [ 496873 ] structseqs unpicklable by adding a __reduce__ method to structseqs. Will also commit this to the 2.2.1 branch momentarily.
* Add test for pickling new-style class with custom metaclass.Guido van Rossum2001-12-191-0/+12
|
* The test using class initarg failed, because it was lacking aGuido van Rossum2001-12-191-0/+3
| | | | __safe_for_unpickling__ attribute.
* Whitespace normalization.Tim Peters2001-10-181-1/+1
|
* Covert pickle tests to use unittest.Jeremy Hylton2001-10-151-163/+177
| | | | | Extend tests to cover a few more cases. For cPickle, test several of the undocumented features.
* pickle.py, load_int(): Match cPickle's just-repaired ability to unpickleTim Peters2001-08-281-0/+15
| | | | | | | | 64-bit INTs on 32-bit boxes (where they become longs). Also exploit that int(str) and long(str) will ignore a trailing newline (saves creating a new string at the Python level). pickletester.py: Simulate reading a pickle produced by a 64-bit box.