summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2010-04-27 23:55:59 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2010-04-27 23:55:59 (GMT)
commit6a10281d3359de890519c23d0318742018c843a3 (patch)
tree71fdda13733f42f287602b72b60260cdc9afa6ba /Lib
parentc73a05f775013980a2a0de1c2a65b8542ee0bfa6 (diff)
downloadcpython-6a10281d3359de890519c23d0318742018c843a3.zip
cpython-6a10281d3359de890519c23d0318742018c843a3.tar.gz
cpython-6a10281d3359de890519c23d0318742018c843a3.tar.bz2
Issue #7449, last part (11): fix many tests if thread support is disabled
* Use try/except ImportError or test_support.import_module() to import thread and threading modules * Add @unittest.skipUnless(threading, ...) to testcases using threads
Diffstat (limited to 'Lib')
-rw-r--r--Lib/sqlite3/test/dbapi.py6
-rw-r--r--Lib/test/fork_wait.py6
-rw-r--r--Lib/test/test_asyncore.py7
-rw-r--r--Lib/test/test_bz2.py7
-rw-r--r--Lib/test/test_contextlib.py6
-rw-r--r--Lib/test/test_docxmlrpc.py2
-rw-r--r--Lib/test/test_file2k.py6
-rw-r--r--Lib/test/test_fork1.py4
-rw-r--r--Lib/test/test_ftplib.py2
-rw-r--r--Lib/test/test_httpservers.py2
-rw-r--r--Lib/test/test_io.py9
-rw-r--r--Lib/test/test_logging.py8
-rw-r--r--Lib/test/test_poplib.py2
-rw-r--r--Lib/test/test_queue.py2
-rw-r--r--Lib/test/test_smtplib.py22
-rw-r--r--Lib/test/test_socket.py17
-rw-r--r--Lib/test/test_socketserver.py6
-rw-r--r--Lib/test/test_telnetlib.py2
-rw-r--r--Lib/test/test_thread.py2
-rw-r--r--Lib/test/test_threaded_import.py4
-rw-r--r--Lib/test/test_threadedtempfile.py5
-rw-r--r--Lib/test/test_threading.py4
-rw-r--r--Lib/test/test_threading_local.py2
-rw-r--r--Lib/test/test_threadsignals.py4
-rw-r--r--Lib/test/test_urllib2_localnet.py2
25 files changed, 99 insertions, 40 deletions
diff --git a/Lib/sqlite3/test/dbapi.py b/Lib/sqlite3/test/dbapi.py
index 9d87212..401ba79 100644
--- a/Lib/sqlite3/test/dbapi.py
+++ b/Lib/sqlite3/test/dbapi.py
@@ -23,8 +23,11 @@
import unittest
import sys
-import threading
import sqlite3 as sqlite
+try:
+ import threading
+except ImportError:
+ threading = None
class ModuleTests(unittest.TestCase):
def CheckAPILevel(self):
@@ -465,6 +468,7 @@ class CursorTests(unittest.TestCase):
except TypeError:
pass
+@unittest.skipUnless(threading, 'This test requires threading.')
class ThreadTests(unittest.TestCase):
def setUp(self):
self.con = sqlite.connect(":memory:")
diff --git a/Lib/test/fork_wait.py b/Lib/test/fork_wait.py
index 3c75de3..cc51f89 100644
--- a/Lib/test/fork_wait.py
+++ b/Lib/test/fork_wait.py
@@ -1,6 +1,6 @@
"""This test case provides support for checking forking and wait behavior.
-To test different wait behavior, overrise the wait_impl method.
+To test different wait behavior, override the wait_impl method.
We want fork1() semantics -- only the forking thread survives in the
child after a fork().
@@ -12,7 +12,9 @@ While BeOS doesn't officially support fork and native threading in
the same application, the present example should work just fine. DC
"""
-import os, sys, time, thread, unittest
+import os, sys, time, unittest
+import test.test_support as test_support
+thread = test_support.import_module('thread')
LONGSLEEP = 2
SHORTSLEEP = 0.5
diff --git a/Lib/test/test_asyncore.py b/Lib/test/test_asyncore.py
index 1a54ce5..0cf14bf 100644
--- a/Lib/test/test_asyncore.py
+++ b/Lib/test/test_asyncore.py
@@ -3,7 +3,6 @@ import unittest
import select
import os
import socket
-import threading
import sys
import time
@@ -11,6 +10,11 @@ from test import test_support
from test.test_support import TESTFN, run_unittest, unlink
from StringIO import StringIO
+try:
+ import threading
+except ImportError:
+ threading = None
+
HOST = test_support.HOST
class dummysocket:
@@ -319,6 +323,7 @@ class DispatcherWithSendTests(unittest.TestCase):
def tearDown(self):
asyncore.close_all()
+ @unittest.skipUnless(threading, 'Threading required for this test.')
@test_support.reap_threads
def test_send(self):
evt = threading.Event()
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index 0541535..555cdeb 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -7,7 +7,11 @@ from cStringIO import StringIO
import os
import subprocess
import sys
-import threading
+
+try:
+ import threading
+except ImportError:
+ threading = None
bz2 = import_module('bz2')
from bz2 import BZ2File, BZ2Compressor, BZ2Decompressor
@@ -307,6 +311,7 @@ class BZ2FileTest(BaseTest):
else:
self.fail("1 // 0 didn't raise an exception")
+ @unittest.skipUnless(threading, 'Threading required for this test.')
def testThreading(self):
# Using a BZ2File from several threads doesn't deadlock (issue #7205).
data = "1" * 2**20
diff --git a/Lib/test/test_contextlib.py b/Lib/test/test_contextlib.py
index 42b90b6..f28c95e 100644
--- a/Lib/test/test_contextlib.py
+++ b/Lib/test/test_contextlib.py
@@ -3,9 +3,12 @@
import sys
import tempfile
import unittest
-import threading
from contextlib import * # Tests __all__
from test import test_support
+try:
+ import threading
+except ImportError:
+ threading = None
class ContextManagerTestCase(unittest.TestCase):
@@ -264,6 +267,7 @@ class FileContextTestCase(unittest.TestCase):
finally:
test_support.unlink(tfn)
+@unittest.skipUnless(threading, 'Threading required for this test.')
class LockContextTestCase(unittest.TestCase):
def boilerPlate(self, lock, locked):
diff --git a/Lib/test/test_docxmlrpc.py b/Lib/test/test_docxmlrpc.py
index 1af3433..716333e 100644
--- a/Lib/test/test_docxmlrpc.py
+++ b/Lib/test/test_docxmlrpc.py
@@ -2,7 +2,7 @@ from DocXMLRPCServer import DocXMLRPCServer
import httplib
import sys
from test import test_support
-import threading
+threading = test_support.import_module('threading')
import time
import socket
import unittest
diff --git a/Lib/test/test_file2k.py b/Lib/test/test_file2k.py
index a7681a9..accdc95 100644
--- a/Lib/test/test_file2k.py
+++ b/Lib/test/test_file2k.py
@@ -3,9 +3,12 @@ import os
import unittest
import itertools
import time
-import threading
from array import array
from weakref import proxy
+try:
+ import threading
+except ImportError:
+ threading = None
from test import test_support
from test.test_support import TESTFN, run_unittest
@@ -411,6 +414,7 @@ class FileSubclassTests(unittest.TestCase):
self.assertTrue(f.subclass_closed)
+@unittest.skipUnless(threading, 'Threading required for this test.')
class FileThreadingTests(unittest.TestCase):
# These tests check the ability to call various methods of file objects
# (including close()) concurrently without crashing the Python interpreter.
diff --git a/Lib/test/test_fork1.py b/Lib/test/test_fork1.py
index 0640071..3930667 100644
--- a/Lib/test/test_fork1.py
+++ b/Lib/test/test_fork1.py
@@ -6,10 +6,10 @@ import os
import signal
import sys
import time
-import threading
from test.fork_wait import ForkWait
-from test.test_support import run_unittest, reap_children, get_attribute
+from test.test_support import run_unittest, reap_children, get_attribute, import_module
+threading = import_module('threading')
#Skip test if fork does not exist.
get_attribute(os, 'fork')
diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py
index 4f6d1c1..3a2ec5e 100644
--- a/Lib/test/test_ftplib.py
+++ b/Lib/test/test_ftplib.py
@@ -4,7 +4,6 @@
# environment
import ftplib
-import threading
import asyncore
import asynchat
import socket
@@ -19,6 +18,7 @@ except ImportError:
from unittest import TestCase
from test import test_support
from test.test_support import HOST
+threading = test_support.import_module('threading')
# the dummy data returned by server over the data channel when
diff --git a/Lib/test/test_httpservers.py b/Lib/test/test_httpservers.py
index e392aee..0dc0a32 100644
--- a/Lib/test/test_httpservers.py
+++ b/Lib/test/test_httpservers.py
@@ -16,10 +16,10 @@ import shutil
import urllib
import httplib
import tempfile
-import threading
import unittest
from test import test_support
+threading = test_support.import_module('threading')
class NoLogRequestHandler:
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index 9ffe646..b3feb1b 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -26,7 +26,6 @@ import os
import sys
import time
import array
-import threading
import random
import unittest
import weakref
@@ -38,6 +37,10 @@ from test import test_support as support
import codecs
import io # C implementation of io
import _pyio as pyio # Python implementation of io
+try:
+ import threading
+except ImportError:
+ threading = None
__metaclass__ = type
bytes = support.py3k_bytes
@@ -749,6 +752,7 @@ class BufferedReaderTest(unittest.TestCase, CommonBufferedTests):
self.assertEquals(b"abcdefg", bufio.read())
+ @unittest.skipUnless(threading, 'Threading required for this test.')
def test_threads(self):
try:
# Write out many bytes with exactly the same number of 0's,
@@ -996,6 +1000,7 @@ class BufferedWriterTest(unittest.TestCase, CommonBufferedTests):
with self.open(support.TESTFN, "rb", buffering=0) as f:
self.assertEqual(f.read(), b"abc")
+ @unittest.skipUnless(threading, 'Threading required for this test.')
def test_threads(self):
try:
# Write out many bytes from many threads and test they were
@@ -2090,7 +2095,7 @@ class TextIOWrapperTest(unittest.TestCase):
with self.open(support.TESTFN, "w", errors="replace") as f:
self.assertEqual(f.errors, "replace")
-
+ @unittest.skipUnless(threading, 'Threading required for this test.')
def test_threads_write(self):
# Issue6750: concurrent writes could duplicate data
event = threading.Event()
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index 432493b..0211f56 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -41,11 +41,13 @@ import tempfile
from test.test_support import captured_stdout, run_with_locale, run_unittest,\
find_unused_port
import textwrap
-import threading
import unittest
import warnings
import weakref
-
+try:
+ import threading
+except ImportError:
+ threading = None
class BaseTest(unittest.TestCase):
@@ -765,6 +767,7 @@ class LogRecordSocketReceiver(ThreadingTCPServer):
self.server_close()
+@unittest.skipUnless(threading, 'Threading required for this test.')
class SocketHandlerTest(BaseTest):
"""Test for SocketHandler objects."""
@@ -1659,6 +1662,7 @@ class ConfigDictTest(BaseTest):
def test_config13_failure(self):
self.assertRaises(StandardError, self.apply_config, self.config13)
+ @unittest.skipUnless(threading, 'listen() needs threading to work')
def setup_via_listener(self, text):
port = find_unused_port()
t = logging.config.listen(port)
diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py
index f75f0b1..4375f71 100644
--- a/Lib/test/test_poplib.py
+++ b/Lib/test/test_poplib.py
@@ -4,7 +4,6 @@
# a real test suite
import poplib
-import threading
import asyncore
import asynchat
import socket
@@ -15,6 +14,7 @@ import errno
from unittest import TestCase
from test import test_support
from test.test_support import HOST
+threading = test_support.import_module('threading')
# the dummy data returned by server when LIST and RETR commands are issued
diff --git a/Lib/test/test_queue.py b/Lib/test/test_queue.py
index 1636280..5f5a6ac 100644
--- a/Lib/test/test_queue.py
+++ b/Lib/test/test_queue.py
@@ -1,10 +1,10 @@
# Some simple queue module tests, plus some failure conditions
# to ensure the Queue locks remain stable.
import Queue
-import threading
import time
import unittest
from test import test_support
+threading = test_support.import_module('threading')
QUEUE_SIZE = 5
diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py
index 9a492f6..977a152 100644
--- a/Lib/test/test_smtplib.py
+++ b/Lib/test/test_smtplib.py
@@ -1,7 +1,6 @@
import asyncore
import email.utils
import socket
-import threading
import smtpd
import smtplib
import StringIO
@@ -9,9 +8,14 @@ import sys
import time
import select
-from unittest import TestCase
+import unittest
from test import test_support
+try:
+ import threading
+except ImportError:
+ threading = None
+
HOST = test_support.HOST
def server(evt, buf, serv):
@@ -36,7 +40,8 @@ def server(evt, buf, serv):
serv.close()
evt.set()
-class GeneralTests(TestCase):
+@unittest.skipUnless(threading, 'Threading required for this test.')
+class GeneralTests(unittest.TestCase):
def setUp(self):
self._threads = test_support.threading_setup()
@@ -138,7 +143,8 @@ MSG_END = '------------ END MESSAGE ------------\n'
# test server times out, causing the test to fail.
# Test behavior of smtpd.DebuggingServer
-class DebuggingServerTests(TestCase):
+@unittest.skipUnless(threading, 'Threading required for this test.')
+class DebuggingServerTests(unittest.TestCase):
def setUp(self):
# temporarily replace sys.stdout to capture DebuggingServer output
@@ -233,7 +239,7 @@ class DebuggingServerTests(TestCase):
self.assertEqual(self.output.getvalue(), mexpect)
-class NonConnectingTests(TestCase):
+class NonConnectingTests(unittest.TestCase):
def testNotConnected(self):
# Test various operations on an unconnected SMTP object that
@@ -254,7 +260,8 @@ class NonConnectingTests(TestCase):
# test response of client to a non-successful HELO message
-class BadHELOServerTests(TestCase):
+@unittest.skipUnless(threading, 'Threading required for this test.')
+class BadHELOServerTests(unittest.TestCase):
def setUp(self):
self.old_stdout = sys.stdout
@@ -378,7 +385,8 @@ class SimSMTPServer(smtpd.SMTPServer):
# Test various SMTP & ESMTP commands/behaviors that require a simulated server
# (i.e., something with more features than DebuggingServer)
-class SMTPSimTests(TestCase):
+@unittest.skipUnless(threading, 'Threading required for this test.')
+class SMTPSimTests(unittest.TestCase):
def setUp(self):
self._threads = test_support.threading_setup()
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index f699e3c..0ce329f 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -6,7 +6,6 @@ from test import test_support
import errno
import socket
import select
-import thread, threading
import time
import traceback
import Queue
@@ -16,6 +15,13 @@ import array
from weakref import proxy
import signal
+try:
+ import thread
+ import threading
+except ImportError:
+ thread = None
+ threading = None
+
HOST = test_support.HOST
MSG = 'Michael Gilfix was here\n'
@@ -550,6 +556,7 @@ class GeneralModuleTests(unittest.TestCase):
s.ioctl(socket.SIO_KEEPALIVE_VALS, (1, 100, 100))
+@unittest.skipUnless(thread, 'Threading required for this test.')
class BasicTCPTest(SocketConnectedTest):
def __init__(self, methodName='runTest'):
@@ -630,6 +637,7 @@ class BasicTCPTest(SocketConnectedTest):
self.serv_conn.send(MSG)
self.serv_conn.shutdown(2)
+@unittest.skipUnless(thread, 'Threading required for this test.')
class BasicUDPTest(ThreadedUDPSocketTest):
def __init__(self, methodName='runTest'):
@@ -658,6 +666,7 @@ class BasicUDPTest(ThreadedUDPSocketTest):
def _testRecvFromNegative(self):
self.cli.sendto(MSG, 0, (HOST, self.port))
+@unittest.skipUnless(thread, 'Threading required for this test.')
class TCPCloserTest(ThreadedTCPSocketTest):
def testClose(self):
@@ -673,6 +682,7 @@ class TCPCloserTest(ThreadedTCPSocketTest):
self.cli.connect((HOST, self.port))
time.sleep(1.0)
+@unittest.skipUnless(thread, 'Threading required for this test.')
class BasicSocketPairTest(SocketPairTest):
def __init__(self, methodName='runTest'):
@@ -692,6 +702,7 @@ class BasicSocketPairTest(SocketPairTest):
msg = self.cli.recv(1024)
self.assertEqual(msg, MSG)
+@unittest.skipUnless(thread, 'Threading required for this test.')
class NonBlockingTCPTests(ThreadedTCPSocketTest):
def __init__(self, methodName='runTest'):
@@ -760,6 +771,7 @@ class NonBlockingTCPTests(ThreadedTCPSocketTest):
time.sleep(0.1)
self.cli.send(MSG)
+@unittest.skipUnless(thread, 'Threading required for this test.')
class FileObjectClassTestCase(SocketConnectedTest):
bufsize = -1 # Use default buffer size
@@ -989,6 +1001,7 @@ class NetworkConnectionNoServer(unittest.TestCase):
lambda: socket.create_connection((HOST, port))
)
+@unittest.skipUnless(thread, 'Threading required for this test.')
class NetworkConnectionAttributesTest(SocketTCPTest, ThreadableTest):
def __init__(self, methodName='runTest'):
@@ -1051,6 +1064,7 @@ class NetworkConnectionAttributesTest(SocketTCPTest, ThreadableTest):
self.cli = socket.create_connection((HOST, self.port), 30)
self.assertEqual(self.cli.gettimeout(), 30)
+@unittest.skipUnless(thread, 'Threading required for this test.')
class NetworkConnectionBehaviourTest(SocketTCPTest, ThreadableTest):
def __init__(self, methodName='runTest'):
@@ -1220,6 +1234,7 @@ class TestLinuxAbstractNamespace(unittest.TestCase):
self.assertRaises(socket.error, s.bind, address)
+@unittest.skipUnless(thread, 'Threading required for this test.')
class BufferIOTest(SocketConnectedTest):
"""
Test the buffer versions of socket.recv() and socket.send().
diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py
index 4f0dd3e..a478bd4 100644
--- a/Lib/test/test_socketserver.py
+++ b/Lib/test/test_socketserver.py
@@ -9,12 +9,15 @@ import select
import signal
import socket
import tempfile
-import threading
import unittest
import SocketServer
import test.test_support
from test.test_support import reap_children, reap_threads, verbose
+try:
+ import threading
+except ImportError:
+ threading = None
test.test_support.requires("network")
@@ -119,6 +122,7 @@ class SocketServerTest(unittest.TestCase):
self.assertEquals(server.server_address, server.socket.getsockname())
return server
+ @unittest.skipUnless(threading, 'Threading required for this test.')
@reap_threads
def run_server(self, svrcls, hdlrbase, testfunc):
server = self.make_server(self.pickaddr(svrcls.address_family),
diff --git a/Lib/test/test_telnetlib.py b/Lib/test/test_telnetlib.py
index a04bc3f..fd5c6f7 100644
--- a/Lib/test/test_telnetlib.py
+++ b/Lib/test/test_telnetlib.py
@@ -1,11 +1,11 @@
import socket
-import threading
import telnetlib
import time
import Queue
from unittest import TestCase
from test import test_support
+threading = test_support.import_module('threading')
HOST = test_support.HOST
EOF_sigil = object()
diff --git a/Lib/test/test_thread.py b/Lib/test/test_thread.py
index 33109ec..544e70d 100644
--- a/Lib/test/test_thread.py
+++ b/Lib/test/test_thread.py
@@ -2,7 +2,7 @@ import os
import unittest
import random
from test import test_support
-import thread
+thread = test_support.import_module('thread')
import time
import sys
import weakref
diff --git a/Lib/test/test_threaded_import.py b/Lib/test/test_threaded_import.py
index 4b925c4..b31fdf1 100644
--- a/Lib/test/test_threaded_import.py
+++ b/Lib/test/test_threaded_import.py
@@ -5,9 +5,9 @@
# complains several times about module random having no attribute
# randrange, and then Python hangs.
-import thread
import unittest
-from test.test_support import verbose, TestFailed
+from test.test_support import verbose, TestFailed, import_module
+thread = import_module('thread')
critical_section = thread.allocate_lock()
done = thread.allocate_lock()
diff --git a/Lib/test/test_threadedtempfile.py b/Lib/test/test_threadedtempfile.py
index 753f388..4aeb711 100644
--- a/Lib/test/test_threadedtempfile.py
+++ b/Lib/test/test_threadedtempfile.py
@@ -16,11 +16,10 @@ provoking a 2.0 failure under Linux.
NUM_THREADS = 20
FILES_PER_THREAD = 50
-import thread # If this fails, we can't test this module
-import threading
import tempfile
-from test.test_support import threading_setup, threading_cleanup, run_unittest
+from test.test_support import threading_setup, threading_cleanup, run_unittest, import_module
+threading = import_module('threading')
import unittest
import StringIO
from traceback import print_exc
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index 70dd026..2e2558a 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -5,8 +5,8 @@ from test.test_support import verbose
import random
import re
import sys
-import threading
-import thread
+thread = test.test_support.import_module('thread')
+threading = test.test_support.import_module('threading')
import time
import unittest
import weakref
diff --git a/Lib/test/test_threading_local.py b/Lib/test/test_threading_local.py
index ab3b358..ad0f43c 100644
--- a/Lib/test/test_threading_local.py
+++ b/Lib/test/test_threading_local.py
@@ -1,7 +1,7 @@
import unittest
from doctest import DocTestSuite
from test import test_support
-import threading
+threading = test_support.import_module('threading')
import weakref
import gc
diff --git a/Lib/test/test_threadsignals.py b/Lib/test/test_threadsignals.py
index b28705f..127ddd2 100644
--- a/Lib/test/test_threadsignals.py
+++ b/Lib/test/test_threadsignals.py
@@ -1,11 +1,11 @@
"""PyUnit testing that threads honor our signal semantics"""
import unittest
-import thread
import signal
import os
import sys
-from test.test_support import run_unittest
+from test.test_support import run_unittest, import_module
+thread = import_module('thread')
if sys.platform[:3] in ('win', 'os2') or sys.platform=='riscos':
raise unittest.SkipTest, "Can't test signal on %s" % sys.platform
diff --git a/Lib/test/test_urllib2_localnet.py b/Lib/test/test_urllib2_localnet.py
index e3860f2..ef2614bc 100644
--- a/Lib/test/test_urllib2_localnet.py
+++ b/Lib/test/test_urllib2_localnet.py
@@ -1,6 +1,5 @@
#!/usr/bin/env python
-import threading
import urlparse
import urllib2
import BaseHTTPServer
@@ -8,6 +7,7 @@ import unittest
import hashlib
from test import test_support
mimetools = test_support.import_module('mimetools', deprecated=True)
+threading = test_support.import_module('threading')
# Loopback http server infrastructure