summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorZachary Ware <zachary.ware@gmail.com>2013-12-10 20:09:20 (GMT)
committerZachary Ware <zachary.ware@gmail.com>2013-12-10 20:09:20 (GMT)
commit1f70221b861a3714735251d57695b2f472d0599b (patch)
tree945cd43b04b6351e71c23aa0cb19f6fab1f3ddda /Lib
parent284164b47638e4e71a933ce136a33fdd352f7bac (diff)
downloadcpython-1f70221b861a3714735251d57695b2f472d0599b.zip
cpython-1f70221b861a3714735251d57695b2f472d0599b.tar.gz
cpython-1f70221b861a3714735251d57695b2f472d0599b.tar.bz2
Issue #19572: More silently skipped tests explicitly skipped.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/string_tests.py44
-rw-r--r--Lib/test/test_aepack.py8
-rwxr-xr-xLib/test/test_array.py2
-rwxr-xr-xLib/test/test_bsddb.py23
-rw-r--r--Lib/test/test_builtin.py109
-rw-r--r--Lib/test/test_cfgparser.py12
-rw-r--r--Lib/test/test_cmath.py2
-rw-r--r--Lib/test/test_codecencodings_iso2022.py1
-rw-r--r--Lib/test/test_decimal.py18
-rw-r--r--Lib/test/test_descr.py3
-rw-r--r--Lib/test/test_dis.py2
-rw-r--r--Lib/test/test_dumbdbm.py6
-rw-r--r--Lib/test/test_fileio.py42
-rw-r--r--Lib/test/test_float.py2
-rw-r--r--Lib/test/test_functools.py8
-rw-r--r--Lib/test/test_getargs2.py17
-rw-r--r--Lib/test/test_grp.py4
-rw-r--r--Lib/test/test_imp.py12
-rw-r--r--Lib/test/test_index.py7
-rw-r--r--Lib/test/test_io.py12
-rw-r--r--Lib/test/test_iter.py4
-rw-r--r--Lib/test/test_macos.py11
-rw-r--r--Lib/test/test_macostools.py52
-rw-r--r--Lib/test/test_memoryview.py10
-rw-r--r--Lib/test/test_multibytecodec.py88
-rw-r--r--Lib/test/test_multibytecodec_support.py4
-rw-r--r--Lib/test/test_multiprocessing.py14
-rw-r--r--Lib/test/test_nis.py6
-rw-r--r--Lib/test/test_os.py5
-rw-r--r--Lib/test/test_posix.py9
-rw-r--r--Lib/test/test_pwd.py17
-rw-r--r--Lib/test/test_re.py6
-rw-r--r--Lib/test/test_repr.py2
-rw-r--r--Lib/test/test_resource.py124
-rw-r--r--Lib/test/test_shutil.py12
-rw-r--r--Lib/test/test_site.py1
-rw-r--r--Lib/test/test_socket.py18
-rw-r--r--Lib/test/test_ssl.py3
-rw-r--r--Lib/test/test_str.py12
-rw-r--r--Lib/test/test_strptime.py6
-rw-r--r--Lib/test/test_tarfile.py17
-rw-r--r--Lib/test/test_telnetlib.py1
-rw-r--r--Lib/test/test_tempfile.py12
-rw-r--r--Lib/test/test_thread.py50
-rw-r--r--Lib/test/test_threading.py16
-rw-r--r--Lib/test/test_timeout.py3
-rw-r--r--Lib/test/test_unicode.py10
-rw-r--r--Lib/test/test_urllibnet.py7
-rw-r--r--Lib/test/test_warnings.py2
-rw-r--r--Lib/test/test_xmlrpc.py12
-rw-r--r--Lib/test/test_zipimport.py2
51 files changed, 424 insertions, 446 deletions
diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py
index d5ab6ae..837c1e8 100644
--- a/Lib/test/string_tests.py
+++ b/Lib/test/string_tests.py
@@ -750,10 +750,10 @@ class CommonTest(unittest.TestCase):
self.checkraises(TypeError, 'hello', 'replace', 42, 'h')
self.checkraises(TypeError, 'hello', 'replace', 'h', 42)
+ @unittest.skipIf(sys.maxint > (1 << 32) or struct.calcsize('P') != 4,
+ 'only applies to 32-bit platforms')
def test_replace_overflow(self):
# Check for overflow checking on 32 bit machines
- if sys.maxint != 2147483647 or struct.calcsize("P") > 4:
- return
A2_16 = "A" * (2**16)
self.checkraises(OverflowError, A2_16, "replace", "", A2_16)
self.checkraises(OverflowError, A2_16, "replace", "A", A2_16)
@@ -1286,27 +1286,27 @@ class MixinStrUserStringTest:
# Additional tests that only work with
# 8bit compatible object, i.e. str and UserString
- if test_support.have_unicode:
- def test_encoding_decoding(self):
- codecs = [('rot13', 'uryyb jbeyq'),
- ('base64', 'aGVsbG8gd29ybGQ=\n'),
- ('hex', '68656c6c6f20776f726c64'),
- ('uu', 'begin 666 <data>\n+:&5L;&\\@=V]R;&0 \n \nend\n')]
- for encoding, data in codecs:
- self.checkequal(data, 'hello world', 'encode', encoding)
- self.checkequal('hello world', data, 'decode', encoding)
- # zlib is optional, so we make the test optional too...
- try:
- import zlib
- except ImportError:
- pass
- else:
- data = 'x\x9c\xcbH\xcd\xc9\xc9W(\xcf/\xcaI\x01\x00\x1a\x0b\x04]'
- self.checkequal(data, 'hello world', 'encode', 'zlib')
- self.checkequal('hello world', data, 'decode', 'zlib')
+ @unittest.skipUnless(test_support.have_unicode, 'no unicode support')
+ def test_encoding_decoding(self):
+ codecs = [('rot13', 'uryyb jbeyq'),
+ ('base64', 'aGVsbG8gd29ybGQ=\n'),
+ ('hex', '68656c6c6f20776f726c64'),
+ ('uu', 'begin 666 <data>\n+:&5L;&\\@=V]R;&0 \n \nend\n')]
+ for encoding, data in codecs:
+ self.checkequal(data, 'hello world', 'encode', encoding)
+ self.checkequal('hello world', data, 'decode', encoding)
+ # zlib is optional, so we make the test optional too...
+ try:
+ import zlib
+ except ImportError:
+ pass
+ else:
+ data = 'x\x9c\xcbH\xcd\xc9\xc9W(\xcf/\xcaI\x01\x00\x1a\x0b\x04]'
+ self.checkequal(data, 'hello world', 'encode', 'zlib')
+ self.checkequal('hello world', data, 'decode', 'zlib')
- self.checkraises(TypeError, 'xyz', 'decode', 42)
- self.checkraises(TypeError, 'xyz', 'encode', 42)
+ self.checkraises(TypeError, 'xyz', 'decode', 42)
+ self.checkraises(TypeError, 'xyz', 'encode', 42)
class MixinStrUnicodeTest:
diff --git a/Lib/test/test_aepack.py b/Lib/test/test_aepack.py
index f4ea25b..84c8609 100644
--- a/Lib/test/test_aepack.py
+++ b/Lib/test/test_aepack.py
@@ -59,10 +59,10 @@ class TestAepack(unittest.TestCase):
try:
import Carbon.File
except:
- return
+ self.skipTest('Carbon.File not available')
if not hasattr(Carbon.File, "FSSpec"):
- return
+ self.skipTest('Carbon.File.FSSpec not available')
o = Carbon.File.FSSpec(os.curdir)
packed = aepack.pack(o)
unpacked = aepack.unpack(packed)
@@ -72,9 +72,9 @@ class TestAepack(unittest.TestCase):
try:
import Carbon.File
except:
- return
+ self.skipTest('Carbon.File not available')
if not hasattr(Carbon.File, "FSSpec"):
- return
+ self.skipTest('Carbon.File.FSSpec not available')
o = Carbon.File.FSSpec(os.curdir).NewAliasMinimal()
packed = aepack.pack(o)
unpacked = aepack.unpack(packed)
diff --git a/Lib/test/test_array.py b/Lib/test/test_array.py
index 75a24ea..74594e4 100755
--- a/Lib/test/test_array.py
+++ b/Lib/test/test_array.py
@@ -754,7 +754,7 @@ class BaseTest(unittest.TestCase):
try:
import gc
except ImportError:
- return
+ self.skipTest('gc module not available')
a = array.array(self.typecode)
l = [iter(a)]
l.append(l)
diff --git a/Lib/test/test_bsddb.py b/Lib/test/test_bsddb.py
index d1ee0a1..3a10fab 100755
--- a/Lib/test/test_bsddb.py
+++ b/Lib/test/test_bsddb.py
@@ -47,10 +47,7 @@ class TestBSDDB(unittest.TestCase):
self.assertIn('discovered', self.f.values())
def test_close_and_reopen(self):
- if self.fname is None:
- # if we're using an in-memory only db, we can't reopen it
- # so finish here.
- return
+ self.assertIsNotNone(self.fname)
self.f.close()
self.f = self.openmethod[0](self.fname, 'w')
for k, v in self.d.iteritems():
@@ -309,8 +306,7 @@ class TestBSDDB(unittest.TestCase):
self.assertEqual(self.f[k], v)
def test_keyordering(self):
- if self.openmethod[0] is not bsddb.btopen:
- return
+ self.assertIs(self.openmethod[0], bsddb.btopen)
keys = self.d.keys()
keys.sort()
self.assertEqual(self.f.first()[0], keys[0])
@@ -327,19 +323,34 @@ class TestBTree_InMemory(TestBSDDB):
fname = None
openmethod = [bsddb.btopen]
+ # if we're using an in-memory only db, we can't reopen it
+ test_close_and_reopen = None
+
class TestBTree_InMemory_Truncate(TestBSDDB):
fname = None
openflag = 'n'
openmethod = [bsddb.btopen]
+ # if we're using an in-memory only db, we can't reopen it
+ test_close_and_reopen = None
+
class TestHashTable(TestBSDDB):
fname = test_support.TESTFN
openmethod = [bsddb.hashopen]
+ # keyordering is specific to btopen method
+ test_keyordering = None
+
class TestHashTable_InMemory(TestBSDDB):
fname = None
openmethod = [bsddb.hashopen]
+ # if we're using an in-memory only db, we can't reopen it
+ test_close_and_reopen = None
+
+ # keyordering is specific to btopen method
+ test_keyordering = None
+
## # (bsddb.rnopen,'Record Numbers'), 'put' for RECNO for bsddb 1.85
## # appears broken... at least on
## # Solaris Intel - rmasse 1/97
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index b6de524..15581d9 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -447,59 +447,6 @@ class BuiltinTest(unittest.TestCase):
return 'a'
self.assertRaises(TypeError, eval, 'dir()', globals(), C())
- # Done outside of the method test_z to get the correct scope
- z = 0
- f = open(TESTFN, 'w')
- f.write('z = z+1\n')
- f.write('z = z*2\n')
- f.close()
- with check_py3k_warnings(("execfile.. not supported in 3.x",
- DeprecationWarning)):
- execfile(TESTFN)
-
- def test_execfile(self):
- global numruns
- if numruns:
- return
- numruns += 1
-
- globals = {'a': 1, 'b': 2}
- locals = {'b': 200, 'c': 300}
-
- self.assertEqual(self.__class__.z, 2)
- globals['z'] = 0
- execfile(TESTFN, globals)
- self.assertEqual(globals['z'], 2)
- locals['z'] = 0
- execfile(TESTFN, globals, locals)
- self.assertEqual(locals['z'], 2)
-
- class M:
- "Test mapping interface versus possible calls from execfile()."
- def __init__(self):
- self.z = 10
- def __getitem__(self, key):
- if key == 'z':
- return self.z
- raise KeyError
- def __setitem__(self, key, value):
- if key == 'z':
- self.z = value
- return
- raise KeyError
-
- locals = M()
- locals['z'] = 0
- execfile(TESTFN, globals, locals)
- self.assertEqual(locals['z'], 2)
-
- unlink(TESTFN)
- self.assertRaises(TypeError, execfile)
- self.assertRaises(TypeError, execfile, TESTFN, {}, ())
- import os
- self.assertRaises(IOError, execfile, os.curdir)
- self.assertRaises(IOError, execfile, "I_dont_exist")
-
def test_filter(self):
self.assertEqual(filter(lambda c: 'a' <= c <= 'z', 'Hello World'), 'elloorld')
self.assertEqual(filter(None, [1, 'hello', [], [3], '', None, 9, 0]), [1, 'hello', [3], 9])
@@ -1646,6 +1593,56 @@ class BuiltinTest(unittest.TestCase):
self.assertRaises(ValueError, x.translate, "1", 1)
self.assertRaises(TypeError, x.translate, "1"*256, 1)
+class TestExecFile(unittest.TestCase):
+ # Done outside of the method test_z to get the correct scope
+ z = 0
+ f = open(TESTFN, 'w')
+ f.write('z = z+1\n')
+ f.write('z = z*2\n')
+ f.close()
+ with check_py3k_warnings(("execfile.. not supported in 3.x",
+ DeprecationWarning)):
+ execfile(TESTFN)
+
+ def test_execfile(self):
+ globals = {'a': 1, 'b': 2}
+ locals = {'b': 200, 'c': 300}
+
+ self.assertEqual(self.__class__.z, 2)
+ globals['z'] = 0
+ execfile(TESTFN, globals)
+ self.assertEqual(globals['z'], 2)
+ locals['z'] = 0
+ execfile(TESTFN, globals, locals)
+ self.assertEqual(locals['z'], 2)
+
+ class M:
+ "Test mapping interface versus possible calls from execfile()."
+ def __init__(self):
+ self.z = 10
+ def __getitem__(self, key):
+ if key == 'z':
+ return self.z
+ raise KeyError
+ def __setitem__(self, key, value):
+ if key == 'z':
+ self.z = value
+ return
+ raise KeyError
+
+ locals = M()
+ locals['z'] = 0
+ execfile(TESTFN, globals, locals)
+ self.assertEqual(locals['z'], 2)
+
+ unlink(TESTFN)
+ self.assertRaises(TypeError, execfile)
+ self.assertRaises(TypeError, execfile, TESTFN, {}, ())
+ import os
+ self.assertRaises(IOError, execfile, os.curdir)
+ self.assertRaises(IOError, execfile, "I_dont_exist")
+
+
class TestSorted(unittest.TestCase):
def test_basic(self):
@@ -1693,6 +1690,12 @@ def _run_unittest(*args):
run_unittest(*args)
def test_main(verbose=None):
+ global numruns
+ if not numruns:
+ with check_py3k_warnings(
+ (".+ not supported in 3.x", DeprecationWarning)):
+ run_unittest(TestExecFile)
+ numruns += 1
test_classes = (BuiltinTest, TestSorted)
_run_unittest(*test_classes)
diff --git a/Lib/test/test_cfgparser.py b/Lib/test/test_cfgparser.py
index f0073f0..df65f6e 100644
--- a/Lib/test/test_cfgparser.py
+++ b/Lib/test/test_cfgparser.py
@@ -284,13 +284,17 @@ class TestCaseBase(unittest.TestCase):
cf.set("sect", "option1", mystr("splat"))
cf.set("sect", "option2", "splat")
cf.set("sect", "option2", mystr("splat"))
+
+ def test_set_unicode(self):
try:
unicode
except NameError:
- pass
- else:
- cf.set("sect", "option1", unicode("splat"))
- cf.set("sect", "option2", unicode("splat"))
+ self.skipTest('no unicode support')
+
+ cf = self.fromstring("[sect]\n"
+ "option1=foo\n")
+ cf.set("sect", "option1", unicode("splat"))
+ cf.set("sect", "option2", unicode("splat"))
def test_read_returns_file_list(self):
file1 = test_support.findfile("cfgparser.1")
diff --git a/Lib/test/test_cmath.py b/Lib/test/test_cmath.py
index 8b5c4bf..5d10261 100644
--- a/Lib/test/test_cmath.py
+++ b/Lib/test/test_cmath.py
@@ -282,7 +282,7 @@ class CMathTests(unittest.TestCase):
def test_specific_values(self):
if not float.__getformat__("double").startswith("IEEE"):
- return
+ self.skipTest('needs IEEE double')
def rect_complex(z):
"""Wrapped version of rect that accepts a complex number instead of
diff --git a/Lib/test/test_codecencodings_iso2022.py b/Lib/test/test_codecencodings_iso2022.py
index 9d1d2af..343308c 100644
--- a/Lib/test/test_codecencodings_iso2022.py
+++ b/Lib/test/test_codecencodings_iso2022.py
@@ -36,6 +36,7 @@ class Test_ISO2022_KR(test_multibytecodec_support.TestBase, unittest.TestCase):
# iso2022_kr.txt cannot be used to test "chunk coding": the escape
# sequence is only written on the first line
+ @unittest.skip('iso2022_kr.txt cannot be used to test "chunk coding"')
def test_chunkcoding(self):
pass
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 3e184ef..87e8816 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -223,7 +223,6 @@ class DecimalTest(unittest.TestCase):
global skip_expected
if skip_expected:
raise unittest.SkipTest
- return
with open(file) as f:
for line in f:
line = line.replace('\r\n', '').replace('\n', '')
@@ -234,7 +233,6 @@ class DecimalTest(unittest.TestCase):
#Exception raised where there shouldn't have been one.
self.fail('Exception "'+exception.__class__.__name__ + '" raised on line '+line)
- return
def eval_line(self, s):
if s.find(' -> ') >= 0 and s[:2] != '--' and not s.startswith(' --'):
@@ -391,7 +389,6 @@ class DecimalTest(unittest.TestCase):
'Incorrect answer for ' + s + ' -- got ' + result)
self.assertItemsEqual(myexceptions, theirexceptions,
'Incorrect flags set in ' + s + ' -- got ' + str(myexceptions))
- return
def getexceptions(self):
return [e for e in Signals if self.context.flags[e]]
@@ -834,7 +831,7 @@ class DecimalFormatTest(unittest.TestCase):
try:
from locale import CHAR_MAX
except ImportError:
- return
+ self.skipTest('locale.CHAR_MAX not available')
# Set up some localeconv-like dictionaries
en_US = {
@@ -1196,7 +1193,6 @@ def thfunc1(cls):
cls.assertEqual(test1, Decimal('0.3333333333333333333333333333'))
cls.assertEqual(test2, Decimal('0.3333333333333333333333333333'))
- return
def thfunc2(cls):
d1 = Decimal(1)
@@ -1210,17 +1206,12 @@ def thfunc2(cls):
cls.assertEqual(test1, Decimal('0.3333333333333333333333333333'))
cls.assertEqual(test2, Decimal('0.333333333333333333'))
- return
+@unittest.skipUnless(threading, 'threading required')
class DecimalUseOfContextTest(unittest.TestCase):
'''Unit tests for Use of Context cases in Decimal.'''
- try:
- import threading
- except ImportError:
- threading = None
-
# Take care executing this test from IDLE, there's an issue in threading
# that hangs IDLE and I couldn't find it
@@ -1239,10 +1230,6 @@ class DecimalUseOfContextTest(unittest.TestCase):
self.finish1.wait()
self.finish2.wait()
- return
-
- if threading is None:
- del test_threading
class DecimalUsabilityTest(unittest.TestCase):
@@ -1540,7 +1527,6 @@ class DecimalUsabilityTest(unittest.TestCase):
self.assertEqual(d1._sign, b1._sign)
self.assertEqual(d1._int, b1._int)
self.assertEqual(d1._exp, b1._exp)
- return
Decimal(d1)
self.assertEqual(d1._sign, b1._sign)
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index 63a06cd..15a3049 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -1059,11 +1059,12 @@ order (MRO) for bases """
c.abc = 5
self.assertEqual(c.abc, 5)
+ def test_unicode_slots(self):
# Test unicode slot names
try:
unicode
except NameError:
- pass
+ self.skipTest('no unicode support')
else:
# Test a single unicode string is not expanded as a sequence.
class C(object):
diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py
index 6ce4b79..da5ba4b 100644
--- a/Lib/test/test_dis.py
+++ b/Lib/test/test_dis.py
@@ -125,6 +125,8 @@ class DisTests(unittest.TestCase):
# so fails if the tests are run with -O. Skip this test then.
if __debug__:
self.do_disassembly_test(bug1333982, dis_bug1333982)
+ else:
+ self.skipTest('need asserts, run without -O')
def test_big_linenos(self):
def func(count):
diff --git a/Lib/test/test_dumbdbm.py b/Lib/test/test_dumbdbm.py
index 041fac1..abdfbc0 100644
--- a/Lib/test/test_dumbdbm.py
+++ b/Lib/test/test_dumbdbm.py
@@ -38,11 +38,9 @@ class DumbDBMTestCase(unittest.TestCase):
self.read_helper(f)
f.close()
+ @unittest.skipUnless(hasattr(os, 'chmod'), 'os.chmod not available')
+ @unittest.skipUnless(hasattr(os, 'umask'), 'os.umask not available')
def test_dumbdbm_creation_mode(self):
- # On platforms without chmod, don't do anything.
- if not (hasattr(os, 'chmod') and hasattr(os, 'umask')):
- return
-
try:
old_umask = os.umask(0002)
f = dumbdbm.open(_fname, 'c', 0637)
diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py
index e7955cc..c2a63ad 100644
--- a/Lib/test/test_fileio.py
+++ b/Lib/test/test_fileio.py
@@ -283,28 +283,29 @@ class OtherFileTests(unittest.TestCase):
self.assertEqual(f.seekable(), True)
self.assertEqual(f.isatty(), False)
f.close()
-
- if sys.platform != "win32":
- try:
- f = _FileIO("/dev/tty", "a")
- except EnvironmentError:
- # When run in a cron job there just aren't any
- # ttys, so skip the test. This also handles other
- # OS'es that don't support /dev/tty.
- pass
- else:
- self.assertEqual(f.readable(), False)
- self.assertEqual(f.writable(), True)
- if sys.platform != "darwin" and \
- 'bsd' not in sys.platform and \
- not sys.platform.startswith('sunos'):
- # Somehow /dev/tty appears seekable on some BSDs
- self.assertEqual(f.seekable(), False)
- self.assertEqual(f.isatty(), True)
- f.close()
finally:
os.unlink(TESTFN)
+ @unittest.skipIf(sys.platform == 'win32', 'no ttys on Windows')
+ def testAblesOnTTY(self):
+ try:
+ f = _FileIO("/dev/tty", "a")
+ except EnvironmentError:
+ # When run in a cron job there just aren't any
+ # ttys, so skip the test. This also handles other
+ # OS'es that don't support /dev/tty.
+ self.skipTest('need /dev/tty')
+ else:
+ self.assertEqual(f.readable(), False)
+ self.assertEqual(f.writable(), True)
+ if sys.platform != "darwin" and \
+ 'bsd' not in sys.platform and \
+ not sys.platform.startswith('sunos'):
+ # Somehow /dev/tty appears seekable on some BSDs
+ self.assertEqual(f.seekable(), False)
+ self.assertEqual(f.isatty(), True)
+ f.close()
+
def testInvalidModeStrings(self):
# check invalid mode strings
for mode in ("", "aU", "wU+", "rw", "rt"):
@@ -342,8 +343,7 @@ class OtherFileTests(unittest.TestCase):
try:
fn = TESTFN.encode("ascii")
except UnicodeEncodeError:
- # Skip test
- return
+ self.skipTest('could not encode %r to ascii' % TESTFN)
f = _FileIO(fn, "w")
try:
f.write(b"abc")
diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py
index 4246371..e6779c4 100644
--- a/Lib/test/test_float.py
+++ b/Lib/test/test_float.py
@@ -101,7 +101,7 @@ class GeneralFloatCases(unittest.TestCase):
# it still has to accept the normal python syntax
import locale
if not locale.localeconv()['decimal_point'] == ',':
- return
+ self.skipTest('decimal_point is not ","')
self.assertEqual(float(" 3.14 "), 3.14)
self.assertEqual(float("+3.14 "), 3.14)
diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py
index e9c243b..445ad9e 100644
--- a/Lib/test/test_functools.py
+++ b/Lib/test/test_functools.py
@@ -43,8 +43,6 @@ class TestPartial(unittest.TestCase):
self.assertEqual(p.args, (1, 2))
self.assertEqual(p.keywords, dict(a=10, b=20))
# attributes should not be writable
- if not isinstance(self.thetype, type):
- return
self.assertRaises(TypeError, setattr, p, 'func', map)
self.assertRaises(TypeError, setattr, p, 'args', (1, 2))
self.assertRaises(TypeError, setattr, p, 'keywords', dict(a=1, b=2))
@@ -180,8 +178,10 @@ class TestPythonPartial(TestPartial):
thetype = PythonPartial
# the python version isn't picklable
- def test_pickle(self): pass
- def test_setstate_refcount(self): pass
+ test_pickle = test_setstate_refcount = None
+
+ # the python version isn't a type
+ test_attributes = None
class TestUpdateWrapper(unittest.TestCase):
diff --git a/Lib/test/test_getargs2.py b/Lib/test/test_getargs2.py
index d06296b..07d97c1 100644
--- a/Lib/test/test_getargs2.py
+++ b/Lib/test/test_getargs2.py
@@ -42,6 +42,13 @@ from _testcapi import UCHAR_MAX, USHRT_MAX, UINT_MAX, ULONG_MAX, INT_MAX, \
INT_MIN, LONG_MIN, LONG_MAX, PY_SSIZE_T_MIN, PY_SSIZE_T_MAX, \
SHRT_MIN, SHRT_MAX
+try:
+ from _testcapi import getargs_L, getargs_K
+except ImportError:
+ _PY_LONG_LONG_available = False
+else:
+ _PY_LONG_LONG_available = True
+
# fake, they are not defined in Python's header files
LLONG_MAX = 2**63-1
LLONG_MIN = -2**63
@@ -208,6 +215,7 @@ class Signed_TestCase(unittest.TestCase):
self.assertRaises(OverflowError, getargs_n, VERY_LARGE)
+@unittest.skipUnless(_PY_LONG_LONG_available, 'PY_LONG_LONG not available')
class LongLong_TestCase(unittest.TestCase):
def test_L(self):
from _testcapi import getargs_L
@@ -322,13 +330,8 @@ class Keywords_TestCase(unittest.TestCase):
self.fail('TypeError should have been raised')
def test_main():
- tests = [Signed_TestCase, Unsigned_TestCase, Tuple_TestCase, Keywords_TestCase]
- try:
- from _testcapi import getargs_L, getargs_K
- except ImportError:
- pass # PY_LONG_LONG not available
- else:
- tests.append(LongLong_TestCase)
+ tests = [Signed_TestCase, Unsigned_TestCase, LongLong_TestCase,
+ Tuple_TestCase, Keywords_TestCase]
test_support.run_unittest(*tests)
if __name__ == "__main__":
diff --git a/Lib/test/test_grp.py b/Lib/test/test_grp.py
index 62d2baf..d31e39c 100644
--- a/Lib/test/test_grp.py
+++ b/Lib/test/test_grp.py
@@ -26,8 +26,10 @@ class GroupDatabaseTestCase(unittest.TestCase):
for e in entries:
self.check_value(e)
+ def test_values_extended(self):
+ entries = grp.getgrall()
if len(entries) > 1000: # Huge group file (NIS?) -- skip the rest
- return
+ self.skipTest('huge group file, extended test skipped')
for e in entries:
e2 = grp.getgrgid(e.gr_gid)
diff --git a/Lib/test/test_imp.py b/Lib/test/test_imp.py
index 77e44be..1bdc47a 100644
--- a/Lib/test/test_imp.py
+++ b/Lib/test/test_imp.py
@@ -2,7 +2,12 @@ import imp
import unittest
from test import test_support
+try:
+ import thread
+except ImportError:
+ thread = None
+@unittest.skipUnless(thread, 'threading not available')
class LockTests(unittest.TestCase):
"""Very basic test of import lock functions."""
@@ -68,13 +73,8 @@ class ReloadTests(unittest.TestCase):
def test_main():
tests = [
ReloadTests,
+ LockTests,
]
- try:
- import thread
- except ImportError:
- pass
- else:
- tests.append(LockTests)
test_support.run_unittest(*tests)
if __name__ == "__main__":
diff --git a/Lib/test/test_index.py b/Lib/test/test_index.py
index a92b442..4c29993 100644
--- a/Lib/test/test_index.py
+++ b/Lib/test/test_index.py
@@ -91,7 +91,7 @@ class SeqTestCase(unittest.TestCase):
self.assertEqual(self.seq[self.o:self.o2], self.seq[1:3])
self.assertEqual(self.seq[self.n:self.n2], self.seq[2:4])
- def test_slice_bug7532(self):
+ def test_slice_bug7532a(self):
seqlen = len(self.seq)
self.o.ind = int(seqlen * 1.5)
self.n.ind = seqlen + 2
@@ -99,9 +99,12 @@ class SeqTestCase(unittest.TestCase):
self.assertEqual(self.seq[:self.o], self.seq)
self.assertEqual(self.seq[self.n:], self.seq[0:0])
self.assertEqual(self.seq[:self.n], self.seq)
+
+ def test_slice_bug7532b(self):
if isinstance(self.seq, ClassicSeq):
- return
+ self.skipTest('test fails for ClassicSeq')
# These tests fail for ClassicSeq (see bug #7532)
+ seqlen = len(self.seq)
self.o2.ind = -seqlen - 2
self.n2.ind = -int(seqlen * 1.5)
self.assertEqual(self.seq[self.o2:], self.seq)
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index 63a0508..bc59af3 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -393,14 +393,9 @@ class IOTest(unittest.TestCase):
# a long time to build the >2GB file and takes >2GB of disk space
# therefore the resource must be enabled to run this test.
if sys.platform[:3] == 'win' or sys.platform == 'darwin':
- if not support.is_resource_enabled("largefile"):
- print("\nTesting large file ops skipped on %s." % sys.platform,
- file=sys.stderr)
- print("It requires %d bytes and a long time." % self.LARGE,
- file=sys.stderr)
- print("Use 'regrtest.py -u largefile test_io' to run it.",
- file=sys.stderr)
- return
+ support.requires(
+ 'largefile',
+ 'test requires %s bytes and a long time to run' % self.LARGE)
with self.open(support.TESTFN, "w+b", 0) as f:
self.large_file_ops(f)
with self.open(support.TESTFN, "w+b") as f:
@@ -650,6 +645,7 @@ class CommonBufferedTests:
self.assertEqual(42, bufio.fileno())
+ @unittest.skip('test having existential crisis')
def test_no_fileno(self):
# XXX will we always have fileno() function? If so, kill
# this test. Else, write it.
diff --git a/Lib/test/test_iter.py b/Lib/test/test_iter.py
index 8dc39d2..bd1b32d 100644
--- a/Lib/test/test_iter.py
+++ b/Lib/test/test_iter.py
@@ -526,7 +526,7 @@ class TestCase(unittest.TestCase):
d = {"one": 1, "two": 2, "three": 3}
self.assertEqual(reduce(add, d), "".join(d.keys()))
- # This test case will be removed if we don't have Unicode
+ @unittest.skipUnless(have_unicode, 'needs unicode support')
def test_unicode_join_endcase(self):
# This class inserts a Unicode object into its argument's natural
@@ -567,8 +567,6 @@ class TestCase(unittest.TestCase):
unlink(TESTFN)
except OSError:
pass
- if not have_unicode:
- def test_unicode_join_endcase(self): pass
# Test iterators with 'x in y' and 'x not in y'.
def test_in_and_not_in(self):
diff --git a/Lib/test/test_macos.py b/Lib/test/test_macos.py
index 5af5105..0956d1d 100644
--- a/Lib/test/test_macos.py
+++ b/Lib/test/test_macos.py
@@ -8,11 +8,9 @@ MacOS = test_support.import_module('MacOS')
TESTFN2 = test_support.TESTFN + '2'
class TestMacOS(unittest.TestCase):
-
+ @unittest.skipUnless(os.path.exists('/Developer/Tools/SetFile'),
+ '/Developer/Tools/SetFile does not exist')
def testGetCreatorAndType(self):
- if not os.path.exists('/Developer/Tools/SetFile'):
- return
-
try:
fp = open(test_support.TESTFN, 'w')
fp.write('\n')
@@ -29,10 +27,9 @@ class TestMacOS(unittest.TestCase):
finally:
os.unlink(test_support.TESTFN)
+ @unittest.skipUnless(os.path.exists('/Developer/Tools/GetFileInfo'),
+ '/Developer/Tools/GetFileInfo does not exist')
def testSetCreatorAndType(self):
- if not os.path.exists('/Developer/Tools/GetFileInfo'):
- return
-
try:
fp = open(test_support.TESTFN, 'w')
fp.write('\n')
diff --git a/Lib/test/test_macostools.py b/Lib/test/test_macostools.py
index 4f15982..ed80c1d 100644
--- a/Lib/test/test_macostools.py
+++ b/Lib/test/test_macostools.py
@@ -12,6 +12,8 @@ import macostools
TESTFN2 = test_support.TESTFN + '2'
+requires_32bit = unittest.skipUnless(sys.maxint < 2**32, '32-bit only test')
+
class TestMacostools(unittest.TestCase):
def setUp(self):
@@ -51,30 +53,32 @@ class TestMacostools(unittest.TestCase):
DeprecationWarning), quiet=True):
macostools.touched(test_support.TESTFN)
- if sys.maxint < 2**32:
- def test_copy(self):
- test_support.unlink(TESTFN2)
- macostools.copy(test_support.TESTFN, TESTFN2)
- self.assertEqual(self.compareData(), '')
-
- if sys.maxint < 2**32:
- def test_mkalias(self):
- test_support.unlink(TESTFN2)
- macostools.mkalias(test_support.TESTFN, TESTFN2)
- fss, _, _ = Carbon.File.ResolveAliasFile(TESTFN2, 0)
- self.assertEqual(fss.as_pathname(), os.path.realpath(test_support.TESTFN))
-
- def test_mkalias_relative(self):
- test_support.unlink(TESTFN2)
- # If the directory doesn't exist, then chances are this is a new
- # install of Python so don't create it since the user might end up
- # running ``sudo make install`` and creating the directory here won't
- # leave it with the proper permissions.
- if not os.path.exists(sys.prefix):
- return
- macostools.mkalias(test_support.TESTFN, TESTFN2, sys.prefix)
- fss, _, _ = Carbon.File.ResolveAliasFile(TESTFN2, 0)
- self.assertEqual(fss.as_pathname(), os.path.realpath(test_support.TESTFN))
+ @requires_32bit
+ def test_copy(self):
+ test_support.unlink(TESTFN2)
+ macostools.copy(test_support.TESTFN, TESTFN2)
+ self.assertEqual(self.compareData(), '')
+
+ @requires_32bit
+ def test_mkalias(self):
+ test_support.unlink(TESTFN2)
+ macostools.mkalias(test_support.TESTFN, TESTFN2)
+ fss, _, _ = Carbon.File.ResolveAliasFile(TESTFN2, 0)
+ self.assertEqual(fss.as_pathname(), os.path.realpath(test_support.TESTFN))
+
+ @requires_32bit
+ # If the directory doesn't exist, then chances are this is a new
+ # install of Python so don't create it since the user might end up
+ # running ``sudo make install`` and creating the directory here won't
+ # leave it with the proper permissions.
+ @unittest.skipUnless(os.path.exists(sys.prefix),
+ "%r doesn't exist" % sys.prefix)
+ def test_mkalias_relative(self):
+ test_support.unlink(TESTFN2)
+
+ macostools.mkalias(test_support.TESTFN, TESTFN2, sys.prefix)
+ fss, _, _ = Carbon.File.ResolveAliasFile(TESTFN2, 0)
+ self.assertEqual(fss.as_pathname(), os.path.realpath(test_support.TESTFN))
def test_main():
diff --git a/Lib/test/test_memoryview.py b/Lib/test/test_memoryview.py
index 525ddea..f14bafd 100644
--- a/Lib/test/test_memoryview.py
+++ b/Lib/test/test_memoryview.py
@@ -63,7 +63,7 @@ class AbstractMemoryTests:
def test_setitem_readonly(self):
if not self.ro_type:
- return
+ self.skipTest("no read-only type to test")
b = self.ro_type(self._source)
oldrefcount = sys.getrefcount(b)
m = self._view(b)
@@ -77,7 +77,7 @@ class AbstractMemoryTests:
def test_setitem_writable(self):
if not self.rw_type:
- return
+ self.skipTest("no writable type to test")
tp = self.rw_type
b = self.rw_type(self._source)
oldrefcount = sys.getrefcount(b)
@@ -183,13 +183,13 @@ class AbstractMemoryTests:
def test_attributes_readonly(self):
if not self.ro_type:
- return
+ self.skipTest("no read-only type to test")
m = self.check_attributes_with_type(self.ro_type)
self.assertEqual(m.readonly, True)
def test_attributes_writable(self):
if not self.rw_type:
- return
+ self.skipTest("no writable type to test")
m = self.check_attributes_with_type(self.rw_type)
self.assertEqual(m.readonly, False)
@@ -236,7 +236,7 @@ class AbstractMemoryTests:
# buffer as writable causing a segfault if using mmap
tp = self.ro_type
if tp is None:
- return
+ self.skipTest("no read-only type to test")
b = tp(self._source)
m = self._view(b)
i = io.BytesIO(b'ZZZZ')
diff --git a/Lib/test/test_multibytecodec.py b/Lib/test/test_multibytecodec.py
index 5e86ca2..2afe9de 100644
--- a/Lib/test/test_multibytecodec.py
+++ b/Lib/test/test_multibytecodec.py
@@ -157,57 +157,55 @@ class Test_StreamReader(unittest.TestCase):
os.unlink(TESTFN)
class Test_StreamWriter(unittest.TestCase):
- if len(u'\U00012345') == 2: # UCS2
- def test_gb18030(self):
- s = StringIO.StringIO()
- c = codecs.getwriter('gb18030')(s)
- c.write(u'123')
- self.assertEqual(s.getvalue(), '123')
- c.write(u'\U00012345')
- self.assertEqual(s.getvalue(), '123\x907\x959')
+ @unittest.skipUnless(len(u'\U00012345') == 2, 'need a narrow build')
+ def test_gb18030(self):
+ s = StringIO.StringIO()
+ c = codecs.getwriter('gb18030')(s)
+ c.write(u'123')
+ self.assertEqual(s.getvalue(), '123')
+ c.write(u'\U00012345')
+ self.assertEqual(s.getvalue(), '123\x907\x959')
+ c.write(u'\U00012345'[0])
+ self.assertEqual(s.getvalue(), '123\x907\x959')
+ c.write(u'\U00012345'[1] + u'\U00012345' + u'\uac00\u00ac')
+ self.assertEqual(s.getvalue(),
+ '123\x907\x959\x907\x959\x907\x959\x827\xcf5\x810\x851')
+ c.write(u'\U00012345'[0])
+ self.assertEqual(s.getvalue(),
+ '123\x907\x959\x907\x959\x907\x959\x827\xcf5\x810\x851')
+ self.assertRaises(UnicodeError, c.reset)
+ self.assertEqual(s.getvalue(),
+ '123\x907\x959\x907\x959\x907\x959\x827\xcf5\x810\x851')
+
+ @unittest.skipUnless(len(u'\U00012345') == 2, 'need a narrow build')
+ def test_utf_8(self):
+ s= StringIO.StringIO()
+ c = codecs.getwriter('utf-8')(s)
+ c.write(u'123')
+ self.assertEqual(s.getvalue(), '123')
+ c.write(u'\U00012345')
+ self.assertEqual(s.getvalue(), '123\xf0\x92\x8d\x85')
+
+ # Python utf-8 codec can't buffer surrogate pairs yet.
+ if 0:
c.write(u'\U00012345'[0])
- self.assertEqual(s.getvalue(), '123\x907\x959')
+ self.assertEqual(s.getvalue(), '123\xf0\x92\x8d\x85')
c.write(u'\U00012345'[1] + u'\U00012345' + u'\uac00\u00ac')
self.assertEqual(s.getvalue(),
- '123\x907\x959\x907\x959\x907\x959\x827\xcf5\x810\x851')
+ '123\xf0\x92\x8d\x85\xf0\x92\x8d\x85\xf0\x92\x8d\x85'
+ '\xea\xb0\x80\xc2\xac')
c.write(u'\U00012345'[0])
self.assertEqual(s.getvalue(),
- '123\x907\x959\x907\x959\x907\x959\x827\xcf5\x810\x851')
- self.assertRaises(UnicodeError, c.reset)
+ '123\xf0\x92\x8d\x85\xf0\x92\x8d\x85\xf0\x92\x8d\x85'
+ '\xea\xb0\x80\xc2\xac')
+ c.reset()
self.assertEqual(s.getvalue(),
- '123\x907\x959\x907\x959\x907\x959\x827\xcf5\x810\x851')
-
- def test_utf_8(self):
- s= StringIO.StringIO()
- c = codecs.getwriter('utf-8')(s)
- c.write(u'123')
- self.assertEqual(s.getvalue(), '123')
- c.write(u'\U00012345')
- self.assertEqual(s.getvalue(), '123\xf0\x92\x8d\x85')
-
- # Python utf-8 codec can't buffer surrogate pairs yet.
- if 0:
- c.write(u'\U00012345'[0])
- self.assertEqual(s.getvalue(), '123\xf0\x92\x8d\x85')
- c.write(u'\U00012345'[1] + u'\U00012345' + u'\uac00\u00ac')
- self.assertEqual(s.getvalue(),
- '123\xf0\x92\x8d\x85\xf0\x92\x8d\x85\xf0\x92\x8d\x85'
- '\xea\xb0\x80\xc2\xac')
- c.write(u'\U00012345'[0])
- self.assertEqual(s.getvalue(),
- '123\xf0\x92\x8d\x85\xf0\x92\x8d\x85\xf0\x92\x8d\x85'
- '\xea\xb0\x80\xc2\xac')
- c.reset()
- self.assertEqual(s.getvalue(),
- '123\xf0\x92\x8d\x85\xf0\x92\x8d\x85\xf0\x92\x8d\x85'
- '\xea\xb0\x80\xc2\xac\xed\xa0\x88')
- c.write(u'\U00012345'[1])
- self.assertEqual(s.getvalue(),
- '123\xf0\x92\x8d\x85\xf0\x92\x8d\x85\xf0\x92\x8d\x85'
- '\xea\xb0\x80\xc2\xac\xed\xa0\x88\xed\xbd\x85')
-
- else: # UCS4
- pass
+ '123\xf0\x92\x8d\x85\xf0\x92\x8d\x85\xf0\x92\x8d\x85'
+ '\xea\xb0\x80\xc2\xac\xed\xa0\x88')
+ c.write(u'\U00012345'[1])
+ self.assertEqual(s.getvalue(),
+ '123\xf0\x92\x8d\x85\xf0\x92\x8d\x85\xf0\x92\x8d\x85'
+ '\xea\xb0\x80\xc2\xac\xed\xa0\x88\xed\xbd\x85')
def test_streamwriter_strwrite(self):
s = StringIO.StringIO()
diff --git a/Lib/test/test_multibytecodec_support.py b/Lib/test/test_multibytecodec_support.py
index 52a2e50..3955663 100644
--- a/Lib/test/test_multibytecodec_support.py
+++ b/Lib/test/test_multibytecodec_support.py
@@ -67,7 +67,7 @@ class TestBase:
def test_xmlcharrefreplace(self):
if self.has_iso10646:
- return
+ self.skipTest('encoding contains full ISO 10646 map')
s = u"\u0b13\u0b23\u0b60 nd eggs"
self.assertEqual(
@@ -77,7 +77,7 @@ class TestBase:
def test_customreplace_encode(self):
if self.has_iso10646:
- return
+ self.skipTest('encoding contains full ISO 10646 map')
from htmlentitydefs import codepoint2name
diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
index 2f2bf94..956c036 100644
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -182,7 +182,7 @@ class _TestProcess(BaseTestCase):
def test_current(self):
if self.TYPE == 'threads':
- return
+ self.skipTest('test not appropriate for {}'.format(self.TYPE))
current = self.current_process()
authkey = current.authkey
@@ -249,7 +249,7 @@ class _TestProcess(BaseTestCase):
def test_terminate(self):
if self.TYPE == 'threads':
- return
+ self.skipTest('test not appropriate for {}'.format(self.TYPE))
p = self.Process(target=self._test_terminate)
p.daemon = True
@@ -334,7 +334,7 @@ class _TestProcess(BaseTestCase):
def test_sys_exit(self):
# See Issue 13854
if self.TYPE == 'threads':
- return
+ self.skipTest('test not appropriate for {}'.format(self.TYPE))
testfn = test_support.TESTFN
self.addCleanup(test_support.unlink, testfn)
@@ -582,7 +582,7 @@ class _TestQueue(BaseTestCase):
try:
self.assertEqual(q.qsize(), 0)
except NotImplementedError:
- return
+ self.skipTest('qsize method not implemented')
q.put(1)
self.assertEqual(q.qsize(), 1)
q.put(5)
@@ -683,7 +683,7 @@ class _TestSemaphore(BaseTestCase):
def test_timeout(self):
if self.TYPE != 'processes':
- return
+ self.skipTest('test not appropriate for {}'.format(self.TYPE))
sem = self.Semaphore(0)
acquire = TimingWrapper(sem.acquire)
@@ -1120,7 +1120,7 @@ class _TestPool(BaseTestCase):
def test_map_unplicklable(self):
# Issue #19425 -- failure to pickle should not cause a hang
if self.TYPE == 'threads':
- return
+ self.skipTest('test not appropriate for {}'.format(self.TYPE))
class A(object):
def __reduce__(self):
raise RuntimeError('cannot pickle')
@@ -1573,7 +1573,7 @@ class _TestConnection(BaseTestCase):
def test_sendbytes(self):
if self.TYPE != 'processes':
- return
+ self.skipTest('test not appropriate for {}'.format(self.TYPE))
msg = latin('abcdefghijklmnopqrstuvwxyz')
a, b = self.Pipe()
diff --git a/Lib/test/test_nis.py b/Lib/test/test_nis.py
index 8d49550..2a9f2a8 100644
--- a/Lib/test/test_nis.py
+++ b/Lib/test/test_nis.py
@@ -9,11 +9,7 @@ class NisTests(unittest.TestCase):
maps = nis.maps()
except nis.error, msg:
# NIS is probably not active, so this test isn't useful
- if test_support.verbose:
- print "Test Skipped:", msg
- # Can't raise SkipTest as regrtest only recognizes the exception
- # import time.
- return
+ self.skipTest(str(msg))
try:
# On some systems, this map is only accessible to the
# super user
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index dd0696e..3a145f1 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -134,7 +134,6 @@ class TemporaryFileTests(unittest.TestCase):
self.assertEqual(first.args, second.args)
else:
self.fail("expected os.tmpfile() to raise OSError")
- return
else:
# open() worked, therefore, tmpfile() should work. Close our
# dummy file and proceed with the test as normal.
@@ -258,7 +257,7 @@ class StatAttributeTests(unittest.TestCase):
except OSError, e:
# On AtheOS, glibc always returns ENOSYS
if e.errno == errno.ENOSYS:
- return
+ self.skipTest('glibc always returns ENOSYS on AtheOS')
# Make sure direct access works
self.assertEqual(result.f_bfree, result[3])
@@ -338,7 +337,7 @@ class StatAttributeTests(unittest.TestCase):
os.stat(r"c:\pagefile.sys")
except WindowsError, e:
if e.errno == 2: # file does not exist; cannot run test
- return
+ self.skipTest(r'c:\pagefile.sys does not exist')
self.fail("Could not stat pagefile.sys")
from test import mapping_tests
diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py
index b7f05b2..a6d47af 100644
--- a/Lib/test/test_posix.py
+++ b/Lib/test/test_posix.py
@@ -461,18 +461,15 @@ class PosixTester(unittest.TestCase):
os.mkdir(base_path)
os.chdir(base_path)
except:
-# Just returning nothing instead of the SkipTest exception,
-# because the test results in Error in that case.
-# Is that ok?
-# raise unittest.SkipTest, "cannot create directory for testing"
- return
+ self.skipTest("cannot create directory for testing")
try:
def _create_and_do_getcwd(dirname, current_path_length = 0):
try:
os.mkdir(dirname)
except:
- raise unittest.SkipTest, "mkdir cannot create directory sufficiently deep for getcwd test"
+ self.skipTest("mkdir cannot create directory sufficiently "
+ "deep for getcwd test")
os.chdir(dirname)
try:
diff --git a/Lib/test/test_pwd.py b/Lib/test/test_pwd.py
index 696161a..828f6de 100644
--- a/Lib/test/test_pwd.py
+++ b/Lib/test/test_pwd.py
@@ -8,8 +8,6 @@ class PwdTest(unittest.TestCase):
def test_values(self):
entries = pwd.getpwall()
- entriesbyname = {}
- entriesbyuid = {}
for e in entries:
self.assertEqual(len(e), 7)
@@ -32,13 +30,20 @@ class PwdTest(unittest.TestCase):
# for one uid
# self.assertEqual(pwd.getpwuid(e.pw_uid), e)
# instead of this collect all entries for one uid
- # and check afterwards
+ # and check afterwards (done in test_values_extended)
+
+ def test_values_extended(self):
+ entries = pwd.getpwall()
+ entriesbyname = {}
+ entriesbyuid = {}
+
+ if len(entries) > 1000: # Huge passwd file (NIS?) -- skip this test
+ self.skipTest('passwd file is huge; extended test skipped')
+
+ for e in entries:
entriesbyname.setdefault(e.pw_name, []).append(e)
entriesbyuid.setdefault(e.pw_uid, []).append(e)
- if len(entries) > 1000: # Huge passwd file (NIS?) -- skip the rest
- return
-
# check whether the entry returned by getpwuid()
# for each uid is among those from getpwall() for this uid
for e in entries:
diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py
index d879bac..7ebbf05 100644
--- a/Lib/test/test_re.py
+++ b/Lib/test/test_re.py
@@ -700,7 +700,7 @@ class ReTests(unittest.TestCase):
try:
unicode
except NameError:
- return # no problem if we have no unicode
+ self.skipTest('no problem if we have no unicode')
class my_unicode(unicode): pass
pat = re.compile(my_unicode("abc"))
self.assertEqual(pat.match("xyz"), None)
@@ -714,7 +714,7 @@ class ReTests(unittest.TestCase):
try:
unicode
except NameError:
- return # no problem if we have no unicode
+ self.skipTest('no problem if we have no unicode')
self.assertTrue(re.compile('bug_926075') is not
re.compile(eval("u'bug_926075'")))
@@ -722,7 +722,7 @@ class ReTests(unittest.TestCase):
try:
unicode
except NameError:
- pass
+ self.skipTest('no problem if we have no unicode')
pattern = eval('u"[\u002E\u3002\uFF0E\uFF61]"')
self.assertEqual(re.compile(pattern).split("a.b.c"),
['a','b','c'])
diff --git a/Lib/test/test_repr.py b/Lib/test/test_repr.py
index ae5203d..a0e4b1f 100644
--- a/Lib/test/test_repr.py
+++ b/Lib/test/test_repr.py
@@ -268,6 +268,7 @@ class foo(object):
eq(repr(foo.foo),
"<class '%s.foo'>" % foo.__name__)
+ @unittest.skip('need a suitable object')
def test_object(self):
# XXX Test the repr of a type with a really long tp_name but with no
# tp_repr. WIBNI we had ::Inline? :)
@@ -309,6 +310,7 @@ class aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
'<bound method aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.amethod of <%s.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa instance at 0x' \
% (qux.__name__,) ))
+ @unittest.skip('needs a built-in function with a really long name')
def test_builtin_function(self):
# XXX test built-in functions and methods with really long names
pass
diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
index 745b26b..de29d3b 100644
--- a/Lib/test/test_resource.py
+++ b/Lib/test/test_resource.py
@@ -18,62 +18,60 @@ class ResourceTest(unittest.TestCase):
try:
(cur, max) = resource.getrlimit(resource.RLIMIT_FSIZE)
except AttributeError:
- pass
- else:
- # RLIMIT_FSIZE should be RLIM_INFINITY, which will be a really big
- # number on a platform with large file support. On these platforms,
- # we need to test that the get/setrlimit functions properly convert
- # the number to a C long long and that the conversion doesn't raise
- # an error.
- self.assertEqual(resource.RLIM_INFINITY, max)
- resource.setrlimit(resource.RLIMIT_FSIZE, (cur, max))
+ self.skipTest('RLIMIT_FSIZE not available')
+ # RLIMIT_FSIZE should be RLIM_INFINITY, which will be a really big
+ # number on a platform with large file support. On these platforms,
+ # we need to test that the get/setrlimit functions properly convert
+ # the number to a C long long and that the conversion doesn't raise
+ # an error.
+ self.assertEqual(resource.RLIM_INFINITY, max)
+ resource.setrlimit(resource.RLIMIT_FSIZE, (cur, max))
def test_fsize_enforced(self):
try:
(cur, max) = resource.getrlimit(resource.RLIMIT_FSIZE)
except AttributeError:
- pass
- else:
- # Check to see what happens when the RLIMIT_FSIZE is small. Some
- # versions of Python were terminated by an uncaught SIGXFSZ, but
- # pythonrun.c has been fixed to ignore that exception. If so, the
- # write() should return EFBIG when the limit is exceeded.
+ self.skipTest('RLIMIT_FSIZE not available')
+ # Check to see what happens when the RLIMIT_FSIZE is small. Some
+ # versions of Python were terminated by an uncaught SIGXFSZ, but
+ # pythonrun.c has been fixed to ignore that exception. If so, the
+ # write() should return EFBIG when the limit is exceeded.
- # At least one platform has an unlimited RLIMIT_FSIZE and attempts
- # to change it raise ValueError instead.
+ # At least one platform has an unlimited RLIMIT_FSIZE and attempts
+ # to change it raise ValueError instead.
+ try:
try:
+ resource.setrlimit(resource.RLIMIT_FSIZE, (1024, max))
+ limit_set = True
+ except ValueError:
+ limit_set = False
+ f = open(test_support.TESTFN, "wb")
+ try:
+ f.write("X" * 1024)
try:
- resource.setrlimit(resource.RLIMIT_FSIZE, (1024, max))
- limit_set = True
- except ValueError:
- limit_set = False
- f = open(test_support.TESTFN, "wb")
- try:
- f.write("X" * 1024)
- try:
- f.write("Y")
+ f.write("Y")
+ f.flush()
+ # On some systems (e.g., Ubuntu on hppa) the flush()
+ # doesn't always cause the exception, but the close()
+ # does eventually. Try flushing several times in
+ # an attempt to ensure the file is really synced and
+ # the exception raised.
+ for i in range(5):
+ time.sleep(.1)
f.flush()
- # On some systems (e.g., Ubuntu on hppa) the flush()
- # doesn't always cause the exception, but the close()
- # does eventually. Try flushing several times in
- # an attempt to ensure the file is really synced and
- # the exception raised.
- for i in range(5):
- time.sleep(.1)
- f.flush()
- except IOError:
- if not limit_set:
- raise
- if limit_set:
- # Close will attempt to flush the byte we wrote
- # Restore limit first to avoid getting a spurious error
- resource.setrlimit(resource.RLIMIT_FSIZE, (cur, max))
- finally:
- f.close()
- finally:
+ except IOError:
+ if not limit_set:
+ raise
if limit_set:
+ # Close will attempt to flush the byte we wrote
+ # Restore limit first to avoid getting a spurious error
resource.setrlimit(resource.RLIMIT_FSIZE, (cur, max))
- test_support.unlink(test_support.TESTFN)
+ finally:
+ f.close()
+ finally:
+ if limit_set:
+ resource.setrlimit(resource.RLIMIT_FSIZE, (cur, max))
+ test_support.unlink(test_support.TESTFN)
def test_fsize_toobig(self):
# Be sure that setrlimit is checking for really large values
@@ -81,16 +79,15 @@ class ResourceTest(unittest.TestCase):
try:
(cur, max) = resource.getrlimit(resource.RLIMIT_FSIZE)
except AttributeError:
+ self.skipTest('RLIMIT_FSIZE not available')
+ try:
+ resource.setrlimit(resource.RLIMIT_FSIZE, (too_big, max))
+ except (OverflowError, ValueError):
+ pass
+ try:
+ resource.setrlimit(resource.RLIMIT_FSIZE, (max, too_big))
+ except (OverflowError, ValueError):
pass
- else:
- try:
- resource.setrlimit(resource.RLIMIT_FSIZE, (too_big, max))
- except (OverflowError, ValueError):
- pass
- try:
- resource.setrlimit(resource.RLIMIT_FSIZE, (max, too_big))
- except (OverflowError, ValueError):
- pass
def test_getrusage(self):
self.assertRaises(TypeError, resource.getrusage)
@@ -108,17 +105,16 @@ class ResourceTest(unittest.TestCase):
try:
limits = resource.getrlimit(resource.RLIMIT_CPU)
except AttributeError:
- pass
- else:
- class BadSequence:
- def __len__(self):
- return 2
- def __getitem__(self, key):
- if key in (0, 1):
- return len(tuple(range(1000000)))
- raise IndexError
+ self.skipTest('RLIMIT_CPU not available')
+ class BadSequence:
+ def __len__(self):
+ return 2
+ def __getitem__(self, key):
+ if key in (0, 1):
+ return len(tuple(range(1000000)))
+ raise IndexError
- resource.setrlimit(resource.RLIMIT_CPU, BadSequence())
+ resource.setrlimit(resource.RLIMIT_CPU, BadSequence())
def test_main(verbose=None):
test_support.run_unittest(ResourceTest)
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
index 8f1abd8..8160f41 100644
--- a/Lib/test/test_shutil.py
+++ b/Lib/test/test_shutil.py
@@ -651,16 +651,14 @@ class TestMove(unittest.TestCase):
def test_move_file_other_fs(self):
# Move a file to an existing dir on another filesystem.
if not self.dir_other_fs:
- # skip
- return
+ self.skipTest('dir on other filesystem not available')
self._check_move_file(self.src_file, self.file_other_fs,
self.file_other_fs)
def test_move_file_to_dir_other_fs(self):
# Move a file to another location on another filesystem.
if not self.dir_other_fs:
- # skip
- return
+ self.skipTest('dir on other filesystem not available')
self._check_move_file(self.src_file, self.dir_other_fs,
self.file_other_fs)
@@ -678,8 +676,7 @@ class TestMove(unittest.TestCase):
def test_move_dir_other_fs(self):
# Move a dir to another location on another filesystem.
if not self.dir_other_fs:
- # skip
- return
+ self.skipTest('dir on other filesystem not available')
dst_dir = tempfile.mktemp(dir=self.dir_other_fs)
try:
self._check_move_dir(self.src_dir, dst_dir, dst_dir)
@@ -697,8 +694,7 @@ class TestMove(unittest.TestCase):
def test_move_dir_to_dir_other_fs(self):
# Move a dir inside an existing dir on another filesystem.
if not self.dir_other_fs:
- # skip
- return
+ self.skipTest('dir on other filesystem not available')
self._check_move_dir(self.src_dir, self.dir_other_fs,
os.path.join(self.dir_other_fs, os.path.basename(self.src_dir)))
diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
index f4b5fc6..0898449 100644
--- a/Lib/test/test_site.py
+++ b/Lib/test/test_site.py
@@ -343,6 +343,7 @@ class ImportSideEffectTests(unittest.TestCase):
self.assertNotIn(path, seen_paths)
seen_paths.add(path)
+ @unittest.skip('test not implemented')
def test_add_build_dir(self):
# Test that the build directory's Modules directory is used when it
# should be.
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 53c8b2f..4a60be3 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -331,13 +331,13 @@ class GeneralModuleTests(unittest.TestCase):
ip = socket.gethostbyname(hostname)
except socket.error:
# Probably name lookup wasn't set up right; skip this test
- return
+ self.skipTest('name lookup failure')
self.assertTrue(ip.find('.') >= 0, "Error resolving host to ip.")
try:
hname, aliases, ipaddrs = socket.gethostbyaddr(ip)
except socket.error:
# Probably a similar problem as above; skip this test
- return
+ self.skipTest('address lookup failure')
all_host_names = [hostname, hname] + aliases
fqhn = socket.getfqdn(ip)
if not fqhn in all_host_names:
@@ -491,9 +491,9 @@ class GeneralModuleTests(unittest.TestCase):
try:
from socket import inet_pton, AF_INET6, has_ipv6
if not has_ipv6:
- return
+ self.skipTest('IPv6 not available')
except ImportError:
- return
+ self.skipTest('could not import needed symbols from socket')
f = lambda a: inet_pton(AF_INET6, a)
self.assertEqual('\x00' * 16, f('::'))
@@ -525,9 +525,9 @@ class GeneralModuleTests(unittest.TestCase):
try:
from socket import inet_ntop, AF_INET6, has_ipv6
if not has_ipv6:
- return
+ self.skipTest('IPv6 not available')
except ImportError:
- return
+ self.skipTest('could not import needed symbols from socket')
f = lambda a: inet_ntop(AF_INET6, a)
self.assertEqual('::', f('\x00' * 16))
@@ -567,7 +567,7 @@ class GeneralModuleTests(unittest.TestCase):
my_ip_addr = socket.gethostbyname(socket.gethostname())
except socket.error:
# Probably name lookup wasn't set up right; skip this test
- return
+ self.skipTest('name lookup failure')
self.assertIn(name[0], ("0.0.0.0", my_ip_addr), '%s invalid' % name[0])
self.assertEqual(name[1], port)
@@ -786,10 +786,10 @@ class BasicTCPTest(SocketConnectedTest):
big_chunk = 'f' * 2048
self.serv_conn.sendall(big_chunk)
+ @unittest.skipUnless(hasattr(socket, 'fromfd'),
+ 'socket.fromfd not availble')
def testFromFd(self):
# Testing fromfd()
- if not hasattr(socket, "fromfd"):
- return # On Windows, this doesn't exist
fd = self.cli_conn.fileno()
sock = socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM)
self.addCleanup(sock.close)
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index 9c33c8f..6723865 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -192,9 +192,8 @@ class BasicSocketTests(unittest.TestCase):
self.assertTrue(s.startswith("OpenSSL {:d}.{:d}.{:d}".format(major, minor, fix)),
(s, t))
+ @test_support.requires_resource('network')
def test_ciphers(self):
- if not test_support.is_resource_enabled('network'):
- return
remote = ("svn.python.org", 443)
with test_support.transient_internet(remote[0]):
s = ssl.wrap_socket(socket.socket(socket.AF_INET),
diff --git a/Lib/test/test_str.py b/Lib/test/test_str.py
index eb704ea..2cd7966 100644
--- a/Lib/test/test_str.py
+++ b/Lib/test/test_str.py
@@ -1,4 +1,4 @@
-
+import unittest
import struct
import sys
from test import test_support, string_tests
@@ -110,12 +110,12 @@ class StrTest(
self.assertEqual(str(Foo9("foo")), "string")
self.assertEqual(unicode(Foo9("foo")), u"not unicode")
+ # This test only affects 32-bit platforms because expandtabs can only take
+ # an int as the max value, not a 64-bit C long. If expandtabs is changed
+ # to take a 64-bit long, this test should apply to all platforms.
+ @unittest.skipIf(sys.maxint > (1 << 32) or struct.calcsize('P') != 4,
+ 'only applies to 32-bit platforms')
def test_expandtabs_overflows_gracefully(self):
- # This test only affects 32-bit platforms because expandtabs can only take
- # an int as the max value, not a 64-bit C long. If expandtabs is changed
- # to take a 64-bit long, this test should apply to all platforms.
- if sys.maxint > (1 << 32) or struct.calcsize('P') != 4:
- return
self.assertRaises(OverflowError, 't\tt\t'.expandtabs, sys.maxint)
def test__format__(self):
diff --git a/Lib/test/test_strptime.py b/Lib/test/test_strptime.py
index 58e4309..66b9ab3 100644
--- a/Lib/test/test_strptime.py
+++ b/Lib/test/test_strptime.py
@@ -313,7 +313,7 @@ class StrptimeTests(unittest.TestCase):
# when time.tzname[0] == time.tzname[1] and time.daylight
tz_name = time.tzname[0]
if tz_name.upper() in ("UTC", "GMT"):
- return
+ self.skipTest('need non-UTC/GMT timezone')
try:
original_tzname = time.tzname
original_daylight = time.daylight
@@ -526,7 +526,7 @@ class CacheTests(unittest.TestCase):
try:
locale.setlocale(locale.LC_TIME, ('en_US', 'UTF8'))
except locale.Error:
- return
+ self.skipTest('test needs en_US.UTF8 locale')
try:
_strptime._strptime_time('10', '%d')
# Get id of current cache object.
@@ -543,7 +543,7 @@ class CacheTests(unittest.TestCase):
# If this is the case just suppress the exception and fall-through
# to the resetting to the original locale.
except locale.Error:
- pass
+ self.skipTest('test needs de_DE.UTF8 locale')
# Make sure we don't trample on the locale setting once we leave the
# test.
finally:
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
index 69d342a..d3ad707 100644
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -260,7 +260,7 @@ class MiscReadTest(CommonReadTest):
def test_fail_comp(self):
# For Gzip and Bz2 Tests: fail with a ReadError on an uncompressed file.
if self.mode == "r:":
- return
+ self.skipTest('needs a gz or bz2 mode')
self.assertRaises(tarfile.ReadError, tarfile.open, tarname, self.mode)
fobj = open(tarname, "rb")
self.assertRaises(tarfile.ReadError, tarfile.open, fileobj=fobj, mode=self.mode)
@@ -446,14 +446,12 @@ class DetectReadTest(unittest.TestCase):
def test_detect_fileobj(self):
self._test_modes(self._testfunc_fileobj)
+ @unittest.skipUnless(bz2, 'requires bz2')
def test_detect_stream_bz2(self):
# Originally, tarfile's stream detection looked for the string
# "BZh91" at the start of the file. This is incorrect because
# the '9' represents the blocksize (900kB). If the file was
# compressed using another blocksize autodetection fails.
- if not bz2:
- return
-
with open(tarname, "rb") as fobj:
data = fobj.read()
@@ -982,12 +980,11 @@ class StreamWriteTest(WriteTestBase):
self.assertTrue(data.count("\0") == tarfile.RECORDSIZE,
"incorrect zero padding")
+ @unittest.skipIf(sys.platform == 'win32', 'not appropriate for Windows')
+ @unittest.skipUnless(hasattr(os, 'umask'), 'requires os.umask')
def test_file_mode(self):
# Test for issue #8464: Create files with correct
# permissions.
- if sys.platform == "win32" or not hasattr(os, "umask"):
- return
-
if os.path.exists(tmpname):
os.remove(tmpname)
@@ -1360,15 +1357,13 @@ class AppendTest(unittest.TestCase):
self._add_testfile()
self._test(names=["foo", "bar"])
+ @unittest.skipUnless(gzip, 'requires gzip')
def test_append_gz(self):
- if gzip is None:
- return
self._create_testtar("w:gz")
self.assertRaises(tarfile.ReadError, tarfile.open, tmpname, "a")
+ @unittest.skipUnless(bz2, 'requires bz2')
def test_append_bz2(self):
- if bz2 is None:
- return
self._create_testtar("w:bz2")
self.assertRaises(tarfile.ReadError, tarfile.open, tmpname, "a")
diff --git a/Lib/test/test_telnetlib.py b/Lib/test/test_telnetlib.py
index a5ed34b..6c122d7 100644
--- a/Lib/test/test_telnetlib.py
+++ b/Lib/test/test_telnetlib.py
@@ -177,7 +177,6 @@ class ReadTests(TestCase):
self.dataq.join()
data = telnet.read_all()
self.assertEqual(data, ''.join(want[:-1]))
- return
def _test_blocking(self, func):
self.dataq.put([self.block_long, EOF_sigil])
diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py
index 011e7d0..40f70c0 100644
--- a/Lib/test/test_tempfile.py
+++ b/Lib/test/test_tempfile.py
@@ -342,10 +342,9 @@ class test__mkstemp_inner(TC):
finally:
os.rmdir(dir)
+ @unittest.skipUnless(has_stat, 'os.stat not available')
def test_file_mode(self):
# _mkstemp_inner creates files with the proper mode
- if not has_stat:
- return # ugh, can't use SkipTest.
file = self.do_create()
mode = stat.S_IMODE(os.stat(file.name).st_mode)
@@ -357,10 +356,9 @@ class test__mkstemp_inner(TC):
expected = user * (1 + 8 + 64)
self.assertEqual(mode, expected)
+ @unittest.skipUnless(has_spawnl, 'os.spawnl not available')
def test_noinherit(self):
# _mkstemp_inner file handles are not inherited by child processes
- if not has_spawnl:
- return # ugh, can't use SkipTest.
if support.verbose:
v="v"
@@ -395,10 +393,9 @@ class test__mkstemp_inner(TC):
"child process caught fatal signal %d" % -retval)
self.assertFalse(retval > 0, "child process reports failure %d"%retval)
+ @unittest.skipUnless(has_textmode, "text mode not available")
def test_textmode(self):
# _mkstemp_inner can create files in text mode
- if not has_textmode:
- return # ugh, can't use SkipTest.
self.do_create(bin=0).write("blat\n")
# XXX should test that the file really is a text file
@@ -590,10 +587,9 @@ class test_mkdtemp(TC):
finally:
os.rmdir(dir)
+ @unittest.skipUnless(has_stat, 'os.stat not available')
def test_mode(self):
# mkdtemp creates directories with the proper mode
- if not has_stat:
- return # ugh, can't use SkipTest.
dir = self.do_create()
try:
diff --git a/Lib/test/test_thread.py b/Lib/test/test_thread.py
index 413889a..b056039 100644
--- a/Lib/test/test_thread.py
+++ b/Lib/test/test_thread.py
@@ -70,39 +70,35 @@ class ThreadRunningTests(BasicThreadTest):
thread.stack_size(0)
self.assertEqual(thread.stack_size(), 0, "stack_size not reset to default")
- if os.name not in ("nt", "os2", "posix"):
- return
-
- tss_supported = True
+ @unittest.skipIf(os.name not in ("nt", "os2", "posix"), 'test meant for nt, os2, and posix')
+ def test_nt_and_posix_stack_size(self):
try:
thread.stack_size(4096)
except ValueError:
verbose_print("caught expected ValueError setting "
"stack_size(4096)")
except thread.error:
- tss_supported = False
- verbose_print("platform does not support changing thread stack "
- "size")
-
- if tss_supported:
- fail_msg = "stack_size(%d) failed - should succeed"
- for tss in (262144, 0x100000, 0):
- thread.stack_size(tss)
- self.assertEqual(thread.stack_size(), tss, fail_msg % tss)
- verbose_print("successfully set stack_size(%d)" % tss)
-
- for tss in (262144, 0x100000):
- verbose_print("trying stack_size = (%d)" % tss)
- self.next_ident = 0
- self.created = 0
- for i in range(NUMTASKS):
- self.newtask()
-
- verbose_print("waiting for all tasks to complete")
- self.done_mutex.acquire()
- verbose_print("all tasks done")
-
- thread.stack_size(0)
+ self.skipTest("platform does not support changing thread stack "
+ "size")
+
+ fail_msg = "stack_size(%d) failed - should succeed"
+ for tss in (262144, 0x100000, 0):
+ thread.stack_size(tss)
+ self.assertEqual(thread.stack_size(), tss, fail_msg % tss)
+ verbose_print("successfully set stack_size(%d)" % tss)
+
+ for tss in (262144, 0x100000):
+ verbose_print("trying stack_size = (%d)" % tss)
+ self.next_ident = 0
+ self.created = 0
+ for i in range(NUMTASKS):
+ self.newtask()
+
+ verbose_print("waiting for all tasks to complete")
+ self.done_mutex.acquire()
+ verbose_print("all tasks done")
+
+ thread.stack_size(0)
def test__count(self):
# Test the _count() function.
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index ac0b4bc..71f84f6 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -125,9 +125,7 @@ class ThreadTests(BaseTestCase):
try:
threading.stack_size(262144)
except thread.error:
- if verbose:
- print 'platform does not support changing thread stack size'
- return
+ self.skipTest('platform does not support changing thread stack size')
self.test_various_ops()
threading.stack_size(0)
@@ -138,9 +136,7 @@ class ThreadTests(BaseTestCase):
try:
threading.stack_size(0x100000)
except thread.error:
- if verbose:
- print 'platform does not support changing thread stack size'
- return
+ self.skipTest('platform does not support changing thread stack size')
self.test_various_ops()
threading.stack_size(0)
@@ -167,9 +163,7 @@ class ThreadTests(BaseTestCase):
try:
import ctypes
except ImportError:
- if verbose:
- print "test_PyThreadState_SetAsyncExc can't import ctypes"
- return # can't do anything
+ self.skipTest('requires ctypes')
set_async_exc = ctypes.pythonapi.PyThreadState_SetAsyncExc
@@ -275,9 +269,7 @@ class ThreadTests(BaseTestCase):
try:
import ctypes
except ImportError:
- if verbose:
- print("test_finalize_with_runnning_thread can't import ctypes")
- return # can't do anything
+ self.skipTest('requires ctypes')
rc = subprocess.call([sys.executable, "-c", """if 1:
import ctypes, sys, time, thread
diff --git a/Lib/test/test_timeout.py b/Lib/test/test_timeout.py
index 4bc125e..bb9252d 100644
--- a/Lib/test/test_timeout.py
+++ b/Lib/test/test_timeout.py
@@ -178,16 +178,19 @@ class TimeoutTestCase(unittest.TestCase):
"timeout (%g) is %g seconds more than expected (%g)"
%(_delta, self.fuzz, _timeout))
+ @unittest.skip('test not implemented')
def testSend(self):
# Test send() timeout
# couldn't figure out how to test it
pass
+ @unittest.skip('test not implemented')
def testSendto(self):
# Test sendto() timeout
# couldn't figure out how to test it
pass
+ @unittest.skip('test not implemented')
def testSendall(self):
# Test sendall() timeout
# couldn't figure out how to test it
diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py
index 925d25a..cbdaddd 100644
--- a/Lib/test/test_unicode.py
+++ b/Lib/test/test_unicode.py
@@ -1278,12 +1278,12 @@ class UnicodeTest(
self.assertEqual(repr(s1()), '\\n')
self.assertEqual(repr(s2()), '\\n')
+ # This test only affects 32-bit platforms because expandtabs can only take
+ # an int as the max value, not a 64-bit C long. If expandtabs is changed
+ # to take a 64-bit long, this test should apply to all platforms.
+ @unittest.skipIf(sys.maxint > (1 << 32) or struct.calcsize('P') != 4,
+ 'only applies to 32-bit platforms')
def test_expandtabs_overflows_gracefully(self):
- # This test only affects 32-bit platforms because expandtabs can only take
- # an int as the max value, not a 64-bit C long. If expandtabs is changed
- # to take a 64-bit long, this test should apply to all platforms.
- if sys.maxint > (1 << 32) or struct.calcsize('P') != 4:
- return
self.assertRaises(OverflowError, u't\tt\t'.expandtabs, sys.maxint)
def test__format__(self):
diff --git a/Lib/test/test_urllibnet.py b/Lib/test/test_urllibnet.py
index 1d88331..4ce7a9b 100644
--- a/Lib/test/test_urllibnet.py
+++ b/Lib/test/test_urllibnet.py
@@ -112,12 +112,9 @@ class urlopenNetworkTests(unittest.TestCase):
open_url.close()
self.assertEqual(code, 404)
+ @unittest.skipIf(sys.platform in ('win32',), 'not appropriate for Windows')
+ @unittest.skipUnless(hasattr(os, 'fdopen'), 'os.fdopen not available')
def test_fileno(self):
- if (sys.platform in ('win32',) or
- not hasattr(os, 'fdopen')):
- # On Windows, socket handles are not file descriptors; this
- # test can't pass on Windows.
- return
# Make sure fd returned by fileno is valid.
open_url = self.urlopen("http://www.python.org/")
fd = open_url.fileno()
diff --git a/Lib/test/test_warnings.py b/Lib/test/test_warnings.py
index e4850a4..a770ba2 100644
--- a/Lib/test/test_warnings.py
+++ b/Lib/test/test_warnings.py
@@ -668,7 +668,7 @@ class CatchWarningTests(BaseTest):
# Explicit tests for the test_support convenience wrapper
wmod = self.module
if wmod is not sys.modules['warnings']:
- return
+ self.skipTest('module to test is not loaded warnings module')
with test_support.check_warnings(quiet=False) as w:
self.assertEqual(w.warnings, [])
wmod.simplefilter("always")
diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
index 8e65fde..09235fd 100644
--- a/Lib/test/test_xmlrpc.py
+++ b/Lib/test/test_xmlrpc.py
@@ -19,6 +19,11 @@ except ImportError:
threading = None
try:
+ import gzip
+except ImportError:
+ gzip = None
+
+try:
unicode
except NameError:
have_unicode = False
@@ -681,6 +686,7 @@ class KeepaliveServerTestCase2(BaseKeepaliveServerTestCase):
#A test case that verifies that gzip encoding works in both directions
#(for a request and the response)
+@unittest.skipUnless(gzip, 'gzip not available')
class GzipServerTestCase(BaseServerTestCase):
#a request handler that supports keep-alive and logs requests into a
#class variable
@@ -1011,11 +1017,7 @@ def test_main():
xmlrpc_tests.append(SimpleServerTestCase)
xmlrpc_tests.append(KeepaliveServerTestCase1)
xmlrpc_tests.append(KeepaliveServerTestCase2)
- try:
- import gzip
- xmlrpc_tests.append(GzipServerTestCase)
- except ImportError:
- pass #gzip not supported in this build
+ xmlrpc_tests.append(GzipServerTestCase)
xmlrpc_tests.append(MultiPathServerTestCase)
xmlrpc_tests.append(ServerProxyTestCase)
xmlrpc_tests.append(FailingServerTestCase)
diff --git a/Lib/test/test_zipimport.py b/Lib/test/test_zipimport.py
index a66738a..bb91c63 100644
--- a/Lib/test/test_zipimport.py
+++ b/Lib/test/test_zipimport.py
@@ -123,7 +123,7 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase):
# so we'll simply skip it then. Bug #765456.
#
if "zlib" in sys.builtin_module_names:
- return
+ self.skipTest('zlib is a builtin module')
if "zlib" in sys.modules:
del sys.modules["zlib"]
files = {"zlib.py": (NOW, test_src)}