[Python-checkins] r70775 - in python/trunk/Lib/test: test_bsddb3.py test_bz2.py test_ctypes.py test_curses.py test_dbm.py test_fork1.py test_gdbm.py test_ioctl.py test_multiprocessing.py test_nis.py test_ossaudiodev.py test_resource.py test_sqlite.py test_startfile.py test_support.py test_xml_etree_c.py test_zlib.py

r.david.murray python-checkins at python.org
Tue Mar 31 01:05:50 CEST 2009


Author: r.david.murray
Date: Tue Mar 31 01:05:48 2009
New Revision: 70775

Log:
Change more tests to use import_module for the modules that
should cause tests to be skipped.  Also rename import_function
to the more descriptive get_attribute and add a docstring.


Modified:
   python/trunk/Lib/test/test_bsddb3.py
   python/trunk/Lib/test/test_bz2.py
   python/trunk/Lib/test/test_ctypes.py
   python/trunk/Lib/test/test_curses.py
   python/trunk/Lib/test/test_dbm.py
   python/trunk/Lib/test/test_fork1.py
   python/trunk/Lib/test/test_gdbm.py
   python/trunk/Lib/test/test_ioctl.py
   python/trunk/Lib/test/test_multiprocessing.py
   python/trunk/Lib/test/test_nis.py
   python/trunk/Lib/test/test_ossaudiodev.py
   python/trunk/Lib/test/test_resource.py
   python/trunk/Lib/test/test_sqlite.py
   python/trunk/Lib/test/test_startfile.py
   python/trunk/Lib/test/test_support.py
   python/trunk/Lib/test/test_xml_etree_c.py
   python/trunk/Lib/test/test_zlib.py

Modified: python/trunk/Lib/test/test_bsddb3.py
==============================================================================
--- python/trunk/Lib/test/test_bsddb3.py	(original)
+++ python/trunk/Lib/test/test_bsddb3.py	Tue Mar 31 01:05:48 2009
@@ -7,7 +7,11 @@
 import tempfile
 import time
 import unittest
-from test.test_support import requires, verbose, run_unittest, unlink, rmtree
+from test.test_support import (requires, verbose, run_unittest, unlink, rmtree,
+    import_module)
+
+#Skip test if bsddb cannot import _bsddb.
+import_module('bsddb')
 
 # When running as a script instead of within the regrtest framework, skip the
 # requires test, since it's obvious we want to run them.

Modified: python/trunk/Lib/test/test_bz2.py
==============================================================================
--- python/trunk/Lib/test/test_bz2.py	(original)
+++ python/trunk/Lib/test/test_bz2.py	Tue Mar 31 01:05:48 2009
@@ -1,6 +1,6 @@
 #!/usr/bin/python
 from test import test_support
-from test.test_support import TESTFN
+from test.test_support import TESTFN, import_module
 
 import unittest
 from cStringIO import StringIO
@@ -8,7 +8,7 @@
 import subprocess
 import sys
 
-import bz2
+bz2 = import_module('bz2')
 from bz2 import BZ2File, BZ2Compressor, BZ2Decompressor
 
 has_cmdline_bunzip2 = sys.platform not in ("win32", "os2emx", "riscos")

Modified: python/trunk/Lib/test/test_ctypes.py
==============================================================================
--- python/trunk/Lib/test/test_ctypes.py	(original)
+++ python/trunk/Lib/test/test_ctypes.py	Tue Mar 31 01:05:48 2009
@@ -1,6 +1,9 @@
 import unittest
 
-from test.test_support import run_unittest
+from test.test_support import run_unittest, import_module
+#Skip tests if _ctypes module does not exist
+import_module('_ctypes')
+
 import ctypes.test
 
 def test_main():

Modified: python/trunk/Lib/test/test_curses.py
==============================================================================
--- python/trunk/Lib/test/test_curses.py	(original)
+++ python/trunk/Lib/test/test_curses.py	Tue Mar 31 01:05:48 2009
@@ -9,15 +9,16 @@
 # Only called, not tested: getmouse(), ungetmouse()
 #
 
-import curses, sys, tempfile, os
-import curses.panel
+import sys, tempfile, os
 
 # Optionally test curses module.  This currently requires that the
 # 'curses' resource be given on the regrtest command line using the -u
 # option.  If not available, nothing after this line will be executed.
 
-from test.test_support import requires
+from test.test_support import requires, import_module
 requires('curses')
+curses = import_module('curses')
+curses.panel = import_module('curses.panel')
 
 # XXX: if newterm was supported we could use it instead of initscr and not exit
 term = os.environ.get('TERM')

Modified: python/trunk/Lib/test/test_dbm.py
==============================================================================
--- python/trunk/Lib/test/test_dbm.py	(original)
+++ python/trunk/Lib/test/test_dbm.py	Tue Mar 31 01:05:48 2009
@@ -1,6 +1,6 @@
 from test import test_support
 import unittest
-import dbm
+dbm = test_support.import_module('dbm')
 
 class DbmTestCase(unittest.TestCase):
 

Modified: python/trunk/Lib/test/test_fork1.py
==============================================================================
--- python/trunk/Lib/test/test_fork1.py	(original)
+++ python/trunk/Lib/test/test_fork1.py	Tue Mar 31 01:05:48 2009
@@ -4,10 +4,10 @@
 import os
 import time
 from test.fork_wait import ForkWait
-from test.test_support import run_unittest, reap_children, import_function
+from test.test_support import run_unittest, reap_children, get_attribute
 
 #Skip test if fork does not exist.
-import_function(os, 'fork')
+get_attribute(os, 'fork')
 
 
 class ForkTest(ForkWait):

Modified: python/trunk/Lib/test/test_gdbm.py
==============================================================================
--- python/trunk/Lib/test/test_gdbm.py	(original)
+++ python/trunk/Lib/test/test_gdbm.py	Tue Mar 31 01:05:48 2009
@@ -1,7 +1,8 @@
-import gdbm
 import unittest
 import os
-from test.test_support import verbose, TESTFN, run_unittest, unlink
+from test.test_support import (verbose, TESTFN, run_unittest, unlink,
+    import_module)
+gdbm = import_module('gdbm')
 
 
 filename = TESTFN

Modified: python/trunk/Lib/test/test_ioctl.py
==============================================================================
--- python/trunk/Lib/test/test_ioctl.py	(original)
+++ python/trunk/Lib/test/test_ioctl.py	Tue Mar 31 01:05:48 2009
@@ -1,12 +1,9 @@
 import unittest
-from test.test_support import run_unittest
+from test.test_support import run_unittest, import_module, get_attribute
 import os, struct
-try:
-    import fcntl, termios
-except ImportError:
-    raise unittest.SkipTest("No fcntl or termios module")
-if not hasattr(termios,'TIOCGPGRP'):
-    raise unittest.SkipTest("termios module doesn't have TIOCGPGRP")
+fcntl = import_module('fcntl')
+termios = import_module('termios')
+get_attribute(termios, 'TIOCGPGRP') #Can't run tests without this feature
 
 try:
     tty = open("/dev/tty", "r")

Modified: python/trunk/Lib/test/test_multiprocessing.py
==============================================================================
--- python/trunk/Lib/test/test_multiprocessing.py	(original)
+++ python/trunk/Lib/test/test_multiprocessing.py	Tue Mar 31 01:05:48 2009
@@ -17,20 +17,19 @@
 import socket
 import random
 import logging
+import test_support
 
 
+_multiprocessing = test_support.import_module('_multiprocessing')
+
 # Work around broken sem_open implementations
-try:
-    import multiprocessing.synchronize
-except ImportError, e:
-    raise unittest.SkipTest(e)
+test_support.import_module('multiprocessing.synchronize')
 
 import multiprocessing.dummy
 import multiprocessing.connection
 import multiprocessing.managers
 import multiprocessing.heap
 import multiprocessing.pool
-import _multiprocessing
 
 from multiprocessing import util
 

Modified: python/trunk/Lib/test/test_nis.py
==============================================================================
--- python/trunk/Lib/test/test_nis.py	(original)
+++ python/trunk/Lib/test/test_nis.py	Tue Mar 31 01:05:48 2009
@@ -1,6 +1,7 @@
 from test import test_support
 import unittest
-import nis
+
+nis = test_support.import_module('nis')
 
 class NisTests(unittest.TestCase):
     def test_maps(self):

Modified: python/trunk/Lib/test/test_ossaudiodev.py
==============================================================================
--- python/trunk/Lib/test/test_ossaudiodev.py	(original)
+++ python/trunk/Lib/test/test_ossaudiodev.py	Tue Mar 31 01:05:48 2009
@@ -3,8 +3,9 @@
 
 from test.test_support import findfile
 
+ossaudiodev = test_support.import_module('ossaudiodev')
+
 import errno
-import ossaudiodev
 import sys
 import sunau
 import time

Modified: python/trunk/Lib/test/test_resource.py
==============================================================================
--- python/trunk/Lib/test/test_resource.py	(original)
+++ python/trunk/Lib/test/test_resource.py	Tue Mar 31 01:05:48 2009
@@ -1,9 +1,9 @@
 import unittest
 from test import test_support
-
-import resource
 import time
 
+resource = test_support.import_module('resource')
+
 # This test is checking a few specific problem spots with the resource module.
 
 class ResourceTest(unittest.TestCase):

Modified: python/trunk/Lib/test/test_sqlite.py
==============================================================================
--- python/trunk/Lib/test/test_sqlite.py	(original)
+++ python/trunk/Lib/test/test_sqlite.py	Tue Mar 31 01:05:48 2009
@@ -1,10 +1,9 @@
 import unittest
-from test.test_support import run_unittest
+from test.test_support import run_unittest, import_module
+
+#Skip test of _sqlite3 module not installed
+import_module('_sqlite3')
 
-try:
-    import _sqlite3
-except ImportError:
-    raise unittest.SkipTest('no sqlite available')
 from sqlite3.test import (dbapi, types, userfunctions, py25tests,
                                 factory, transactions, hooks, regression,
                                 dump)

Modified: python/trunk/Lib/test/test_startfile.py
==============================================================================
--- python/trunk/Lib/test/test_startfile.py	(original)
+++ python/trunk/Lib/test/test_startfile.py	Tue Mar 31 01:05:48 2009
@@ -12,7 +12,7 @@
 import os
 from os import path
 
-startfile = test_support.import_function(os, 'startfile')
+startfile = test_support.get_attribute(os, 'startfile')
 
 
 class TestCase(unittest.TestCase):

Modified: python/trunk/Lib/test/test_support.py
==============================================================================
--- python/trunk/Lib/test/test_support.py	(original)
+++ python/trunk/Lib/test/test_support.py	Tue Mar 31 01:05:48 2009
@@ -12,6 +12,7 @@
 import shutil
 import warnings
 import unittest
+import importlib
 
 __all__ = ["Error", "TestFailed", "ResourceDenied", "import_module",
            "verbose", "use_resources", "max_memuse", "record_original_stdout",
@@ -25,7 +26,7 @@
            "run_with_locale", "set_memlimit", "bigmemtest", "bigaddrspacetest",
            "BasicTestRunner", "run_unittest", "run_doctest", "threading_setup",
            "threading_cleanup", "reap_children", "cpython_only",
-           "check_impl_detail"]
+           "check_impl_detail", "get_attribute"]
 
 class Error(Exception):
     """Base class for regression test exceptions."""
@@ -49,24 +50,26 @@
             warnings.filterwarnings("ignore", ".+ (module|package)",
                                     DeprecationWarning)
         try:
-            module = __import__(name, level=0)
+            module = importlib.import_module(name)
         except ImportError:
             raise unittest.SkipTest("No module named " + name)
         else:
             return module
 
-def import_function(module, name, deprecated=False):
+def get_attribute(module, name, deprecated=False):
+    """Get an attribute from the module, raising SkipTest if it is
+    not available."""
     with warnings.catch_warnings():
         if deprecated:
             warnings.filterwarnings("ignore", ".+ (module|package)",
                                     DeprecationWarning)
         try:
-            function = getattr(module, name)
+            attribute = getattr(module, name)
         except AttributeError:
-            raise unittest.SkipTest("No function named %s in module %s" % (
-                name, module.__name__))
+            raise unittest.SkipTest("module %s has no attribute %s" % (
+                module.__name__, name))
         else:
-            return function
+            return attribute
 
 
 verbose = 1              # Flag set to 0 by regrtest.py

Modified: python/trunk/Lib/test/test_xml_etree_c.py
==============================================================================
--- python/trunk/Lib/test/test_xml_etree_c.py	(original)
+++ python/trunk/Lib/test/test_xml_etree_c.py	Tue Mar 31 01:05:48 2009
@@ -5,7 +5,7 @@
 
 from test import test_support
 
-from xml.etree import cElementTree as ET
+ET = test_support.import_module('xml.etree.cElementTree')
 
 SAMPLE_XML = """
 <body>

Modified: python/trunk/Lib/test/test_zlib.py
==============================================================================
--- python/trunk/Lib/test/test_zlib.py	(original)
+++ python/trunk/Lib/test/test_zlib.py	Tue Mar 31 01:05:48 2009
@@ -1,9 +1,10 @@
 import unittest
 from test import test_support
-import zlib
 import binascii
 import random
 
+zlib = test_support.import_module('zlib')
+
 
 class ChecksumTestCase(unittest.TestCase):
     # checksum test cases


More information about the Python-checkins mailing list