]> granicus.if.org Git - python/commitdiff
Removed no-longer-needed convolutions to recover from damaged modules
authorTim Peters <tim.peters@gmail.com>
Mon, 2 Aug 2004 03:55:18 +0000 (03:55 +0000)
committerTim Peters <tim.peters@gmail.com>
Mon, 2 Aug 2004 03:55:18 +0000 (03:55 +0000)
getting left beyind in sys.modules.

Lib/pty.py
Lib/test/test___all__.py

index cafbc9c962d15b7e9eea0fd14346ed4a3fe44cf1..fae162dc487509c909db8b477dc6fa93f443c8d0 100644 (file)
@@ -8,17 +8,6 @@
 
 from select import select
 import os
-
-# Absurd:  import termios and then delete it.  This is to force an attempt
-# to import pty to raise an ImportError on platforms that lack termios.
-# Without this explicit import of termios here, some other module may
-# import tty first, which in turn imports termios and dies with an
-# ImportError then.  But since tty *does* exist across platforms, that
-# leaves a damaged module object for tty in sys.modules, and the import
-# of tty here then appears to work despite that the tty imported is junk.
-import termios
-del termios
-
 import tty
 
 __all__ = ["openpty","fork","spawn"]
index ea23846f6917ef980b3e4824a95c35e0603ba36a..0794bd8263a4ef997453590693c8d23837f32234 100644 (file)
@@ -21,20 +21,6 @@ class AllTest(unittest.TestCase):
         except ImportError:
             # Silent fail here seems the best route since some modules
             # may not be available in all environments.
-            # Since an ImportError may leave a partial module object in
-            # sys.modules, get rid of that first.  Here's what happens if
-            # you don't:  importing pty fails on Windows because pty tries to
-            # import FCNTL, which doesn't exist.  That raises an ImportError,
-            # caught here.  It also leaves a partial pty module in sys.modules.
-            # So when test_pty is called later, the import of pty succeeds,
-            # but shouldn't.  As a result, test_pty crashes with an
-            # AttributeError instead of an ImportError, and regrtest interprets
-            # the latter as a test failure (ImportError is treated as "test
-            # skipped" -- which is what test_pty should say on Windows).
-            try:
-                del sys.modules[modname]
-            except KeyError:
-                pass
             return
         verify(hasattr(sys.modules[modname], "__all__"),
                "%s has no __all__ attribute" % modname)