diff options
author | Ronald Oussoren <ronaldoussoren@mac.com> | 2006-06-15 08:14:18 (GMT) |
---|---|---|
committer | Ronald Oussoren <ronaldoussoren@mac.com> | 2006-06-15 08:14:18 (GMT) |
commit | 143cefb8461c2c684e904723be45f84d2c998466 (patch) | |
tree | 0ce1d5bba4691e8292f4d4deb278aa5a57bdb589 /Lib/test/test_zipfile64.py | |
parent | 0eac11826a6b9efed2f52b612e58046c584db573 (diff) | |
download | cpython-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.py | 67 |
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() |