diff options
Diffstat (limited to 'Lib/test')
| -rw-r--r-- | Lib/test/output/test_extcall | 15 | ||||
| -rwxr-xr-x | Lib/test/regrtest.py | 15 | ||||
| -rw-r--r-- | Lib/test/test___all__.py | 5 | ||||
| -rw-r--r-- | Lib/test/test_ast.py | 2 | ||||
| -rwxr-xr-x | Lib/test/test_binascii.py | 4 | ||||
| -rw-r--r-- | Lib/test/test_bool.py | 4 | ||||
| -rw-r--r-- | Lib/test/test_builtin.py | 13 | ||||
| -rw-r--r-- | Lib/test/test_codeop.py | 4 | ||||
| -rw-r--r-- | Lib/test/test_collections.py | 6 | ||||
| -rw-r--r-- | Lib/test/test_decorators.py | 36 | ||||
| -rw-r--r-- | Lib/test/test_extcall.py | 7 | ||||
| -rw-r--r-- | Lib/test/test_httplib.py | 10 | ||||
| -rwxr-xr-x | Lib/test/test_imageop.py | 177 | ||||
| -rw-r--r-- | Lib/test/test_macfs.py | 78 | ||||
| -rw-r--r-- | Lib/test/test_macostools.py | 6 | ||||
| -rw-r--r-- | Lib/test/test_marshal.py | 24 | ||||
| -rw-r--r-- | Lib/test/test_rgbimg.py | 70 | ||||
| -rw-r--r-- | Lib/test/test_socket.py | 2 | ||||
| -rw-r--r-- | Lib/test/test_sundry.py | 133 | ||||
| -rw-r--r-- | Lib/test/test_urllib2net.py | 15 | ||||
| -rw-r--r-- | Lib/test/test_xml_etree.py | 2 | ||||
| -rw-r--r-- | Lib/test/test_xml_etree_c.py | 2 | ||||
| -rw-r--r-- | Lib/test/time_hashlib.py | 2 |
23 files changed, 184 insertions, 448 deletions
diff --git a/Lib/test/output/test_extcall b/Lib/test/output/test_extcall index faf0902718..323fe7ac14 100644 --- a/Lib/test/output/test_extcall +++ b/Lib/test/output/test_extcall @@ -9,6 +9,9 @@ test_extcall (1, 2, 3) {'a': 4, 'b': 5} (1, 2, 3, 4, 5) {'a': 6, 'b': 7} (1, 2, 3, 6, 7) {'a': 8, 'b': 9, 'x': 4, 'y': 5} +(1, 2, 3) {'a': 4, 'b': 5} +(1, 2, 3, 4, 5) {'a': 6, 'b': 7} +(1, 2, 3, 6, 7) {'a': 8, 'b': 9, 'x': 4, 'y': 5} TypeError: g() takes at least 1 positional argument (0 given) TypeError: g() takes at least 1 positional argument (0 given) TypeError: g() takes at least 1 positional argument (0 given) @@ -25,12 +28,12 @@ g() got multiple values for keyword argument 'x' g() got multiple values for keyword argument 'b' f() keywords must be strings h() got an unexpected keyword argument 'e' -h() argument after * must be a sequence -dir() argument after * must be a sequence -NoneType object argument after * must be a sequence -h() argument after ** must be a dictionary -dir() argument after ** must be a dictionary -NoneType object argument after ** must be a dictionary +h() argument after * must be a sequence, not function +dir() argument after * must be a sequence, not function +NoneType object argument after * must be a sequence, not function +h() argument after ** must be a mapping, not function +dir() argument after ** must be a mapping, not function +NoneType object argument after ** must be a mapping, not function dir() got multiple values for keyword argument 'b' 3 512 True 3 diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 1cd553c859..90a030d6ad 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -1108,7 +1108,6 @@ _expectations = { test_gdbm test_linuxaudiodev test_locale - test_macfs test_macostools test_nis test_ossaudiodev @@ -1139,7 +1138,6 @@ _expectations = { test_gdbm test_gzip test_linuxaudiodev - test_macfs test_macostools test_nis test_ossaudiodev @@ -1163,7 +1161,6 @@ _expectations = { test_gdbm test_linuxaudiodev test_locale - test_macfs test_macostools test_nis test_normalization @@ -1191,7 +1188,6 @@ _expectations = { test_gdbm test_linuxaudiodev test_locale - test_macfs test_macostools test_nis test_ossaudiodev @@ -1229,12 +1225,8 @@ class _ExpectedSkips: if test_timeout.skip_expected: self.expected.add('test_timeout') - if sys.maxint == 9223372036854775807: - self.expected.add('test_rgbimg') - self.expected.add('test_imageop') - if not sys.platform in ("mac", "darwin"): - MAC_ONLY = ["test_macostools", "test_macfs", "test_aepack", + MAC_ONLY = ["test_macostools", "test_aepack", "test_plistlib", "test_scriptpackages"] for skip in MAC_ONLY: self.expected.add(skip) @@ -1245,6 +1237,11 @@ class _ExpectedSkips: for skip in WIN_ONLY: self.expected.add(skip) + if sys.platform != 'irix': + IRIX_ONLY =["test_imageop"] + for skip in IRIX_ONLY: + self.expected.add(skip) + self.valid = True def isvalid(self): diff --git a/Lib/test/test___all__.py b/Lib/test/test___all__.py index 2c4e103522..cc3780de06 100644 --- a/Lib/test/test___all__.py +++ b/Lib/test/test___all__.py @@ -3,10 +3,6 @@ from test.test_support import verbose, run_unittest import sys import warnings -warnings.filterwarnings("ignore", - "the gopherlib module is deprecated", - DeprecationWarning, - "<string>") class AllTest(unittest.TestCase): @@ -78,7 +74,6 @@ class AllTest(unittest.TestCase): self.check_all("getpass") self.check_all("gettext") self.check_all("glob") - self.check_all("gopherlib") self.check_all("gzip") self.check_all("heapq") self.check_all("htmllib") diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py index 308ddaea8c..b8c1ed9d4d 100644 --- a/Lib/test/test_ast.py +++ b/Lib/test/test_ast.py @@ -152,7 +152,7 @@ def run_tests(): #### EVERYTHING BELOW IS GENERATED ##### exec_results = [ ('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], None, None, [], None, None, [], []), [('Pass', (1, 9))], [], None)]), -('Module', [('ClassDef', (1, 0), 'C', [], [], None, None, [('Pass', (1, 8))])]), +('Module', [('ClassDef', (1, 0), 'C', [], [], None, None, [('Pass', (1, 8))], [], )]), ('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], None, None, [], None, None, [], []), [('Return', (1, 8), ('Num', (1, 15), 1))], [], None)]), ('Module', [('Delete', (1, 0), [('Name', (1, 4), 'v', ('Del',))])]), ('Module', [('Assign', (1, 0), [('Name', (1, 0), 'v', ('Store',))], ('Num', (1, 4), 1))]), diff --git a/Lib/test/test_binascii.py b/Lib/test/test_binascii.py index 6a295e984e..a4ee7f8984 100755 --- a/Lib/test/test_binascii.py +++ b/Lib/test/test_binascii.py @@ -26,10 +26,10 @@ class BinASCIITest(unittest.TestCase): prefixes.extend(["crc_", "rlecode_", "rledecode_"]) for prefix in prefixes: name = prefix + suffix - self.assert_(callable(getattr(binascii, name))) + self.assert_(hasattr(getattr(binascii, name), '__call__')) self.assertRaises(TypeError, getattr(binascii, name)) for name in ("hexlify", "unhexlify"): - self.assert_(callable(getattr(binascii, name))) + self.assert_(hasattr(getattr(binascii, name), '__call__')) self.assertRaises(TypeError, getattr(binascii, name)) def test_base64valid(self): diff --git a/Lib/test/test_bool.py b/Lib/test/test_bool.py index 3788f08776..1fc9c05165 100644 --- a/Lib/test/test_bool.py +++ b/Lib/test/test_bool.py @@ -168,8 +168,8 @@ class BoolTest(unittest.TestCase): self.assertIs(hasattr([], "wobble"), False) def test_callable(self): - self.assertIs(callable(len), True) - self.assertIs(callable(1), False) + self.assertIs(hasattr(len, '__call__'), True) + self.assertIs(hasattr(1, '__call__'), False) def test_isinstance(self): self.assertIs(isinstance(True, bool), True) diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py index 7f1b848110..4e1375a1bf 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py @@ -146,20 +146,21 @@ class BuiltinTest(unittest.TestCase): self.assert_(isinstance(x, int)) self.assertEqual(-x, sys.maxint+1) + # XXX(nnorwitz): This test case for callable should probably be removed. def test_callable(self): - self.assert_(callable(len)) + self.assert_(hasattr(len, '__call__')) def f(): pass - self.assert_(callable(f)) + self.assert_(hasattr(f, '__call__')) class C: def meth(self): pass - self.assert_(callable(C)) + self.assert_(hasattr(C, '__call__')) x = C() - self.assert_(callable(x.meth)) - self.assert_(not callable(x)) + self.assert_(hasattr(x.meth, '__call__')) + self.assert_(not hasattr(x, '__call__')) class D(C): def __call__(self): pass y = D() - self.assert_(callable(y)) + self.assert_(hasattr(y, '__call__')) y() def test_chr(self): diff --git a/Lib/test/test_codeop.py b/Lib/test/test_codeop.py index 38a192b387..b3fd18af6a 100644 --- a/Lib/test/test_codeop.py +++ b/Lib/test/test_codeop.py @@ -13,8 +13,8 @@ if is_jython: def unify_callables(d): for n,v in d.items(): - if callable(v): - d[n] = callable + if hasattr(v, '__call__'): + d[n] = True return d class CodeopTests(unittest.TestCase): diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py index a139129007..f5dad7d223 100644 --- a/Lib/test/test_collections.py +++ b/Lib/test/test_collections.py @@ -11,7 +11,9 @@ class TestNamedTuple(unittest.TestCase): self.assertEqual(Point.__slots__, ()) self.assertEqual(Point.__module__, __name__) self.assertEqual(Point.__getitem__, tuple.__getitem__) - self.assert_('__getitem__' in Point.__dict__) # superclass methods localized + self.assertRaises(ValueError, NamedTuple, 'abc%', 'def ghi') + self.assertRaises(ValueError, NamedTuple, 'abc', 'def g%hi') + NamedTuple('Point0', 'x1 y2') # Verify that numbers are allowed in names def test_instance(self): Point = NamedTuple('Point', 'x y') @@ -50,8 +52,10 @@ class TestNamedTuple(unittest.TestCase): def test_main(verbose=None): + import collections as CollectionsModule test_classes = [TestNamedTuple] test_support.run_unittest(*test_classes) + test_support.run_doctest(CollectionsModule, verbose) if __name__ == "__main__": test_main(verbose=True) diff --git a/Lib/test/test_decorators.py b/Lib/test/test_decorators.py index 2558247b2a..1499004154 100644 --- a/Lib/test/test_decorators.py +++ b/Lib/test/test_decorators.py @@ -266,8 +266,44 @@ class TestDecorators(unittest.TestCase): self.assertEqual(bar(), 42) self.assertEqual(actions, expected_actions) +class TestClassDecorators(unittest.TestCase): + + def test_simple(self): + def plain(x): + x.extra = 'Hello' + return x + @plain + class C(object): pass + self.assertEqual(C.extra, 'Hello') + + def test_double(self): + def ten(x): + x.extra = 10 + return x + def add_five(x): + x.extra += 5 + return x + + @add_five + @ten + class C(object): pass + self.assertEqual(C.extra, 15) + + def test_order(self): + def applied_first(x): + x.extra = 'first' + return x + def applied_second(x): + x.extra = 'second' + return x + @applied_second + @applied_first + class C(object): pass + self.assertEqual(C.extra, 'second') + def test_main(): test_support.run_unittest(TestDecorators) + test_support.run_unittest(TestClassDecorators) if __name__=="__main__": test_main() diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py index 552583201c..b183189fcf 100644 --- a/Lib/test/test_extcall.py +++ b/Lib/test/test_extcall.py @@ -1,5 +1,6 @@ from test.test_support import verify, verbose, TestFailed, sortdict from UserList import UserList +from UserDict import UserDict def e(a, b): print(a, b) @@ -25,6 +26,12 @@ f(1, 2, 3, **{'a':4, 'b':5}) f(1, 2, 3, *(4, 5), **{'a':6, 'b':7}) f(1, 2, 3, x=4, y=5, *(6, 7), **{'a':8, 'b':9}) + +f(1, 2, 3, **UserDict(a=4, b=5)) +f(1, 2, 3, *(4, 5), **UserDict(a=6, b=7)) +f(1, 2, 3, x=4, y=5, *(6, 7), **UserDict(a=8, b=9)) + + # Verify clearing of SF bug #733667 try: e(c=3) diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index 035f0b909e..9238eea202 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -194,8 +194,16 @@ class TimeoutTest(TestCase): httpConn.close() +class HTTPSTimeoutTest(TestCase): +# XXX Here should be tests for HTTPS, there isn't any right now! + + def test_attributes(self): + # simple test to check it's storing it + h = httplib.HTTPSConnection(HOST, PORT, timeout=30) + self.assertEqual(h.timeout, 30) + def test_main(verbose=None): - test_support.run_unittest(HeaderTests, OfflineTest, BasicTest, TimeoutTest) + test_support.run_unittest(HeaderTests, OfflineTest, BasicTest, TimeoutTest, HTTPSTimeoutTest) if __name__ == '__main__': test_main() diff --git a/Lib/test/test_imageop.py b/Lib/test/test_imageop.py deleted file mode 100755 index d0794735fa..0000000000 --- a/Lib/test/test_imageop.py +++ /dev/null @@ -1,177 +0,0 @@ -#! /usr/bin/env python - -"""Test script for the imageop module. This has the side - effect of partially testing the imgfile module as well. - Roger E. Masse -""" - -from test.test_support import verbose, unlink - -import imageop, uu, os - -import warnings -warnings.filterwarnings("ignore", - "the rgbimg module is deprecated", - DeprecationWarning, - ".*test_imageop") - -def main(use_rgbimg=1): - - # Create binary test files - uu.decode(get_qualified_path('testrgb'+os.extsep+'uue'), 'test'+os.extsep+'rgb') - - if use_rgbimg: - image, width, height = getrgbimage('test'+os.extsep+'rgb') - else: - image, width, height = getimage('test'+os.extsep+'rgb') - - # Return the selected part of image, which should by width by height - # in size and consist of pixels of psize bytes. - if verbose: - print('crop') - newimage = imageop.crop (image, 4, width, height, 0, 0, 1, 1) - - # Return image scaled to size newwidth by newheight. No interpolation - # is done, scaling is done by simple-minded pixel duplication or removal. - # Therefore, computer-generated images or dithered images will - # not look nice after scaling. - if verbose: - print('scale') - scaleimage = imageop.scale(image, 4, width, height, 1, 1) - - # Run a vertical low-pass filter over an image. It does so by computing - # each destination pixel as the average of two vertically-aligned source - # pixels. The main use of this routine is to forestall excessive flicker - # if the image two vertically-aligned source pixels, hence the name. - if verbose: - print('tovideo') - videoimage = imageop.tovideo (image, 4, width, height) - - # Convert an rgb image to an 8 bit rgb - if verbose: - print('rgb2rgb8') - greyimage = imageop.rgb2rgb8(image, width, height) - - # Convert an 8 bit rgb image to a 24 bit rgb image - if verbose: - print('rgb82rgb') - image = imageop.rgb82rgb(greyimage, width, height) - - # Convert an rgb image to an 8 bit greyscale image - if verbose: - print('rgb2grey') - greyimage = imageop.rgb2grey(image, width, height) - - # Convert an 8 bit greyscale image to a 24 bit rgb image - if verbose: - print('grey2rgb') - image = imageop.grey2rgb(greyimage, width, height) - - # Convert a 8-bit deep greyscale image to a 1-bit deep image by - # thresholding all the pixels. The resulting image is tightly packed - # and is probably only useful as an argument to mono2grey. - if verbose: - print('grey2mono') - monoimage = imageop.grey2mono (greyimage, width, height, 0) - - # monoimage, width, height = getimage('monotest.rgb') - # Convert a 1-bit monochrome image to an 8 bit greyscale or color image. - # All pixels that are zero-valued on input get value p0 on output and - # all one-value input pixels get value p1 on output. To convert a - # monochrome black-and-white image to greyscale pass the values 0 and - # 255 respectively. - if verbose: - print('mono2grey') - greyimage = imageop.mono2grey (monoimage, width, height, 0, 255) - - # Convert an 8-bit greyscale image to a 1-bit monochrome image using a - # (simple-minded) dithering algorithm. - if verbose: - print('dither2mono') - monoimage = imageop.dither2mono (greyimage, width, height) - - # Convert an 8-bit greyscale image to a 4-bit greyscale image without - # dithering. - if verbose: - print('grey2grey4') - grey4image = imageop.grey2grey4 (greyimage, width, height) - - # Convert an 8-bit greyscale image to a 2-bit greyscale image without - # dithering. - if verbose: - print('grey2grey2') - grey2image = imageop.grey2grey2 (greyimage, width, height) - - # Convert an 8-bit greyscale image to a 2-bit greyscale image with - # dithering. As for dither2mono, the dithering algorithm is currently - # very simple. - if verbose: - print('dither2grey2') - grey2image = imageop.dither2grey2 (greyimage, width, height) - - # Convert a 4-bit greyscale image to an 8-bit greyscale image. - if verbose: - print('grey42grey') - greyimage = imageop.grey42grey (grey4image, width, height) - - # Convert a 2-bit greyscale image to an 8-bit greyscale image. - if verbose: - print('grey22grey') - image = imageop.grey22grey (grey2image, width, height) - - # Cleanup - unlink('test'+os.extsep+'rgb') - -def getrgbimage(name): - """return a tuple consisting of image (in 'imgfile' format but - using rgbimg instead) width and height""" - - import rgbimg - - try: - sizes = rgbimg.sizeofimage(name) - except rgbimg.error: - name = get_qualified_path(name) - sizes = rgbimg.sizeofimage(name) - if verbose: - print('rgbimg opening test image: %s, sizes: %s' % (name, str(sizes))) - - image = rgbimg.longimagedata(name) - return (image, sizes[0], sizes[1]) - -def getimage(name): - """return a tuple consisting of - image (in 'imgfile' format) width and height - """ - - import imgfile - - try: - sizes = imgfile.getsizes(name) - except imgfile.error: - name = get_qualified_path(name) - sizes = imgfile.getsizes(name) - if verbose: - print('imgfile opening test image: %s, sizes: %s' % (name, str(sizes))) - - image = imgfile.read(name) - return (image, sizes[0], sizes[1]) - -def get_qualified_path(name): - """ return a more qualified path to name""" - import sys - import os - path = sys.path - try: - path = [os.path.dirname(__file__)] + path - except NameError: - pass - for dir in path: - fullname = os.path.join(dir, name) - if os.path.exists(fullname): - return fullname - return name - -# rgbimg (unlike imgfile) is portable to platforms other than SGI. -# So we prefer to use it. -main(use_rgbimg=1) diff --git a/Lib/test/test_macfs.py b/Lib/test/test_macfs.py deleted file mode 100644 index e25250ba4f..0000000000 --- a/Lib/test/test_macfs.py +++ /dev/null @@ -1,78 +0,0 @@ -# Copyright (C) 2003 Python Software Foundation - -import unittest -import warnings -warnings.filterwarnings("ignore", "macfs.*", DeprecationWarning, __name__) -import macfs -import os -import sys -import tempfile -from test import test_support - -class TestMacfs(unittest.TestCase): - - def setUp(self): - fp = open(test_support.TESTFN, 'w') - fp.write('hello world\n') - fp.close() - - def tearDown(self): - try: - os.unlink(test_support.TESTFN) - except: - pass - - def test_fsspec(self): - fss = macfs.FSSpec(test_support.TESTFN) - self.assertEqual(os.path.realpath(test_support.TESTFN), fss.as_pathname()) - - def test_fsref(self): - fsr = macfs.FSRef(test_support.TESTFN) - self.assertEqual(os.path.realpath(test_support.TESTFN), fsr.as_pathname()) - - def test_fsref_unicode(self): - if sys.getfilesystemencoding(): - testfn_unicode = str(test_support.TESTFN) - fsr = macfs.FSRef(testfn_unicode) - self.assertEqual(os.path.realpath(test_support.TESTFN), fsr.as_pathname()) - - def test_coercion(self): - fss = macfs.FSSpec(test_support.TESTFN) - fsr = macfs.FSRef(test_support.TESTFN) - fss2 = fsr.as_fsspec() - fsr2 = fss.as_fsref() - self.assertEqual(fss.as_pathname(), fss2.as_pathname()) - self.assertEqual(fsr.as_pathname(), fsr2.as_pathname()) - - def test_dates(self): - import time - fss = macfs.FSSpec(test_support.TESTFN) - now = int(time.time()) - fss.SetDates(now, now+1, now+2) - dates = fss.GetDates() - self.assertEqual(dates, (now, now+1, now+2)) - - def test_ctor_type(self): - fss = macfs.FSSpec(test_support.TESTFN) - fss.SetCreatorType('Pyth', 'TEXT') - filecr, filetp = fss.GetCreatorType() - self.assertEqual((filecr, filetp), ('Pyth', 'TEXT')) - - def test_alias(self): - fss = macfs.FSSpec(test_support.TESTFN) - alias = fss.NewAlias() - fss2, changed = alias.Resolve() - self.assertEqual(changed, 0) - self.assertEqual(fss.as_pathname(), fss2.as_pathname()) - - - def test_fss_alias(self): - fss = macfs.FSSpec(test_support.TESTFN) - - -def test_main(): - test_support.run_unittest(TestMacfs) - - -if __name__ == '__main__': - test_main() diff --git a/Lib/test/test_macostools.py b/Lib/test/test_macostools.py index f3292ced32..40b690a1f6 100644 --- a/Lib/test/test_macostools.py +++ b/Lib/test/test_macostools.py @@ -51,7 +51,11 @@ class TestMacostools(unittest.TestCase): def test_touched(self): # This really only tests that nothing unforeseen happens. - macostools.touched(test_support.TESTFN) + import warnings + with test_support.guard_warnings_filter(): + warnings.filterwarnings('ignore', 'macostools.touched*', + DeprecationWarning) + macostools.touched(test_support.TESTFN) def test_copy(self): try: diff --git a/Lib/test/test_marshal.py b/Lib/test/test_marshal.py index 2af6ae7c3a..70b192dbd7 100644 --- a/Lib/test/test_marshal.py +++ b/Lib/test/test_marshal.py @@ -220,6 +220,30 @@ class BugsTestCase(unittest.TestCase): except Exception: pass + def test_loads_recursion(self): + s = 'c' + ('X' * 4*4) + '{' * 2**20 + self.assertRaises(ValueError, marshal.loads, s) + + def test_recursion_limit(self): + # Create a deeply nested structure. + head = last = [] + # The max stack depth should match the value in Python/marshal.c. + MAX_MARSHAL_STACK_DEPTH = 2000 + for i in range(MAX_MARSHAL_STACK_DEPTH - 2): + last.append([0]) + last = last[-1] + + # Verify we don't blow out the stack with dumps/load. + data = marshal.dumps(head) + new_head = marshal.loads(data) + # Don't use == to compare objects, it can exceed the recursion limit. + self.assertEqual(len(new_head), len(head)) + self.assertEqual(len(new_head[0]), len(head[0])) + self.assertEqual(len(new_head[-1]), len(head[-1])) + + last.append([0]) + self.assertRaises(ValueError, marshal.dumps, head) + def test_main(): test_support.run_unittest(IntTestCase, FloatTestCase, diff --git a/Lib/test/test_rgbimg.py b/Lib/test/test_rgbimg.py deleted file mode 100644 index 65a0f422fa..0000000000 --- a/Lib/test/test_rgbimg.py +++ /dev/null @@ -1,70 +0,0 @@ -# Testing rgbimg module - -import warnings -warnings.filterwarnings("ignore", - "the rgbimg module is deprecated", - DeprecationWarning, - ".*test_rgbimg$") -import rgbimg - -import os, uu - -from test.test_support import verbose, unlink, findfile - -class error(Exception): - pass - -print('RGBimg test suite:') - -def testimg(rgb_file, raw_file): - rgb_file = findfile(rgb_file) - raw_file = findfile(raw_file) - width, height = rgbimg.sizeofimage(rgb_file) - rgb = rgbimg.longimagedata(rgb_file) - if len(rgb) != width * height * 4: - raise error, 'bad image length' - raw = open(raw_file, 'rb').read() - if rgb != raw: - raise error, \ - 'images don\'t match for '+rgb_file+' and '+raw_file - for depth in [1, 3, 4]: - rgbimg.longstoimage(rgb, width, height, depth, '@.rgb') - os.unlink('@.rgb') - -table = [ - ('testrgb'+os.extsep+'uue', 'test'+os.extsep+'rgb'), - ('testimg'+os.extsep+'uue', 'test'+os.extsep+'rawimg'), - ('testimgr'+os.extsep+'uue', 'test'+os.extsep+'rawimg'+os.extsep+'rev'), - ] -for source, target in table: - source = findfile(source) - target = findfile(target) - if verbose: - print("uudecoding", source, "->", target, "...") - uu.decode(source, target) - -if verbose: - print("testing...") - -ttob = rgbimg.ttob(0) -if ttob != 0: - raise error, 'ttob should start out as zero' - -testimg('test'+os.extsep+'rgb', 'test'+os.extsep+'rawimg') - -ttob = rgbimg.ttob(1) -if ttob != 0: - raise error, 'ttob should be zero' - -testimg('test'+os.extsep+'rgb', 'test'+os.extsep+'rawimg'+os.extsep+'rev') - -ttob = rgbimg.ttob(0) -if ttob != 1: - raise error, 'ttob should be one' - -ttob = rgbimg.ttob(0) -if ttob != 0: - raise error, 'ttob should be zero' - -for source, target in table: - unlink(findfile(target)) diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index 5158378603..cfb293fe19 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -124,7 +124,7 @@ class ThreadableTest: self.server_ready.wait() self.client_ready.set() self.clientSetUp() - if not callable(test_func): + if not hasattr(test_func, '__call__'): raise TypeError, "test_func must be a callable function" try: test_func() diff --git a/Lib/test/test_sundry.py b/Lib/test/test_sundry.py index a37aad112d..eb4149f916 100644 --- a/Lib/test/test_sundry.py +++ b/Lib/test/test_sundry.py @@ -1,75 +1,72 @@ """Do a minimal test of all the modules that aren't otherwise tested.""" +from test.test_support import guard_warnings_filter import warnings -warnings.filterwarnings('ignore', r".*posixfile module", - DeprecationWarning, 'posixfile$') -warnings.filterwarnings("ignore", - "the gopherlib module is deprecated", - DeprecationWarning, - ".*test_sundry") +with guard_warnings_filter(): + warnings.filterwarnings('ignore', r".*posixfile", + DeprecationWarning) -from test.test_support import verbose + from test.test_support import verbose -import BaseHTTPServer -import DocXMLRPCServer -import CGIHTTPServer -import SimpleHTTPServer -import SimpleXMLRPCServer -import aifc -import audiodev -import bdb -import cgitb -import cmd -import code -import compileall -import encodings -import formatter -import ftplib -import getpass -import gopherlib -import htmlentitydefs -import ihooks -import imghdr -import imputil -import keyword -import linecache -import macurl2path -import mailcap -import mimify -import mutex -import nntplib -import nturl2path -import opcode -import os2emxpath -import pdb -import pipes -#import poplib -import posixfile -import pstats -import py_compile -import pydoc -import rlcompleter -import sched -import smtplib -import sndhdr -import statvfs -import sunau -import sunaudio -import symbol -import tabnanny -import telnetlib -import timeit -import toaiff -import token -try: - import tty # not available on Windows -except ImportError: - if verbose: - print("skipping tty") + import BaseHTTPServer + import DocXMLRPCServer + import CGIHTTPServer + import SimpleHTTPServer + import SimpleXMLRPCServer + import aifc + import audiodev + import bdb + import cgitb + import cmd + import code + import compileall + import encodings + import formatter + import ftplib + import getpass + import htmlentitydefs + import ihooks + import imghdr + import imputil + import keyword + import linecache + import macurl2path + import mailcap + import mimify + import mutex + import nntplib + import nturl2path + import opcode + import os2emxpath + import pdb + import pipes + #import poplib + import posixfile + import pstats + import py_compile + import pydoc + import rlcompleter + import sched + import smtplib + import sndhdr + import statvfs + import sunau + import sunaudio + import symbol + import tabnanny + import telnetlib + import timeit + import toaiff + import token + try: + import tty # not available on Windows + except ImportError: + if verbose: + print("skipping tty") -# Can't test the "user" module -- if the user has a ~/.pythonrc.py, it -# can screw up all sorts of things (esp. if it prints!). -#import user -import webbrowser -import xml + # Can't test the "user" module -- if the user has a ~/.pythonrc.py, it + # can screw up all sorts of things (esp. if it prints!). + #import user + import webbrowser + import xml diff --git a/Lib/test/test_urllib2net.py b/Lib/test/test_urllib2net.py index a52c3dd149..537b738d80 100644 --- a/Lib/test/test_urllib2net.py +++ b/Lib/test/test_urllib2net.py @@ -173,19 +173,6 @@ class OtherNetworkTests(unittest.TestCase): ] self._test_urls(urls, self._extra_handlers()) - def test_gopher(self): - import warnings - warnings.filterwarnings("ignore", - "the gopherlib module is deprecated", - DeprecationWarning, - "urllib2$") - urls = [ - # Thanks to Fred for finding these! - 'gopher://gopher.lib.ncsu.edu./11/library/stacks/Alex', - 'gopher://gopher.vt.edu.:10010/10/33', - ] - self._test_urls(urls, self._extra_handlers()) - def test_file(self): TESTFN = test_support.TESTFN f = open(TESTFN, 'w') @@ -274,8 +261,6 @@ class OtherNetworkTests(unittest.TestCase): def _extra_handlers(self): handlers = [] - handlers.append(urllib2.GopherHandler) - cfh = urllib2.CacheFTPHandler() cfh.setTimeout(1) handlers.append(cfh) diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index 3e214f8dca..4e21fd9973 100644 --- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -36,7 +36,7 @@ def sanity(): """ def check_method(method): - if not callable(method): + if not hasattr(method, '__call__'): print(method, "not callable") def serialize(ET, elem, encoding=None): diff --git a/Lib/test/test_xml_etree_c.py b/Lib/test/test_xml_etree_c.py index d9760c6aa5..1479247c92 100644 --- a/Lib/test/test_xml_etree_c.py +++ b/Lib/test/test_xml_etree_c.py @@ -34,7 +34,7 @@ def sanity(): """ def check_method(method): - if not callable(method): + if not hasattr(method, '__call__'): print(method, "not callable") def serialize(ET, elem, encoding=None): diff --git a/Lib/test/time_hashlib.py b/Lib/test/time_hashlib.py index 5b96d0e62f..df12f83d97 100644 --- a/Lib/test/time_hashlib.py +++ b/Lib/test/time_hashlib.py @@ -55,7 +55,7 @@ elif hName == '_hashlib' and len(sys.argv) == 3: import _hashlib exec('creatorFunc = lambda x=_hashlib.new : x(%r)' % sys.argv[2]) print("testing speed of _hashlib.new(%r)" % sys.argv[2]) -elif hasattr(hashlib, hName) and callable(getattr(hashlib, hName)): +elif hasattr(hashlib, hName) and hasattr(getattr(hashlib, hName), '__call__'): creatorFunc = getattr(hashlib, hName) print("testing speed of hashlib."+hName, getattr(hashlib, hName)) else: |
