From 1036a7f7e180ac3fd98e43832a04e38b4c7c9e83 Mon Sep 17 00:00:00 2001 From: Ezio Melotti Date: Sat, 12 Sep 2009 14:43:43 +0000 Subject: [PATCH] #6026 - fix tests that failed without zlib --- Lib/distutils/tests/test_archive_util.py | 10 ++++++++++ Lib/distutils/tests/test_bdist_dumb.py | 8 ++++++++ Lib/distutils/tests/test_sdist.py | 12 ++++++++++++ Lib/sqlite3/test/types.py | 8 +++++++- Lib/test/test_gzip.py | 3 +-- Lib/test/test_zipfile.py | 3 +++ Lib/test/test_zipimport.py | 13 ++++++++++--- 7 files changed, 51 insertions(+), 6 deletions(-) diff --git a/Lib/distutils/tests/test_archive_util.py b/Lib/distutils/tests/test_archive_util.py index 91bc4e3d7cf..d6fb6769206 100644 --- a/Lib/distutils/tests/test_archive_util.py +++ b/Lib/distutils/tests/test_archive_util.py @@ -19,10 +19,18 @@ try: except ImportError: ZIP_SUPPORT = find_executable('zip') +# some tests will fail if zlib is not available +try: + import zlib +except ImportError: + zlib = None + + class ArchiveUtilTestCase(support.TempdirManager, support.LoggingSilencer, unittest.TestCase): + @unittest.skipUnless(zlib, "Requires zlib") def test_make_tarball(self): # creating something to tar tmpdir = self.mkdtemp() @@ -83,6 +91,7 @@ class ArchiveUtilTestCase(support.TempdirManager, base_name = os.path.join(tmpdir2, 'archive') return tmpdir, tmpdir2, base_name + @unittest.skipUnless(zlib, "Requires zlib") @unittest.skipUnless(find_executable('tar') and find_executable('gzip'), 'Need the tar command to run') def test_tarfile_vs_tar(self): @@ -168,6 +177,7 @@ class ArchiveUtilTestCase(support.TempdirManager, self.assertTrue(not os.path.exists(tarball)) self.assertEquals(len(w.warnings), 1) + @unittest.skipUnless(zlib, "Requires zlib") @unittest.skipUnless(ZIP_SUPPORT, 'Need zip support to run') def test_make_zipfile(self): # creating something to tar diff --git a/Lib/distutils/tests/test_bdist_dumb.py b/Lib/distutils/tests/test_bdist_dumb.py index b28f89f5a57..a838f73476b 100644 --- a/Lib/distutils/tests/test_bdist_dumb.py +++ b/Lib/distutils/tests/test_bdist_dumb.py @@ -4,6 +4,13 @@ import unittest import sys import os +# zlib is not used here, but if it's not available +# test_simple_built will fail +try: + import zlib +except ImportError: + zlib = None + from distutils.core import Distribution from distutils.command.bdist_dumb import bdist_dumb from distutils.tests import support @@ -31,6 +38,7 @@ class BuildDumbTestCase(support.TempdirManager, sys.argv = self.old_sys_argv[:] super(BuildDumbTestCase, self).tearDown() + @unittest.skipUnless(zlib, "requires zlib") def test_simple_built(self): # let's create a simple package diff --git a/Lib/distutils/tests/test_sdist.py b/Lib/distutils/tests/test_sdist.py index 5808ca16eb1..c2feccb3cea 100644 --- a/Lib/distutils/tests/test_sdist.py +++ b/Lib/distutils/tests/test_sdist.py @@ -3,6 +3,14 @@ import os import unittest import shutil import zipfile + +# zlib is not used here, but if it's not available +# the tests that use zipfile may fail +try: + import zlib +except ImportError: + zlib = None + from os.path import join import sys import tempfile @@ -79,6 +87,7 @@ class SDistTestCase(PyPIRCCommandTestCase): cmd.warn = _warn return dist, cmd + @unittest.skipUnless(zlib, "requires zlib") def test_prune_file_list(self): # this test creates a package with some vcs dirs in it # and launch sdist to make sure they get pruned @@ -120,6 +129,7 @@ class SDistTestCase(PyPIRCCommandTestCase): # making sure everything has been pruned correctly self.assertEquals(len(content), 4) + @unittest.skipUnless(zlib, "requires zlib") def test_make_distribution(self): # check if tar and gzip are installed @@ -156,6 +166,7 @@ class SDistTestCase(PyPIRCCommandTestCase): self.assertEquals(result, ['fake-1.0.tar', 'fake-1.0.tar.gz']) + @unittest.skipUnless(zlib, "requires zlib") def test_add_defaults(self): # http://bugs.python.org/issue2279 @@ -217,6 +228,7 @@ class SDistTestCase(PyPIRCCommandTestCase): manifest = open(join(self.tmp_dir, 'MANIFEST')).read() self.assertEquals(manifest, MANIFEST % {'sep': os.sep}) + @unittest.skipUnless(zlib, "requires zlib") def test_metadata_check_option(self): # testing the `medata-check` option dist, cmd = self.get_cmd(metadata={}) diff --git a/Lib/sqlite3/test/types.py b/Lib/sqlite3/test/types.py index aab6e044678..a275a26e4d9 100644 --- a/Lib/sqlite3/test/types.py +++ b/Lib/sqlite3/test/types.py @@ -21,9 +21,14 @@ # misrepresented as being the original software. # 3. This notice may not be removed or altered from any source distribution. -import zlib, datetime +import datetime import unittest import sqlite3 as sqlite +try: + import zlib +except ImportError: + zlib = None + class SqliteTypeTests(unittest.TestCase): def setUp(self): @@ -300,6 +305,7 @@ class ObjectAdaptationTests(unittest.TestCase): val = self.cur.fetchone()[0] self.assertEqual(type(val), float) +@unittest.skipUnless(zlib, "requires zlib") class BinaryConverterTests(unittest.TestCase): def convert(s): return zlib.decompress(s) diff --git a/Lib/test/test_gzip.py b/Lib/test/test_gzip.py index 8ae31b29de7..13b0e57c129 100644 --- a/Lib/test/test_gzip.py +++ b/Lib/test/test_gzip.py @@ -5,9 +5,8 @@ import unittest from test import test_support import os -import gzip import struct - +gzip = test_support.import_module('gzip') data1 = """ int length=DEFAULTALLOC, err = Z_OK; PyObject *RetVal; diff --git a/Lib/test/test_zipfile.py b/Lib/test/test_zipfile.py index 652274f8fe3..3f86b32adb8 100644 --- a/Lib/test/test_zipfile.py +++ b/Lib/test/test_zipfile.py @@ -311,6 +311,7 @@ class TestsWithSourceFile(unittest.TestCase): self.assertEqual(zipfp.read(TESTFN), file(TESTFN).read()) zipfp.close() + @skipUnless(zlib, "requires zlib") def test_per_file_compression(self): # Check that files within a Zip archive can have different compression options zipfp = zipfile.ZipFile(TESTFN2, "w") @@ -882,6 +883,7 @@ class DecryptionTests(unittest.TestCase): self.zip2.setpassword("perl") self.assertRaises(RuntimeError, self.zip2.read, "zero") + @skipUnless(zlib, "requires zlib") def test_good_password(self): self.zip.setpassword("python") self.assertEquals(self.zip.read("test.txt"), self.plain) @@ -982,6 +984,7 @@ class TestsWithRandomBinaryFiles(unittest.TestCase): self.zip_random_open_test(f, zipfile.ZIP_STORED) +@skipUnless(zlib, "requires zlib") class TestsWithMultipleOpens(unittest.TestCase): def setUp(self): # Create the ZIP archive diff --git a/Lib/test/test_zipimport.py b/Lib/test/test_zipimport.py index 30722309aed..f15958ce912 100644 --- a/Lib/test/test_zipimport.py +++ b/Lib/test/test_zipimport.py @@ -6,11 +6,17 @@ import struct import time import unittest -import zlib # implied prerequisite -from zipfile import ZipFile, ZipInfo, ZIP_STORED, ZIP_DEFLATED from test import test_support from test.test_importhooks import ImportHooksBaseTestCase, test_src, test_co +# some tests can be ran even without zlib +try: + import zlib +except ImportError: + zlib = None + +from zipfile import ZipFile, ZipInfo, ZIP_STORED, ZIP_DEFLATED + import zipimport import linecache import doctest @@ -53,6 +59,7 @@ TESTPACK = "ziptestpackage" TESTPACK2 = "ziptestpackage2" TEMP_ZIP = os.path.abspath("junk95142" + os.extsep + "zip") + class UncompressedZipImportTestCase(ImportHooksBaseTestCase): compression = ZIP_STORED @@ -357,7 +364,6 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase): def testDoctestSuite(self): self.runDoctest(self.doDoctestSuite) - def doTraceback(self, module): try: module.do_raise() @@ -381,6 +387,7 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase): self.doTest(None, files, TESTMOD, call=self.doTraceback) +@unittest.skipUnless(zlib, "requires zlib") class CompressedZipImportTestCase(UncompressedZipImportTestCase): compression = ZIP_DEFLATED