mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
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
This commit is contained in:
parent
c73a05f775
commit
6a10281d33
26 changed files with 101 additions and 41 deletions
|
@ -23,8 +23,11 @@
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
import sys
|
import sys
|
||||||
import threading
|
|
||||||
import sqlite3 as sqlite
|
import sqlite3 as sqlite
|
||||||
|
try:
|
||||||
|
import threading
|
||||||
|
except ImportError:
|
||||||
|
threading = None
|
||||||
|
|
||||||
class ModuleTests(unittest.TestCase):
|
class ModuleTests(unittest.TestCase):
|
||||||
def CheckAPILevel(self):
|
def CheckAPILevel(self):
|
||||||
|
@ -465,6 +468,7 @@ class CursorTests(unittest.TestCase):
|
||||||
except TypeError:
|
except TypeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@unittest.skipUnless(threading, 'This test requires threading.')
|
||||||
class ThreadTests(unittest.TestCase):
|
class ThreadTests(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.con = sqlite.connect(":memory:")
|
self.con = sqlite.connect(":memory:")
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
"""This test case provides support for checking forking and wait behavior.
|
"""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
|
We want fork1() semantics -- only the forking thread survives in the
|
||||||
child after a fork().
|
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
|
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
|
LONGSLEEP = 2
|
||||||
SHORTSLEEP = 0.5
|
SHORTSLEEP = 0.5
|
||||||
|
|
|
@ -3,7 +3,6 @@ import unittest
|
||||||
import select
|
import select
|
||||||
import os
|
import os
|
||||||
import socket
|
import socket
|
||||||
import threading
|
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
@ -11,6 +10,11 @@ from test import test_support
|
||||||
from test.test_support import TESTFN, run_unittest, unlink
|
from test.test_support import TESTFN, run_unittest, unlink
|
||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
|
|
||||||
|
try:
|
||||||
|
import threading
|
||||||
|
except ImportError:
|
||||||
|
threading = None
|
||||||
|
|
||||||
HOST = test_support.HOST
|
HOST = test_support.HOST
|
||||||
|
|
||||||
class dummysocket:
|
class dummysocket:
|
||||||
|
@ -319,6 +323,7 @@ class DispatcherWithSendTests(unittest.TestCase):
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
asyncore.close_all()
|
asyncore.close_all()
|
||||||
|
|
||||||
|
@unittest.skipUnless(threading, 'Threading required for this test.')
|
||||||
@test_support.reap_threads
|
@test_support.reap_threads
|
||||||
def test_send(self):
|
def test_send(self):
|
||||||
evt = threading.Event()
|
evt = threading.Event()
|
||||||
|
|
|
@ -7,7 +7,11 @@ from cStringIO import StringIO
|
||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
try:
|
||||||
import threading
|
import threading
|
||||||
|
except ImportError:
|
||||||
|
threading = None
|
||||||
|
|
||||||
bz2 = import_module('bz2')
|
bz2 = import_module('bz2')
|
||||||
from bz2 import BZ2File, BZ2Compressor, BZ2Decompressor
|
from bz2 import BZ2File, BZ2Compressor, BZ2Decompressor
|
||||||
|
@ -307,6 +311,7 @@ class BZ2FileTest(BaseTest):
|
||||||
else:
|
else:
|
||||||
self.fail("1 // 0 didn't raise an exception")
|
self.fail("1 // 0 didn't raise an exception")
|
||||||
|
|
||||||
|
@unittest.skipUnless(threading, 'Threading required for this test.')
|
||||||
def testThreading(self):
|
def testThreading(self):
|
||||||
# Using a BZ2File from several threads doesn't deadlock (issue #7205).
|
# Using a BZ2File from several threads doesn't deadlock (issue #7205).
|
||||||
data = "1" * 2**20
|
data = "1" * 2**20
|
||||||
|
|
|
@ -3,9 +3,12 @@
|
||||||
import sys
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
import unittest
|
import unittest
|
||||||
import threading
|
|
||||||
from contextlib import * # Tests __all__
|
from contextlib import * # Tests __all__
|
||||||
from test import test_support
|
from test import test_support
|
||||||
|
try:
|
||||||
|
import threading
|
||||||
|
except ImportError:
|
||||||
|
threading = None
|
||||||
|
|
||||||
|
|
||||||
class ContextManagerTestCase(unittest.TestCase):
|
class ContextManagerTestCase(unittest.TestCase):
|
||||||
|
@ -264,6 +267,7 @@ class FileContextTestCase(unittest.TestCase):
|
||||||
finally:
|
finally:
|
||||||
test_support.unlink(tfn)
|
test_support.unlink(tfn)
|
||||||
|
|
||||||
|
@unittest.skipUnless(threading, 'Threading required for this test.')
|
||||||
class LockContextTestCase(unittest.TestCase):
|
class LockContextTestCase(unittest.TestCase):
|
||||||
|
|
||||||
def boilerPlate(self, lock, locked):
|
def boilerPlate(self, lock, locked):
|
||||||
|
|
|
@ -2,7 +2,7 @@ from DocXMLRPCServer import DocXMLRPCServer
|
||||||
import httplib
|
import httplib
|
||||||
import sys
|
import sys
|
||||||
from test import test_support
|
from test import test_support
|
||||||
import threading
|
threading = test_support.import_module('threading')
|
||||||
import time
|
import time
|
||||||
import socket
|
import socket
|
||||||
import unittest
|
import unittest
|
||||||
|
|
|
@ -3,9 +3,12 @@ import os
|
||||||
import unittest
|
import unittest
|
||||||
import itertools
|
import itertools
|
||||||
import time
|
import time
|
||||||
import threading
|
|
||||||
from array import array
|
from array import array
|
||||||
from weakref import proxy
|
from weakref import proxy
|
||||||
|
try:
|
||||||
|
import threading
|
||||||
|
except ImportError:
|
||||||
|
threading = None
|
||||||
|
|
||||||
from test import test_support
|
from test import test_support
|
||||||
from test.test_support import TESTFN, run_unittest
|
from test.test_support import TESTFN, run_unittest
|
||||||
|
@ -411,6 +414,7 @@ class FileSubclassTests(unittest.TestCase):
|
||||||
self.assertTrue(f.subclass_closed)
|
self.assertTrue(f.subclass_closed)
|
||||||
|
|
||||||
|
|
||||||
|
@unittest.skipUnless(threading, 'Threading required for this test.')
|
||||||
class FileThreadingTests(unittest.TestCase):
|
class FileThreadingTests(unittest.TestCase):
|
||||||
# These tests check the ability to call various methods of file objects
|
# These tests check the ability to call various methods of file objects
|
||||||
# (including close()) concurrently without crashing the Python interpreter.
|
# (including close()) concurrently without crashing the Python interpreter.
|
||||||
|
|
|
@ -6,10 +6,10 @@ import os
|
||||||
import signal
|
import signal
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import threading
|
|
||||||
|
|
||||||
from test.fork_wait import ForkWait
|
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.
|
#Skip test if fork does not exist.
|
||||||
get_attribute(os, 'fork')
|
get_attribute(os, 'fork')
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
# environment
|
# environment
|
||||||
|
|
||||||
import ftplib
|
import ftplib
|
||||||
import threading
|
|
||||||
import asyncore
|
import asyncore
|
||||||
import asynchat
|
import asynchat
|
||||||
import socket
|
import socket
|
||||||
|
@ -19,6 +18,7 @@ except ImportError:
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
from test import test_support
|
from test import test_support
|
||||||
from test.test_support import HOST
|
from test.test_support import HOST
|
||||||
|
threading = test_support.import_module('threading')
|
||||||
|
|
||||||
|
|
||||||
# the dummy data returned by server over the data channel when
|
# the dummy data returned by server over the data channel when
|
||||||
|
|
|
@ -16,10 +16,10 @@ import shutil
|
||||||
import urllib
|
import urllib
|
||||||
import httplib
|
import httplib
|
||||||
import tempfile
|
import tempfile
|
||||||
import threading
|
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
from test import test_support
|
from test import test_support
|
||||||
|
threading = test_support.import_module('threading')
|
||||||
|
|
||||||
|
|
||||||
class NoLogRequestHandler:
|
class NoLogRequestHandler:
|
||||||
|
|
|
@ -26,7 +26,6 @@ import os
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import array
|
import array
|
||||||
import threading
|
|
||||||
import random
|
import random
|
||||||
import unittest
|
import unittest
|
||||||
import weakref
|
import weakref
|
||||||
|
@ -38,6 +37,10 @@ from test import test_support as support
|
||||||
import codecs
|
import codecs
|
||||||
import io # C implementation of io
|
import io # C implementation of io
|
||||||
import _pyio as pyio # Python implementation of io
|
import _pyio as pyio # Python implementation of io
|
||||||
|
try:
|
||||||
|
import threading
|
||||||
|
except ImportError:
|
||||||
|
threading = None
|
||||||
|
|
||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
bytes = support.py3k_bytes
|
bytes = support.py3k_bytes
|
||||||
|
@ -749,6 +752,7 @@ class BufferedReaderTest(unittest.TestCase, CommonBufferedTests):
|
||||||
|
|
||||||
self.assertEquals(b"abcdefg", bufio.read())
|
self.assertEquals(b"abcdefg", bufio.read())
|
||||||
|
|
||||||
|
@unittest.skipUnless(threading, 'Threading required for this test.')
|
||||||
def test_threads(self):
|
def test_threads(self):
|
||||||
try:
|
try:
|
||||||
# Write out many bytes with exactly the same number of 0's,
|
# 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:
|
with self.open(support.TESTFN, "rb", buffering=0) as f:
|
||||||
self.assertEqual(f.read(), b"abc")
|
self.assertEqual(f.read(), b"abc")
|
||||||
|
|
||||||
|
@unittest.skipUnless(threading, 'Threading required for this test.')
|
||||||
def test_threads(self):
|
def test_threads(self):
|
||||||
try:
|
try:
|
||||||
# Write out many bytes from many threads and test they were
|
# 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:
|
with self.open(support.TESTFN, "w", errors="replace") as f:
|
||||||
self.assertEqual(f.errors, "replace")
|
self.assertEqual(f.errors, "replace")
|
||||||
|
|
||||||
|
@unittest.skipUnless(threading, 'Threading required for this test.')
|
||||||
def test_threads_write(self):
|
def test_threads_write(self):
|
||||||
# Issue6750: concurrent writes could duplicate data
|
# Issue6750: concurrent writes could duplicate data
|
||||||
event = threading.Event()
|
event = threading.Event()
|
||||||
|
|
|
@ -41,11 +41,13 @@ import tempfile
|
||||||
from test.test_support import captured_stdout, run_with_locale, run_unittest,\
|
from test.test_support import captured_stdout, run_with_locale, run_unittest,\
|
||||||
find_unused_port
|
find_unused_port
|
||||||
import textwrap
|
import textwrap
|
||||||
import threading
|
|
||||||
import unittest
|
import unittest
|
||||||
import warnings
|
import warnings
|
||||||
import weakref
|
import weakref
|
||||||
|
try:
|
||||||
|
import threading
|
||||||
|
except ImportError:
|
||||||
|
threading = None
|
||||||
|
|
||||||
class BaseTest(unittest.TestCase):
|
class BaseTest(unittest.TestCase):
|
||||||
|
|
||||||
|
@ -765,6 +767,7 @@ class LogRecordSocketReceiver(ThreadingTCPServer):
|
||||||
self.server_close()
|
self.server_close()
|
||||||
|
|
||||||
|
|
||||||
|
@unittest.skipUnless(threading, 'Threading required for this test.')
|
||||||
class SocketHandlerTest(BaseTest):
|
class SocketHandlerTest(BaseTest):
|
||||||
|
|
||||||
"""Test for SocketHandler objects."""
|
"""Test for SocketHandler objects."""
|
||||||
|
@ -1659,6 +1662,7 @@ class ConfigDictTest(BaseTest):
|
||||||
def test_config13_failure(self):
|
def test_config13_failure(self):
|
||||||
self.assertRaises(StandardError, self.apply_config, self.config13)
|
self.assertRaises(StandardError, self.apply_config, self.config13)
|
||||||
|
|
||||||
|
@unittest.skipUnless(threading, 'listen() needs threading to work')
|
||||||
def setup_via_listener(self, text):
|
def setup_via_listener(self, text):
|
||||||
port = find_unused_port()
|
port = find_unused_port()
|
||||||
t = logging.config.listen(port)
|
t = logging.config.listen(port)
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
# a real test suite
|
# a real test suite
|
||||||
|
|
||||||
import poplib
|
import poplib
|
||||||
import threading
|
|
||||||
import asyncore
|
import asyncore
|
||||||
import asynchat
|
import asynchat
|
||||||
import socket
|
import socket
|
||||||
|
@ -15,6 +14,7 @@ import errno
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
from test import test_support
|
from test import test_support
|
||||||
from test.test_support import HOST
|
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
|
# the dummy data returned by server when LIST and RETR commands are issued
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
# Some simple queue module tests, plus some failure conditions
|
# Some simple queue module tests, plus some failure conditions
|
||||||
# to ensure the Queue locks remain stable.
|
# to ensure the Queue locks remain stable.
|
||||||
import Queue
|
import Queue
|
||||||
import threading
|
|
||||||
import time
|
import time
|
||||||
import unittest
|
import unittest
|
||||||
from test import test_support
|
from test import test_support
|
||||||
|
threading = test_support.import_module('threading')
|
||||||
|
|
||||||
QUEUE_SIZE = 5
|
QUEUE_SIZE = 5
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import asyncore
|
import asyncore
|
||||||
import email.utils
|
import email.utils
|
||||||
import socket
|
import socket
|
||||||
import threading
|
|
||||||
import smtpd
|
import smtpd
|
||||||
import smtplib
|
import smtplib
|
||||||
import StringIO
|
import StringIO
|
||||||
|
@ -9,9 +8,14 @@ import sys
|
||||||
import time
|
import time
|
||||||
import select
|
import select
|
||||||
|
|
||||||
from unittest import TestCase
|
import unittest
|
||||||
from test import test_support
|
from test import test_support
|
||||||
|
|
||||||
|
try:
|
||||||
|
import threading
|
||||||
|
except ImportError:
|
||||||
|
threading = None
|
||||||
|
|
||||||
HOST = test_support.HOST
|
HOST = test_support.HOST
|
||||||
|
|
||||||
def server(evt, buf, serv):
|
def server(evt, buf, serv):
|
||||||
|
@ -36,7 +40,8 @@ def server(evt, buf, serv):
|
||||||
serv.close()
|
serv.close()
|
||||||
evt.set()
|
evt.set()
|
||||||
|
|
||||||
class GeneralTests(TestCase):
|
@unittest.skipUnless(threading, 'Threading required for this test.')
|
||||||
|
class GeneralTests(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self._threads = test_support.threading_setup()
|
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 server times out, causing the test to fail.
|
||||||
|
|
||||||
# Test behavior of smtpd.DebuggingServer
|
# Test behavior of smtpd.DebuggingServer
|
||||||
class DebuggingServerTests(TestCase):
|
@unittest.skipUnless(threading, 'Threading required for this test.')
|
||||||
|
class DebuggingServerTests(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
# temporarily replace sys.stdout to capture DebuggingServer output
|
# temporarily replace sys.stdout to capture DebuggingServer output
|
||||||
|
@ -233,7 +239,7 @@ class DebuggingServerTests(TestCase):
|
||||||
self.assertEqual(self.output.getvalue(), mexpect)
|
self.assertEqual(self.output.getvalue(), mexpect)
|
||||||
|
|
||||||
|
|
||||||
class NonConnectingTests(TestCase):
|
class NonConnectingTests(unittest.TestCase):
|
||||||
|
|
||||||
def testNotConnected(self):
|
def testNotConnected(self):
|
||||||
# Test various operations on an unconnected SMTP object that
|
# 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
|
# 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):
|
def setUp(self):
|
||||||
self.old_stdout = sys.stdout
|
self.old_stdout = sys.stdout
|
||||||
|
@ -378,7 +385,8 @@ class SimSMTPServer(smtpd.SMTPServer):
|
||||||
|
|
||||||
# Test various SMTP & ESMTP commands/behaviors that require a simulated server
|
# Test various SMTP & ESMTP commands/behaviors that require a simulated server
|
||||||
# (i.e., something with more features than DebuggingServer)
|
# (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):
|
def setUp(self):
|
||||||
self._threads = test_support.threading_setup()
|
self._threads = test_support.threading_setup()
|
||||||
|
|
|
@ -6,7 +6,6 @@ from test import test_support
|
||||||
import errno
|
import errno
|
||||||
import socket
|
import socket
|
||||||
import select
|
import select
|
||||||
import thread, threading
|
|
||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
import Queue
|
import Queue
|
||||||
|
@ -16,6 +15,13 @@ import array
|
||||||
from weakref import proxy
|
from weakref import proxy
|
||||||
import signal
|
import signal
|
||||||
|
|
||||||
|
try:
|
||||||
|
import thread
|
||||||
|
import threading
|
||||||
|
except ImportError:
|
||||||
|
thread = None
|
||||||
|
threading = None
|
||||||
|
|
||||||
HOST = test_support.HOST
|
HOST = test_support.HOST
|
||||||
MSG = 'Michael Gilfix was here\n'
|
MSG = 'Michael Gilfix was here\n'
|
||||||
|
|
||||||
|
@ -550,6 +556,7 @@ class GeneralModuleTests(unittest.TestCase):
|
||||||
s.ioctl(socket.SIO_KEEPALIVE_VALS, (1, 100, 100))
|
s.ioctl(socket.SIO_KEEPALIVE_VALS, (1, 100, 100))
|
||||||
|
|
||||||
|
|
||||||
|
@unittest.skipUnless(thread, 'Threading required for this test.')
|
||||||
class BasicTCPTest(SocketConnectedTest):
|
class BasicTCPTest(SocketConnectedTest):
|
||||||
|
|
||||||
def __init__(self, methodName='runTest'):
|
def __init__(self, methodName='runTest'):
|
||||||
|
@ -630,6 +637,7 @@ class BasicTCPTest(SocketConnectedTest):
|
||||||
self.serv_conn.send(MSG)
|
self.serv_conn.send(MSG)
|
||||||
self.serv_conn.shutdown(2)
|
self.serv_conn.shutdown(2)
|
||||||
|
|
||||||
|
@unittest.skipUnless(thread, 'Threading required for this test.')
|
||||||
class BasicUDPTest(ThreadedUDPSocketTest):
|
class BasicUDPTest(ThreadedUDPSocketTest):
|
||||||
|
|
||||||
def __init__(self, methodName='runTest'):
|
def __init__(self, methodName='runTest'):
|
||||||
|
@ -658,6 +666,7 @@ class BasicUDPTest(ThreadedUDPSocketTest):
|
||||||
def _testRecvFromNegative(self):
|
def _testRecvFromNegative(self):
|
||||||
self.cli.sendto(MSG, 0, (HOST, self.port))
|
self.cli.sendto(MSG, 0, (HOST, self.port))
|
||||||
|
|
||||||
|
@unittest.skipUnless(thread, 'Threading required for this test.')
|
||||||
class TCPCloserTest(ThreadedTCPSocketTest):
|
class TCPCloserTest(ThreadedTCPSocketTest):
|
||||||
|
|
||||||
def testClose(self):
|
def testClose(self):
|
||||||
|
@ -673,6 +682,7 @@ class TCPCloserTest(ThreadedTCPSocketTest):
|
||||||
self.cli.connect((HOST, self.port))
|
self.cli.connect((HOST, self.port))
|
||||||
time.sleep(1.0)
|
time.sleep(1.0)
|
||||||
|
|
||||||
|
@unittest.skipUnless(thread, 'Threading required for this test.')
|
||||||
class BasicSocketPairTest(SocketPairTest):
|
class BasicSocketPairTest(SocketPairTest):
|
||||||
|
|
||||||
def __init__(self, methodName='runTest'):
|
def __init__(self, methodName='runTest'):
|
||||||
|
@ -692,6 +702,7 @@ class BasicSocketPairTest(SocketPairTest):
|
||||||
msg = self.cli.recv(1024)
|
msg = self.cli.recv(1024)
|
||||||
self.assertEqual(msg, MSG)
|
self.assertEqual(msg, MSG)
|
||||||
|
|
||||||
|
@unittest.skipUnless(thread, 'Threading required for this test.')
|
||||||
class NonBlockingTCPTests(ThreadedTCPSocketTest):
|
class NonBlockingTCPTests(ThreadedTCPSocketTest):
|
||||||
|
|
||||||
def __init__(self, methodName='runTest'):
|
def __init__(self, methodName='runTest'):
|
||||||
|
@ -760,6 +771,7 @@ class NonBlockingTCPTests(ThreadedTCPSocketTest):
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
self.cli.send(MSG)
|
self.cli.send(MSG)
|
||||||
|
|
||||||
|
@unittest.skipUnless(thread, 'Threading required for this test.')
|
||||||
class FileObjectClassTestCase(SocketConnectedTest):
|
class FileObjectClassTestCase(SocketConnectedTest):
|
||||||
|
|
||||||
bufsize = -1 # Use default buffer size
|
bufsize = -1 # Use default buffer size
|
||||||
|
@ -989,6 +1001,7 @@ class NetworkConnectionNoServer(unittest.TestCase):
|
||||||
lambda: socket.create_connection((HOST, port))
|
lambda: socket.create_connection((HOST, port))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@unittest.skipUnless(thread, 'Threading required for this test.')
|
||||||
class NetworkConnectionAttributesTest(SocketTCPTest, ThreadableTest):
|
class NetworkConnectionAttributesTest(SocketTCPTest, ThreadableTest):
|
||||||
|
|
||||||
def __init__(self, methodName='runTest'):
|
def __init__(self, methodName='runTest'):
|
||||||
|
@ -1051,6 +1064,7 @@ class NetworkConnectionAttributesTest(SocketTCPTest, ThreadableTest):
|
||||||
self.cli = socket.create_connection((HOST, self.port), 30)
|
self.cli = socket.create_connection((HOST, self.port), 30)
|
||||||
self.assertEqual(self.cli.gettimeout(), 30)
|
self.assertEqual(self.cli.gettimeout(), 30)
|
||||||
|
|
||||||
|
@unittest.skipUnless(thread, 'Threading required for this test.')
|
||||||
class NetworkConnectionBehaviourTest(SocketTCPTest, ThreadableTest):
|
class NetworkConnectionBehaviourTest(SocketTCPTest, ThreadableTest):
|
||||||
|
|
||||||
def __init__(self, methodName='runTest'):
|
def __init__(self, methodName='runTest'):
|
||||||
|
@ -1220,6 +1234,7 @@ class TestLinuxAbstractNamespace(unittest.TestCase):
|
||||||
self.assertRaises(socket.error, s.bind, address)
|
self.assertRaises(socket.error, s.bind, address)
|
||||||
|
|
||||||
|
|
||||||
|
@unittest.skipUnless(thread, 'Threading required for this test.')
|
||||||
class BufferIOTest(SocketConnectedTest):
|
class BufferIOTest(SocketConnectedTest):
|
||||||
"""
|
"""
|
||||||
Test the buffer versions of socket.recv() and socket.send().
|
Test the buffer versions of socket.recv() and socket.send().
|
||||||
|
|
|
@ -9,12 +9,15 @@ import select
|
||||||
import signal
|
import signal
|
||||||
import socket
|
import socket
|
||||||
import tempfile
|
import tempfile
|
||||||
import threading
|
|
||||||
import unittest
|
import unittest
|
||||||
import SocketServer
|
import SocketServer
|
||||||
|
|
||||||
import test.test_support
|
import test.test_support
|
||||||
from test.test_support import reap_children, reap_threads, verbose
|
from test.test_support import reap_children, reap_threads, verbose
|
||||||
|
try:
|
||||||
|
import threading
|
||||||
|
except ImportError:
|
||||||
|
threading = None
|
||||||
|
|
||||||
test.test_support.requires("network")
|
test.test_support.requires("network")
|
||||||
|
|
||||||
|
@ -119,6 +122,7 @@ class SocketServerTest(unittest.TestCase):
|
||||||
self.assertEquals(server.server_address, server.socket.getsockname())
|
self.assertEquals(server.server_address, server.socket.getsockname())
|
||||||
return server
|
return server
|
||||||
|
|
||||||
|
@unittest.skipUnless(threading, 'Threading required for this test.')
|
||||||
@reap_threads
|
@reap_threads
|
||||||
def run_server(self, svrcls, hdlrbase, testfunc):
|
def run_server(self, svrcls, hdlrbase, testfunc):
|
||||||
server = self.make_server(self.pickaddr(svrcls.address_family),
|
server = self.make_server(self.pickaddr(svrcls.address_family),
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
import socket
|
import socket
|
||||||
import threading
|
|
||||||
import telnetlib
|
import telnetlib
|
||||||
import time
|
import time
|
||||||
import Queue
|
import Queue
|
||||||
|
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
from test import test_support
|
from test import test_support
|
||||||
|
threading = test_support.import_module('threading')
|
||||||
|
|
||||||
HOST = test_support.HOST
|
HOST = test_support.HOST
|
||||||
EOF_sigil = object()
|
EOF_sigil = object()
|
||||||
|
|
|
@ -2,7 +2,7 @@ import os
|
||||||
import unittest
|
import unittest
|
||||||
import random
|
import random
|
||||||
from test import test_support
|
from test import test_support
|
||||||
import thread
|
thread = test_support.import_module('thread')
|
||||||
import time
|
import time
|
||||||
import sys
|
import sys
|
||||||
import weakref
|
import weakref
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
# complains several times about module random having no attribute
|
# complains several times about module random having no attribute
|
||||||
# randrange, and then Python hangs.
|
# randrange, and then Python hangs.
|
||||||
|
|
||||||
import thread
|
|
||||||
import unittest
|
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()
|
critical_section = thread.allocate_lock()
|
||||||
done = thread.allocate_lock()
|
done = thread.allocate_lock()
|
||||||
|
|
|
@ -16,11 +16,10 @@ provoking a 2.0 failure under Linux.
|
||||||
NUM_THREADS = 20
|
NUM_THREADS = 20
|
||||||
FILES_PER_THREAD = 50
|
FILES_PER_THREAD = 50
|
||||||
|
|
||||||
import thread # If this fails, we can't test this module
|
|
||||||
import threading
|
|
||||||
import tempfile
|
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 unittest
|
||||||
import StringIO
|
import StringIO
|
||||||
from traceback import print_exc
|
from traceback import print_exc
|
||||||
|
|
|
@ -5,8 +5,8 @@ from test.test_support import verbose
|
||||||
import random
|
import random
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import threading
|
thread = test.test_support.import_module('thread')
|
||||||
import thread
|
threading = test.test_support.import_module('threading')
|
||||||
import time
|
import time
|
||||||
import unittest
|
import unittest
|
||||||
import weakref
|
import weakref
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import unittest
|
import unittest
|
||||||
from doctest import DocTestSuite
|
from doctest import DocTestSuite
|
||||||
from test import test_support
|
from test import test_support
|
||||||
import threading
|
threading = test_support.import_module('threading')
|
||||||
import weakref
|
import weakref
|
||||||
import gc
|
import gc
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
"""PyUnit testing that threads honor our signal semantics"""
|
"""PyUnit testing that threads honor our signal semantics"""
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
import thread
|
|
||||||
import signal
|
import signal
|
||||||
import os
|
import os
|
||||||
import sys
|
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':
|
if sys.platform[:3] in ('win', 'os2') or sys.platform=='riscos':
|
||||||
raise unittest.SkipTest, "Can't test signal on %s" % sys.platform
|
raise unittest.SkipTest, "Can't test signal on %s" % sys.platform
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
import threading
|
|
||||||
import urlparse
|
import urlparse
|
||||||
import urllib2
|
import urllib2
|
||||||
import BaseHTTPServer
|
import BaseHTTPServer
|
||||||
|
@ -8,6 +7,7 @@ import unittest
|
||||||
import hashlib
|
import hashlib
|
||||||
from test import test_support
|
from test import test_support
|
||||||
mimetools = test_support.import_module('mimetools', deprecated=True)
|
mimetools = test_support.import_module('mimetools', deprecated=True)
|
||||||
|
threading = test_support.import_module('threading')
|
||||||
|
|
||||||
# Loopback http server infrastructure
|
# Loopback http server infrastructure
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,8 @@ Extension Modules
|
||||||
Tests
|
Tests
|
||||||
-----
|
-----
|
||||||
|
|
||||||
- Issue #7449: Fix many tests to support Python compiled without thread support
|
- Issue #7449: Fix many tests to support Python compiled without thread
|
||||||
|
support. Patches written by Jerry Seutter.
|
||||||
|
|
||||||
- Issue #8108: test_ftplib's non-blocking SSL server now has proper handling
|
- Issue #8108: test_ftplib's non-blocking SSL server now has proper handling
|
||||||
of SSL shutdowns.
|
of SSL shutdowns.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue