]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505...
authorChristian Heimes <christian@cheimes.de>
Mon, 11 Feb 2008 22:57:17 +0000 (22:57 +0000)
committerChristian Heimes <christian@cheimes.de>
Mon, 11 Feb 2008 22:57:17 +0000 (22:57 +0000)
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().
........

Lib/pickletools.py
Lib/test/test_pickletools.py
Lib/test/test_tarfile.py
Lib/test/testtar.tar

index 1b6967ae463865ca4e24d1aad4f91d0b64141264..ca09c03460c6f0a2af4cbe8349b408988ddef9dc 100644 (file)
@@ -1858,7 +1858,7 @@ def optimize(p):
         s.append(p[i:j])
         i = stop
     s.append(p[i:])
-    return ''.join(s)
+    return b''.join(s)
 
 ##############################################################################
 # A symbolic pickle disassembler.
index 2e2fe50b0421e6fc44413d3f9c51d4cd1309946c..3e5b35ab588695aac34387556dc8eb16f9842135 100644 (file)
@@ -1,3 +1,24 @@
+import pickle
 import pickletools
 from test import test_support
-test_support.run_doctest(pickletools)
+from test.pickletester import AbstractPickleTests
+from test.pickletester import AbstractPickleModuleTests
+
+class OptimizedPickleTests(AbstractPickleTests, AbstractPickleModuleTests):
+
+    def dumps(self, arg, proto=0, fast=0):
+        return pickletools.optimize(pickle.dumps(arg, proto))
+
+    def loads(self, buf):
+        return pickle.loads(buf)
+
+    module = pickle
+    error = KeyError
+
+def test_main():
+    test_support.run_unittest(OptimizedPickleTests)
+    test_support.run_doctest(pickletools)
+
+
+if __name__ == "__main__":
+    test_main()
index 91cf02469a9ee86c12b71cddd338f16159ad58e3..2fbb51e6add3ab3fe0611fcfa5a1a3bca7d6e04d 100644 (file)
@@ -207,6 +207,15 @@ class MiscReadTest(ReadTest):
         self.assert_(tarinfo.type == tarfile.DIRTYPE,
                 "v7 dirtype failed")
 
+    def test_xstar_type(self):
+        # The xstar format stores extra atime and ctime fields inside the
+        # space reserved for the prefix field. The prefix field must be
+        # ignored in this case, otherwise it will mess up the name.
+        try:
+            self.tar.getmember("misc/regtype-xstar")
+        except KeyError:
+            self.fail("failed to find misc/regtype-xstar (mangled prefix?)")
+
     def test_check_members(self):
         for tarinfo in self.tar:
             self.assert_(int(tarinfo.mtime) == 0o7606136617,
index 3529bdf0acf5a1db9b1d494fda25422816ca00cc..b5bb46b16e682eb196c2eb4e7b9d3f69db916928 100644 (file)
Binary files a/Lib/test/testtar.tar and b/Lib/test/testtar.tar differ