summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_zipfile64.py
diff options
context:
space:
mode:
authorRonald Oussoren <ronaldoussoren@mac.com>2006-06-15 08:14:18 (GMT)
committerRonald Oussoren <ronaldoussoren@mac.com>2006-06-15 08:14:18 (GMT)
commit143cefb8461c2c684e904723be45f84d2c998466 (patch)
tree0ce1d5bba4691e8292f4d4deb278aa5a57bdb589 /Lib/test/test_zipfile64.py
parent0eac11826a6b9efed2f52b612e58046c584db573 (diff)
downloadcpython-143cefb8461c2c684e904723be45f84d2c998466.zip
cpython-143cefb8461c2c684e904723be45f84d2c998466.tar.gz
cpython-143cefb8461c2c684e904723be45f84d2c998466.tar.bz2
Patch #1446489 (zipfile: support for ZIP64)
Diffstat (limited to 'Lib/test/test_zipfile64.py')
-rw-r--r--Lib/test/test_zipfile64.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/Lib/test/test_zipfile64.py b/Lib/test/test_zipfile64.py
new file mode 100644
index 0000000..c9807bf
--- /dev/null
+++ b/Lib/test/test_zipfile64.py
@@ -0,0 +1,67 @@
+# Tests of the full ZIP64 functionality of zipfile
+# The test_support.requires call is the only reason for keeping this separate
+# from test_zipfile
+from test import test_support
+test_support.requires(
+ 'largefile',
+ 'test requires loads of disk-space bytes and a long time to run'
+ )
+
+# We can test part of the module without zlib.
+try:
+ import zlib
+except ImportError:
+ zlib = None
+
+import zipfile, os, unittest
+
+from StringIO import StringIO
+from tempfile import TemporaryFile
+
+from test.test_support import TESTFN, run_unittest
+
+TESTFN2 = TESTFN + "2"
+
+class TestsWithSourceFile(unittest.TestCase):
+ def setUp(self):
+ line_gen = ("Test of zipfile line %d." % i for i in range(0, 1000000))
+ self.data = '\n'.join(line_gen)
+
+ # Make a source file with some lines
+ fp = open(TESTFN, "wb")
+ fp.write(self.data)
+ fp.close()
+
+ def zipTest(self, f, compression):
+ # Create the ZIP archive
+ filecount = int(((1 << 32) / len(self.data)) * 1.5)
+ zipfp = zipfile.ZipFile(f, "w", compression, allowZip64=True)
+
+ for num in range(filecount):
+ zipfp.writestr("testfn%d"%(num,), self.data)
+ zipfp.close()
+
+ # Read the ZIP archive
+ zipfp = zipfile.ZipFile(f, "r", compression)
+ for num in range(filecount):
+ self.assertEqual(zipfp.read("testfn%d"%(num,)), self.data)
+ zipfp.close()
+
+ def testStored(self):
+ for f in (TESTFN2, TemporaryFile()):
+ self.zipTest(f, zipfile.ZIP_STORED)
+
+ if zlib:
+ def testDeflated(self):
+ for f in (TESTFN2, TemporaryFile()):
+ self.zipTest(f, zipfile.ZIP_DEFLATED)
+
+ def tearDown(self):
+ os.remove(TESTFN)
+ os.remove(TESTFN2)
+
+def test_main():
+ run_unittest(TestsWithSourceFile)
+
+if __name__ == "__main__":
+ test_main()