diff options
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_format.py | 411 | ||||
-rw-r--r-- | Lib/test/test_imaplib.py | 27 | ||||
-rw-r--r-- | Lib/test/test_mailbox.py | 8 | ||||
-rw-r--r-- | Lib/test/test_ntpath.py | 345 | ||||
-rw-r--r-- | Lib/test/test_timeout.py | 15 |
5 files changed, 418 insertions, 388 deletions
diff --git a/Lib/test/test_format.py b/Lib/test/test_format.py index 53e7d04..cbb7be8 100644 --- a/Lib/test/test_format.py +++ b/Lib/test/test_format.py @@ -1,7 +1,9 @@ from test.test_support import verbose, TestFailed import sys -from test.test_support import MAX_Py_ssize_t -maxsize = MAX_Py_ssize_t +import test.test_support as test_support +import unittest + +maxsize = test_support.MAX_Py_ssize_t # test string formatting operator (I am not sure if this is being tested # elsewhere but, surely, some of the given cases are *not* tested because @@ -33,8 +35,10 @@ def testformat(formatstr, args, output=None, limit=None): elif output and limit is None and result != output: if verbose: print('no') - print("%r %% %r == %r != %r" %\ - (formatstr, args, result, output)) + #print("%r %% %r == %r != %r" %\ + # (formatstr, args, result, output)) + raise AssertionError("%r %% %r == %r != %r" % + (formatstr, args, result, output)) # when 'limit' is specified, it determines how many characters # must match exactly; lengths must always match. # ex: limit=5, '12345678' matches '12345___' @@ -50,207 +54,210 @@ def testformat(formatstr, args, output=None, limit=None): if verbose: print('yes') -testformat("%.1d", (1,), "1") -testformat("%.*d", (sys.maxsize,1)) # expect overflow -testformat("%.100d", (1,), '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') -testformat("%#.117x", (1,), '0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') -testformat("%#.118x", (1,), '0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') - -testformat("%f", (1.0,), "1.000000") -# these are trying to test the limits of the internal magic-number-length -# formatting buffer, if that number changes then these tests are less -# effective -testformat("%#.*g", (109, -1.e+49/3.)) -testformat("%#.*g", (110, -1.e+49/3.)) -testformat("%#.*g", (110, -1.e+100/3.)) - -# test some ridiculously large precision, expect overflow -testformat('%12.*f', (123456, 1.0)) - -# check for internal overflow validation on length of precision -overflowrequired = 1 -testformat("%#.*g", (110, -1.e+100/3.)) -testformat("%#.*G", (110, -1.e+100/3.)) -testformat("%#.*f", (110, -1.e+100/3.)) -testformat("%#.*F", (110, -1.e+100/3.)) -overflowrequired = 0 - -# Formatting of long integers. Overflow is not ok -overflowok = 0 -testformat("%x", 10, "a") -testformat("%x", 100000000000, "174876e800") -testformat("%o", 10, "12") -testformat("%o", 100000000000, "1351035564000") -testformat("%d", 10, "10") -testformat("%d", 100000000000, "100000000000") - -big = 123456789012345678901234567890 -testformat("%d", big, "123456789012345678901234567890") -testformat("%d", -big, "-123456789012345678901234567890") -testformat("%5d", -big, "-123456789012345678901234567890") -testformat("%31d", -big, "-123456789012345678901234567890") -testformat("%32d", -big, " -123456789012345678901234567890") -testformat("%-32d", -big, "-123456789012345678901234567890 ") -testformat("%032d", -big, "-0123456789012345678901234567890") -testformat("%-032d", -big, "-123456789012345678901234567890 ") -testformat("%034d", -big, "-000123456789012345678901234567890") -testformat("%034d", big, "0000123456789012345678901234567890") -testformat("%0+34d", big, "+000123456789012345678901234567890") -testformat("%+34d", big, " +123456789012345678901234567890") -testformat("%34d", big, " 123456789012345678901234567890") -testformat("%.2d", big, "123456789012345678901234567890") -testformat("%.30d", big, "123456789012345678901234567890") -testformat("%.31d", big, "0123456789012345678901234567890") -testformat("%32.31d", big, " 0123456789012345678901234567890") -testformat("%d", float(big), "123456________________________", 6) - -big = 0x1234567890abcdef12345 # 21 hex digits -testformat("%x", big, "1234567890abcdef12345") -testformat("%x", -big, "-1234567890abcdef12345") -testformat("%5x", -big, "-1234567890abcdef12345") -testformat("%22x", -big, "-1234567890abcdef12345") -testformat("%23x", -big, " -1234567890abcdef12345") -testformat("%-23x", -big, "-1234567890abcdef12345 ") -testformat("%023x", -big, "-01234567890abcdef12345") -testformat("%-023x", -big, "-1234567890abcdef12345 ") -testformat("%025x", -big, "-0001234567890abcdef12345") -testformat("%025x", big, "00001234567890abcdef12345") -testformat("%0+25x", big, "+0001234567890abcdef12345") -testformat("%+25x", big, " +1234567890abcdef12345") -testformat("%25x", big, " 1234567890abcdef12345") -testformat("%.2x", big, "1234567890abcdef12345") -testformat("%.21x", big, "1234567890abcdef12345") -testformat("%.22x", big, "01234567890abcdef12345") -testformat("%23.22x", big, " 01234567890abcdef12345") -testformat("%-23.22x", big, "01234567890abcdef12345 ") -testformat("%X", big, "1234567890ABCDEF12345") -testformat("%#X", big, "0X1234567890ABCDEF12345") -testformat("%#x", big, "0x1234567890abcdef12345") -testformat("%#x", -big, "-0x1234567890abcdef12345") -testformat("%#.23x", -big, "-0x001234567890abcdef12345") -testformat("%#+.23x", big, "+0x001234567890abcdef12345") -testformat("%# .23x", big, " 0x001234567890abcdef12345") -testformat("%#+.23X", big, "+0X001234567890ABCDEF12345") -testformat("%#-+.23X", big, "+0X001234567890ABCDEF12345") -testformat("%#-+26.23X", big, "+0X001234567890ABCDEF12345") -testformat("%#-+27.23X", big, "+0X001234567890ABCDEF12345 ") -testformat("%#+27.23X", big, " +0X001234567890ABCDEF12345") -# next one gets two leading zeroes from precision, and another from the -# 0 flag and the width -testformat("%#+027.23X", big, "+0X0001234567890ABCDEF12345") -# same, except no 0 flag -testformat("%#+27.23X", big, " +0X001234567890ABCDEF12345") -testformat("%x", float(big), "123456_______________", 6) - -big = 0o12345670123456701234567012345670 # 32 octal digits -testformat("%o", big, "12345670123456701234567012345670") -testformat("%o", -big, "-12345670123456701234567012345670") -testformat("%5o", -big, "-12345670123456701234567012345670") -testformat("%33o", -big, "-12345670123456701234567012345670") -testformat("%34o", -big, " -12345670123456701234567012345670") -testformat("%-34o", -big, "-12345670123456701234567012345670 ") -testformat("%034o", -big, "-012345670123456701234567012345670") -testformat("%-034o", -big, "-12345670123456701234567012345670 ") -testformat("%036o", -big, "-00012345670123456701234567012345670") -testformat("%036o", big, "000012345670123456701234567012345670") -testformat("%0+36o", big, "+00012345670123456701234567012345670") -testformat("%+36o", big, " +12345670123456701234567012345670") -testformat("%36o", big, " 12345670123456701234567012345670") -testformat("%.2o", big, "12345670123456701234567012345670") -testformat("%.32o", big, "12345670123456701234567012345670") -testformat("%.33o", big, "012345670123456701234567012345670") -testformat("%34.33o", big, " 012345670123456701234567012345670") -testformat("%-34.33o", big, "012345670123456701234567012345670 ") -testformat("%o", big, "12345670123456701234567012345670") -testformat("%#o", big, "0o12345670123456701234567012345670") -testformat("%#o", -big, "-0o12345670123456701234567012345670") -testformat("%#.34o", -big, "-0o0012345670123456701234567012345670") -testformat("%#+.34o", big, "+0o0012345670123456701234567012345670") -testformat("%# .34o", big, " 0o0012345670123456701234567012345670") -testformat("%#-+.34o", big, "+0o0012345670123456701234567012345670") -testformat("%#-+39.34o", big, "+0o0012345670123456701234567012345670 ") -testformat("%#+39.34o", big, " +0o0012345670123456701234567012345670") -# next one gets one leading zero from precision -testformat("%.33o", big, "012345670123456701234567012345670") -# one leading zero from precision -testformat("%#.33o", big, "0o012345670123456701234567012345670") -# leading zero vanishes -testformat("%#.32o", big, "0o12345670123456701234567012345670") -# one leading zero from precision, and another from '0' flag & width -testformat("%034.33o", big, "0012345670123456701234567012345670") -# max width includes base marker; padding zeroes come after marker -testformat("%0#38.33o", big, "0o000012345670123456701234567012345670") -# padding spaces come before marker -testformat("%#36.33o", big, " 0o012345670123456701234567012345670") -testformat("%o", float(big), "123456__________________________", 6) -# Some small ints, in both Python int and long flavors). -testformat("%d", 42, "42") -testformat("%d", -42, "-42") -testformat("%#x", 1, "0x1") -testformat("%#X", 1, "0X1") -testformat("%#o", 1, "0o1") -testformat("%#o", 1, "0o1") -testformat("%#o", 0, "0o0") -testformat("%#o", 0, "0o0") -testformat("%o", 0, "0") -testformat("%d", 0, "0") -testformat("%#x", 0, "0x0") -testformat("%#X", 0, "0X0") +class FormatTest(unittest.TestCase): + def test_format(self): + testformat("%.1d", (1,), "1") + testformat("%.*d", (sys.maxsize,1)) # expect overflow + testformat("%.100d", (1,), '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') + testformat("%#.117x", (1,), '0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') + testformat("%#.118x", (1,), '0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') -testformat("%x", 0x42, "42") -testformat("%x", -0x42, "-42") -testformat("%x", float(0x42), "42") + testformat("%f", (1.0,), "1.000000") + # these are trying to test the limits of the internal magic-number-length + # formatting buffer, if that number changes then these tests are less + # effective + testformat("%#.*g", (109, -1.e+49/3.)) + testformat("%#.*g", (110, -1.e+49/3.)) + testformat("%#.*g", (110, -1.e+100/3.)) + # test some ridiculously large precision, expect overflow + testformat('%12.*f', (123456, 1.0)) + # check for internal overflow validation on length of precision + overflowrequired = 1 + testformat("%#.*g", (110, -1.e+100/3.)) + testformat("%#.*G", (110, -1.e+100/3.)) + testformat("%#.*f", (110, -1.e+100/3.)) + testformat("%#.*F", (110, -1.e+100/3.)) + overflowrequired = 0 + # Formatting of integers. Overflow is not ok + overflowok = 0 + testformat("%x", 10, "a") + testformat("%x", 100000000000, "174876e800") + testformat("%o", 10, "12") + testformat("%o", 100000000000, "1351035564000") + testformat("%d", 10, "10") + testformat("%d", 100000000000, "100000000000") + big = 123456789012345678901234567890 + testformat("%d", big, "123456789012345678901234567890") + testformat("%d", -big, "-123456789012345678901234567890") + testformat("%5d", -big, "-123456789012345678901234567890") + testformat("%31d", -big, "-123456789012345678901234567890") + testformat("%32d", -big, " -123456789012345678901234567890") + testformat("%-32d", -big, "-123456789012345678901234567890 ") + testformat("%032d", -big, "-0123456789012345678901234567890") + testformat("%-032d", -big, "-123456789012345678901234567890 ") + testformat("%034d", -big, "-000123456789012345678901234567890") + testformat("%034d", big, "0000123456789012345678901234567890") + testformat("%0+34d", big, "+000123456789012345678901234567890") + testformat("%+34d", big, " +123456789012345678901234567890") + testformat("%34d", big, " 123456789012345678901234567890") + testformat("%.2d", big, "123456789012345678901234567890") + testformat("%.30d", big, "123456789012345678901234567890") + testformat("%.31d", big, "0123456789012345678901234567890") + testformat("%32.31d", big, " 0123456789012345678901234567890") + testformat("%d", float(big), "123456________________________", 6) + big = 0x1234567890abcdef12345 # 21 hex digits + testformat("%x", big, "1234567890abcdef12345") + testformat("%x", -big, "-1234567890abcdef12345") + testformat("%5x", -big, "-1234567890abcdef12345") + testformat("%22x", -big, "-1234567890abcdef12345") + testformat("%23x", -big, " -1234567890abcdef12345") + testformat("%-23x", -big, "-1234567890abcdef12345 ") + testformat("%023x", -big, "-01234567890abcdef12345") + testformat("%-023x", -big, "-1234567890abcdef12345 ") + testformat("%025x", -big, "-0001234567890abcdef12345") + testformat("%025x", big, "00001234567890abcdef12345") + testformat("%0+25x", big, "+0001234567890abcdef12345") + testformat("%+25x", big, " +1234567890abcdef12345") + testformat("%25x", big, " 1234567890abcdef12345") + testformat("%.2x", big, "1234567890abcdef12345") + testformat("%.21x", big, "1234567890abcdef12345") + testformat("%.22x", big, "01234567890abcdef12345") + testformat("%23.22x", big, " 01234567890abcdef12345") + testformat("%-23.22x", big, "01234567890abcdef12345 ") + testformat("%X", big, "1234567890ABCDEF12345") + testformat("%#X", big, "0X1234567890ABCDEF12345") + testformat("%#x", big, "0x1234567890abcdef12345") + testformat("%#x", -big, "-0x1234567890abcdef12345") + testformat("%#.23x", -big, "-0x001234567890abcdef12345") + testformat("%#+.23x", big, "+0x001234567890abcdef12345") + testformat("%# .23x", big, " 0x001234567890abcdef12345") + testformat("%#+.23X", big, "+0X001234567890ABCDEF12345") + testformat("%#-+.23X", big, "+0X001234567890ABCDEF12345") + testformat("%#-+26.23X", big, "+0X001234567890ABCDEF12345") + testformat("%#-+27.23X", big, "+0X001234567890ABCDEF12345 ") + testformat("%#+27.23X", big, " +0X001234567890ABCDEF12345") + # next one gets two leading zeroes from precision, and another from the + # 0 flag and the width + testformat("%#+027.23X", big, "+0X0001234567890ABCDEF12345") + # same, except no 0 flag + testformat("%#+27.23X", big, " +0X001234567890ABCDEF12345") + testformat("%x", float(big), "123456_______________", 6) + big = 0o12345670123456701234567012345670 # 32 octal digits + testformat("%o", big, "12345670123456701234567012345670") + testformat("%o", -big, "-12345670123456701234567012345670") + testformat("%5o", -big, "-12345670123456701234567012345670") + testformat("%33o", -big, "-12345670123456701234567012345670") + testformat("%34o", -big, " -12345670123456701234567012345670") + testformat("%-34o", -big, "-12345670123456701234567012345670 ") + testformat("%034o", -big, "-012345670123456701234567012345670") + testformat("%-034o", -big, "-12345670123456701234567012345670 ") + testformat("%036o", -big, "-00012345670123456701234567012345670") + testformat("%036o", big, "000012345670123456701234567012345670") + testformat("%0+36o", big, "+00012345670123456701234567012345670") + testformat("%+36o", big, " +12345670123456701234567012345670") + testformat("%36o", big, " 12345670123456701234567012345670") + testformat("%.2o", big, "12345670123456701234567012345670") + testformat("%.32o", big, "12345670123456701234567012345670") + testformat("%.33o", big, "012345670123456701234567012345670") + testformat("%34.33o", big, " 012345670123456701234567012345670") + testformat("%-34.33o", big, "012345670123456701234567012345670 ") + testformat("%o", big, "12345670123456701234567012345670") + testformat("%#o", big, "0o12345670123456701234567012345670") + testformat("%#o", -big, "-0o12345670123456701234567012345670") + testformat("%#.34o", -big, "-0o0012345670123456701234567012345670") + testformat("%#+.34o", big, "+0o0012345670123456701234567012345670") + testformat("%# .34o", big, " 0o0012345670123456701234567012345670") + testformat("%#+.34o", big, "+0o0012345670123456701234567012345670") + testformat("%#-+.34o", big, "+0o0012345670123456701234567012345670") + testformat("%#-+37.34o", big, "+0o0012345670123456701234567012345670") + testformat("%#+37.34o", big, "+0o0012345670123456701234567012345670") + # next one gets one leading zero from precision + testformat("%.33o", big, "012345670123456701234567012345670") + # base marker shouldn't change that, since "0" is redundant + testformat("%#.33o", big, "0o012345670123456701234567012345670") + # but reduce precision, and base marker should add a zero + testformat("%#.32o", big, "0o12345670123456701234567012345670") + # one leading zero from precision, and another from "0" flag & width + testformat("%034.33o", big, "0012345670123456701234567012345670") + # base marker shouldn't change that + testformat("%0#34.33o", big, "0o012345670123456701234567012345670") + testformat("%o", float(big), "123456__________________________", 6) + # Some small ints, in both Python int and flavors). + testformat("%d", 42, "42") + testformat("%d", -42, "-42") + testformat("%d", 42, "42") + testformat("%d", -42, "-42") + testformat("%d", 42.0, "42") + testformat("%#x", 1, "0x1") + testformat("%#x", 1, "0x1") + testformat("%#X", 1, "0X1") + testformat("%#X", 1, "0X1") + testformat("%#x", 1.0, "0x1") + testformat("%#o", 1, "0o1") + testformat("%#o", 1, "0o1") + testformat("%#o", 0, "0o0") + testformat("%#o", 0, "0o0") + testformat("%o", 0, "0") + testformat("%o", 0, "0") + testformat("%d", 0, "0") + testformat("%d", 0, "0") + testformat("%#x", 0, "0x0") + testformat("%#x", 0, "0x0") + testformat("%#X", 0, "0X0") + testformat("%#X", 0, "0X0") + testformat("%x", 0x42, "42") + testformat("%x", -0x42, "-42") + testformat("%x", 0x42, "42") + testformat("%x", -0x42, "-42") + testformat("%x", float(0x42), "42") + testformat("%o", 0o42, "42") + testformat("%o", -0o42, "-42") + testformat("%o", 0o42, "42") + testformat("%o", -0o42, "-42") + testformat("%o", float(0o42), "42") + # Test exception for unknown format characters + if verbose: + print('Testing exceptions') + def test_exc(formatstr, args, exception, excmsg): + try: + testformat(formatstr, args) + except exception as exc: + if str(exc) == excmsg: + if verbose: + print("yes") + else: + if verbose: print('no') + print('Unexpected ', exception, ':', repr(str(exc))) + except: + if verbose: print('no') + print('Unexpected exception') + raise + else: + raise TestFailed('did not get expected exception: %s' % excmsg) + test_exc('abc %a', 1, ValueError, + "unsupported format character 'a' (0x61) at index 5") + #test_exc(unicode('abc %\u3000','raw-unicode-escape'), 1, ValueError, + # "unsupported format character '?' (0x3000) at index 5") + test_exc('%d', '1', TypeError, "%d format: a number is required, not str") + test_exc('%g', '1', TypeError, "a float is required") + test_exc('no format', '1', TypeError, + "not all arguments converted during string formatting") + test_exc('no format', '1', TypeError, + "not all arguments converted during string formatting") -testformat("%o", 0o42, "42") -testformat("%o", -0o42, "-42") -testformat("%o", 0o42, "42") -testformat("%o", -0o42, "-42") -testformat("%o", float(0o42), "42") + if maxsize == 2**31-1: + # crashes 2.2.1 and earlier: + try: + "%*d"%(maxsize, -127) + except MemoryError: + pass + else: + raise TestFailed('"%*d"%(maxsize, -127) should fail') -# Test exception for unknown format characters -if verbose: - print('Testing exceptions') +def test_main(): + test_support.run_unittest(FormatTest) -def test_exc(formatstr, args, exception, excmsg): - try: - testformat(formatstr, args) - except exception as exc: - if str(exc) == excmsg: - if verbose: - print("yes") - else: - if verbose: print('no') - print('Unexpected ', exception, ':', repr(str(exc))) - except: - if verbose: print('no') - print('Unexpected exception') - raise - else: - raise TestFailed('did not get expected exception: %s' % excmsg) -test_exc('abc %a', 1, ValueError, - "unsupported format character 'a' (0x61) at index 5") -test_exc(str(b'abc %\u3000', 'raw-unicode-escape'), 1, ValueError, - "unsupported format character '?' (0x3000) at index 5") - -#test_exc('%d', '1', TypeError, "an integer is required") -test_exc('%d', '1', TypeError, '%d format: a number is required, not str') -test_exc('%g', '1', TypeError, "a float is required") -test_exc('no format', '1', TypeError, - "not all arguments converted during string formatting") -test_exc('no format', '1', TypeError, - "not all arguments converted during string formatting") -test_exc('no format', '1', TypeError, - "not all arguments converted during string formatting") -test_exc('no format', '1', TypeError, - "not all arguments converted during string formatting") - -if maxsize == 2**31-1: - # crashes 2.2.1 and earlier: - try: - "%*d"%(maxsize, -127) - except MemoryError: - pass - else: - raise TestFailed('"%*d"%(maxsize, -127) should fail') +if __name__ == "__main__": + unittest.main() diff --git a/Lib/test/test_imaplib.py b/Lib/test/test_imaplib.py index 78bb613..ce0e075 100644 --- a/Lib/test/test_imaplib.py +++ b/Lib/test/test_imaplib.py @@ -1,12 +1,25 @@ import imaplib import time -# We can check only that it successfully produces a result, -# not the correctness of the result itself, since the result -# depends on the timezone the machine is in. +from test import test_support +import unittest -timevalues = [2000000000, 2000000000.0, time.localtime(2000000000), - '"18-May-2033 05:33:20 +0200"'] -for t in timevalues: - imaplib.Time2Internaldate(t) +class TestImaplib(unittest.TestCase): + def test_that_Time2Internaldate_returns_a_result(self): + # We can check only that it successfully produces a result, + # not the correctness of the result itself, since the result + # depends on the timezone the machine is in. + timevalues = [2000000000, 2000000000.0, time.localtime(2000000000), + '"18-May-2033 05:33:20 +0200"'] + + for t in timevalues: + imaplib.Time2Internaldate(t) + + +def test_main(): + test_support.run_unittest(TestImaplib) + + +if __name__ == "__main__": + unittest.main() diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py index 925f878..8f4b486 100644 --- a/Lib/test/test_mailbox.py +++ b/Lib/test/test_mailbox.py @@ -374,7 +374,7 @@ class TestMailbox(TestBase): def test_flush(self): # Write changes to disk - self._test_flush_or_close(self._box.flush) + self._test_flush_or_close(self._box.flush, True) def test_lock_unlock(self): # Lock and unlock the mailbox @@ -386,15 +386,17 @@ class TestMailbox(TestBase): def test_close(self): # Close mailbox and flush changes to disk - self._test_flush_or_close(self._box.close) + self._test_flush_or_close(self._box.close, False) - def _test_flush_or_close(self, method): + def _test_flush_or_close(self, method, should_call_close): contents = [self._template % i for i in range(3)] self._box.add(contents[0]) self._box.add(contents[1]) self._box.add(contents[2]) oldbox = self._box method() + if should_call_close: + self._box.close() self._box = self._factory(self._path) keys = self._box.keys() self.assertEqual(len(keys), 3) diff --git a/Lib/test/test_ntpath.py b/Lib/test/test_ntpath.py index 3c05e63..627b167 100644 --- a/Lib/test/test_ntpath.py +++ b/Lib/test/test_ntpath.py @@ -1,174 +1,187 @@ import ntpath -from test.test_support import verbose, TestFailed import os +from test.test_support import verbose, TestFailed +import test.test_support as test_support +import unittest -errors = 0 def tester(fn, wantResult): - global errors fn = fn.replace("\\", "\\\\") gotResult = eval(fn) if wantResult != gotResult: - print("error!") - print("evaluated: " + str(fn)) - print("should be: " + str(wantResult)) - print(" returned: " + str(gotResult)) - print("") - errors = errors + 1 - -tester('ntpath.splitext("foo.ext")', ('foo', '.ext')) -tester('ntpath.splitext("/foo/foo.ext")', ('/foo/foo', '.ext')) -tester('ntpath.splitext(".ext")', ('.ext', '')) -tester('ntpath.splitext("\\foo.ext\\foo")', ('\\foo.ext\\foo', '')) -tester('ntpath.splitext("foo.ext\\")', ('foo.ext\\', '')) -tester('ntpath.splitext("")', ('', '')) -tester('ntpath.splitext("foo.bar.ext")', ('foo.bar', '.ext')) -tester('ntpath.splitext("xx/foo.bar.ext")', ('xx/foo.bar', '.ext')) -tester('ntpath.splitext("xx\\foo.bar.ext")', ('xx\\foo.bar', '.ext')) -tester('ntpath.splitext("c:a/b\\c.d")', ('c:a/b\\c', '.d')) - -tester('ntpath.splitdrive("c:\\foo\\bar")', - ('c:', '\\foo\\bar')) -tester('ntpath.splitunc("\\\\conky\\mountpoint\\foo\\bar")', - ('\\\\conky\\mountpoint', '\\foo\\bar')) -tester('ntpath.splitdrive("c:/foo/bar")', - ('c:', '/foo/bar')) -tester('ntpath.splitunc("//conky/mountpoint/foo/bar")', - ('//conky/mountpoint', '/foo/bar')) - -tester('ntpath.split("c:\\foo\\bar")', ('c:\\foo', 'bar')) -tester('ntpath.split("\\\\conky\\mountpoint\\foo\\bar")', - ('\\\\conky\\mountpoint\\foo', 'bar')) - -tester('ntpath.split("c:\\")', ('c:\\', '')) -tester('ntpath.split("\\\\conky\\mountpoint\\")', - ('\\\\conky\\mountpoint', '')) - -tester('ntpath.split("c:/")', ('c:/', '')) -tester('ntpath.split("//conky/mountpoint/")', ('//conky/mountpoint', '')) - -tester('ntpath.isabs("c:\\")', 1) -tester('ntpath.isabs("\\\\conky\\mountpoint\\")', 1) -tester('ntpath.isabs("\\foo")', 1) -tester('ntpath.isabs("\\foo\\bar")', 1) - -tester('ntpath.commonprefix(["/home/swenson/spam", "/home/swen/spam"])', - "/home/swen") -tester('ntpath.commonprefix(["\\home\\swen\\spam", "\\home\\swen\\eggs"])', - "\\home\\swen\\") -tester('ntpath.commonprefix(["/home/swen/spam", "/home/swen/spam"])', - "/home/swen/spam") - -tester('ntpath.join("")', '') -tester('ntpath.join("", "", "")', '') -tester('ntpath.join("a")', 'a') -tester('ntpath.join("/a")', '/a') -tester('ntpath.join("\\a")', '\\a') -tester('ntpath.join("a:")', 'a:') -tester('ntpath.join("a:", "b")', 'a:b') -tester('ntpath.join("a:", "/b")', 'a:/b') -tester('ntpath.join("a:", "\\b")', 'a:\\b') -tester('ntpath.join("a", "/b")', '/b') -tester('ntpath.join("a", "\\b")', '\\b') -tester('ntpath.join("a", "b", "c")', 'a\\b\\c') -tester('ntpath.join("a\\", "b", "c")', 'a\\b\\c') -tester('ntpath.join("a", "b\\", "c")', 'a\\b\\c') -tester('ntpath.join("a", "b", "\\c")', '\\c') -tester('ntpath.join("d:\\", "\\pleep")', 'd:\\pleep') -tester('ntpath.join("d:\\", "a", "b")', 'd:\\a\\b') -tester("ntpath.join('c:', '/a')", 'c:/a') -tester("ntpath.join('c:/', '/a')", 'c:/a') -tester("ntpath.join('c:/a', '/b')", '/b') -tester("ntpath.join('c:', 'd:/')", 'd:/') -tester("ntpath.join('c:/', 'd:/')", 'd:/') -tester("ntpath.join('c:/', 'd:/a/b')", 'd:/a/b') - -tester("ntpath.join('')", '') -tester("ntpath.join('', '', '', '', '')", '') -tester("ntpath.join('a')", 'a') -tester("ntpath.join('', 'a')", 'a') -tester("ntpath.join('', '', '', '', 'a')", 'a') -tester("ntpath.join('a', '')", 'a\\') -tester("ntpath.join('a', '', '', '', '')", 'a\\') -tester("ntpath.join('a\\', '')", 'a\\') -tester("ntpath.join('a\\', '', '', '', '')", 'a\\') - -tester("ntpath.normpath('A//////././//.//B')", r'A\B') -tester("ntpath.normpath('A/./B')", r'A\B') -tester("ntpath.normpath('A/foo/../B')", r'A\B') -tester("ntpath.normpath('C:A//B')", r'C:A\B') -tester("ntpath.normpath('D:A/./B')", r'D:A\B') -tester("ntpath.normpath('e:A/foo/../B')", r'e:A\B') - -tester("ntpath.normpath('C:///A//B')", r'C:\A\B') -tester("ntpath.normpath('D:///A/./B')", r'D:\A\B') -tester("ntpath.normpath('e:///A/foo/../B')", r'e:\A\B') - -tester("ntpath.normpath('..')", r'..') -tester("ntpath.normpath('.')", r'.') -tester("ntpath.normpath('')", r'.') -tester("ntpath.normpath('/')", '\\') -tester("ntpath.normpath('c:/')", 'c:\\') -tester("ntpath.normpath('/../.././..')", '\\') -tester("ntpath.normpath('c:/../../..')", 'c:\\') -tester("ntpath.normpath('../.././..')", r'..\..\..') -tester("ntpath.normpath('K:../.././..')", r'K:..\..\..') -tester("ntpath.normpath('C:////a/b')", r'C:\a\b') -tester("ntpath.normpath('//machine/share//a/b')", r'\\machine\share\a\b') - -oldenv = os.environ.copy() -try: - os.environ.clear() - os.environ["foo"] = "bar" - os.environ["{foo"] = "baz1" - os.environ["{foo}"] = "baz2" - tester('ntpath.expandvars("foo")', "foo") - tester('ntpath.expandvars("$foo bar")', "bar bar") - tester('ntpath.expandvars("${foo}bar")', "barbar") - tester('ntpath.expandvars("$[foo]bar")', "$[foo]bar") - tester('ntpath.expandvars("$bar bar")', "$bar bar") - tester('ntpath.expandvars("$?bar")', "$?bar") - tester('ntpath.expandvars("${foo}bar")', "barbar") - tester('ntpath.expandvars("$foo}bar")', "bar}bar") - tester('ntpath.expandvars("${foo")', "${foo") - tester('ntpath.expandvars("${{foo}}")', "baz1}") - tester('ntpath.expandvars("$foo$foo")', "barbar") - tester('ntpath.expandvars("$bar$bar")', "$bar$bar") - tester('ntpath.expandvars("%foo% bar")', "bar bar") - tester('ntpath.expandvars("%foo%bar")', "barbar") - tester('ntpath.expandvars("%foo%%foo%")', "barbar") - tester('ntpath.expandvars("%%foo%%foo%foo%")', "%foo%foobar") - tester('ntpath.expandvars("%?bar%")', "%?bar%") - tester('ntpath.expandvars("%foo%%bar")', "bar%bar") - tester('ntpath.expandvars("\'%foo%\'%bar")', "\'%foo%\'%bar") -finally: - os.environ.clear() - os.environ.update(oldenv) - -# ntpath.abspath() can only be used on a system with the "nt" module -# (reasonably), so we protect this test with "import nt". This allows -# the rest of the tests for the ntpath module to be run to completion -# on any platform, since most of the module is intended to be usable -# from any platform. -try: - import nt -except ImportError: - pass -else: - tester('ntpath.abspath("C:\\")', "C:\\") - -currentdir = os.path.split(os.getcwd())[-1] -tester('ntpath.relpath("a")', 'a') -tester('ntpath.relpath(os.path.abspath("a"))', 'a') -tester('ntpath.relpath("a/b")', 'a\\b') -tester('ntpath.relpath("../a/b")', '..\\a\\b') -tester('ntpath.relpath("a", "../b")', '..\\'+currentdir+'\\a') -tester('ntpath.relpath("a/b", "../c")', '..\\'+currentdir+'\\a\\b') -tester('ntpath.relpath("a", "b/c")', '..\\..\\a') -tester('ntpath.relpath("//conky/mountpoint/a", "//conky/mountpoint/b/c")', '..\\..\\a') -tester('ntpath.relpath("a", "a")', '.') - -if errors: - raise TestFailed(str(errors) + " errors.") -elif verbose: - print("No errors. Thank your lucky stars.") + raise TestFailed("%s should return: %s but returned: %s" \ + %(str(fn), str(wantResult), str(gotResult))) + + +class TestNtpath(unittest.TestCase): + def test_splitext(self): + tester('ntpath.splitext("foo.ext")', ('foo', '.ext')) + tester('ntpath.splitext("/foo/foo.ext")', ('/foo/foo', '.ext')) + tester('ntpath.splitext(".ext")', ('.ext', '')) + tester('ntpath.splitext("\\foo.ext\\foo")', ('\\foo.ext\\foo', '')) + tester('ntpath.splitext("foo.ext\\")', ('foo.ext\\', '')) + tester('ntpath.splitext("")', ('', '')) + tester('ntpath.splitext("foo.bar.ext")', ('foo.bar', '.ext')) + tester('ntpath.splitext("xx/foo.bar.ext")', ('xx/foo.bar', '.ext')) + tester('ntpath.splitext("xx\\foo.bar.ext")', ('xx\\foo.bar', '.ext')) + tester('ntpath.splitext("c:a/b\\c.d")', ('c:a/b\\c', '.d')) + + def test_splitdrive(self): + tester('ntpath.splitdrive("c:\\foo\\bar")', + ('c:', '\\foo\\bar')) + tester('ntpath.splitdrive("c:/foo/bar")', + ('c:', '/foo/bar')) + + def test_splitunc(self): + tester('ntpath.splitunc("\\\\conky\\mountpoint\\foo\\bar")', + ('\\\\conky\\mountpoint', '\\foo\\bar')) + tester('ntpath.splitunc("//conky/mountpoint/foo/bar")', + ('//conky/mountpoint', '/foo/bar')) + + def test_split(self): + tester('ntpath.split("c:\\foo\\bar")', ('c:\\foo', 'bar')) + tester('ntpath.split("\\\\conky\\mountpoint\\foo\\bar")', + ('\\\\conky\\mountpoint\\foo', 'bar')) + + tester('ntpath.split("c:\\")', ('c:\\', '')) + tester('ntpath.split("\\\\conky\\mountpoint\\")', + ('\\\\conky\\mountpoint', '')) + + tester('ntpath.split("c:/")', ('c:/', '')) + tester('ntpath.split("//conky/mountpoint/")', ('//conky/mountpoint', '')) + + def test_isabs(self): + tester('ntpath.isabs("c:\\")', 1) + tester('ntpath.isabs("\\\\conky\\mountpoint\\")', 1) + tester('ntpath.isabs("\\foo")', 1) + tester('ntpath.isabs("\\foo\\bar")', 1) + + def test_commonprefix(self): + tester('ntpath.commonprefix(["/home/swenson/spam", "/home/swen/spam"])', + "/home/swen") + tester('ntpath.commonprefix(["\\home\\swen\\spam", "\\home\\swen\\eggs"])', + "\\home\\swen\\") + tester('ntpath.commonprefix(["/home/swen/spam", "/home/swen/spam"])', + "/home/swen/spam") + + def test_join(self): + tester('ntpath.join("")', '') + tester('ntpath.join("", "", "")', '') + tester('ntpath.join("a")', 'a') + tester('ntpath.join("/a")', '/a') + tester('ntpath.join("\\a")', '\\a') + tester('ntpath.join("a:")', 'a:') + tester('ntpath.join("a:", "b")', 'a:b') + tester('ntpath.join("a:", "/b")', 'a:/b') + tester('ntpath.join("a:", "\\b")', 'a:\\b') + tester('ntpath.join("a", "/b")', '/b') + tester('ntpath.join("a", "\\b")', '\\b') + tester('ntpath.join("a", "b", "c")', 'a\\b\\c') + tester('ntpath.join("a\\", "b", "c")', 'a\\b\\c') + tester('ntpath.join("a", "b\\", "c")', 'a\\b\\c') + tester('ntpath.join("a", "b", "\\c")', '\\c') + tester('ntpath.join("d:\\", "\\pleep")', 'd:\\pleep') + tester('ntpath.join("d:\\", "a", "b")', 'd:\\a\\b') + tester("ntpath.join('c:', '/a')", 'c:/a') + tester("ntpath.join('c:/', '/a')", 'c:/a') + tester("ntpath.join('c:/a', '/b')", '/b') + tester("ntpath.join('c:', 'd:/')", 'd:/') + tester("ntpath.join('c:/', 'd:/')", 'd:/') + tester("ntpath.join('c:/', 'd:/a/b')", 'd:/a/b') + + tester("ntpath.join('')", '') + tester("ntpath.join('', '', '', '', '')", '') + tester("ntpath.join('a')", 'a') + tester("ntpath.join('', 'a')", 'a') + tester("ntpath.join('', '', '', '', 'a')", 'a') + tester("ntpath.join('a', '')", 'a\\') + tester("ntpath.join('a', '', '', '', '')", 'a\\') + tester("ntpath.join('a\\', '')", 'a\\') + tester("ntpath.join('a\\', '', '', '', '')", 'a\\') + + def test_normpath(self): + tester("ntpath.normpath('A//////././//.//B')", r'A\B') + tester("ntpath.normpath('A/./B')", r'A\B') + tester("ntpath.normpath('A/foo/../B')", r'A\B') + tester("ntpath.normpath('C:A//B')", r'C:A\B') + tester("ntpath.normpath('D:A/./B')", r'D:A\B') + tester("ntpath.normpath('e:A/foo/../B')", r'e:A\B') + + tester("ntpath.normpath('C:///A//B')", r'C:\A\B') + tester("ntpath.normpath('D:///A/./B')", r'D:\A\B') + tester("ntpath.normpath('e:///A/foo/../B')", r'e:\A\B') + + tester("ntpath.normpath('..')", r'..') + tester("ntpath.normpath('.')", r'.') + tester("ntpath.normpath('')", r'.') + tester("ntpath.normpath('/')", '\\') + tester("ntpath.normpath('c:/')", 'c:\\') + tester("ntpath.normpath('/../.././..')", '\\') + tester("ntpath.normpath('c:/../../..')", 'c:\\') + tester("ntpath.normpath('../.././..')", r'..\..\..') + tester("ntpath.normpath('K:../.././..')", r'K:..\..\..') + tester("ntpath.normpath('C:////a/b')", r'C:\a\b') + tester("ntpath.normpath('//machine/share//a/b')", r'\\machine\share\a\b') + + def test_expandvars(self): + oldenv = os.environ.copy() + try: + os.environ.clear() + os.environ["foo"] = "bar" + os.environ["{foo"] = "baz1" + os.environ["{foo}"] = "baz2" + tester('ntpath.expandvars("foo")', "foo") + tester('ntpath.expandvars("$foo bar")', "bar bar") + tester('ntpath.expandvars("${foo}bar")', "barbar") + tester('ntpath.expandvars("$[foo]bar")', "$[foo]bar") + tester('ntpath.expandvars("$bar bar")', "$bar bar") + tester('ntpath.expandvars("$?bar")', "$?bar") + tester('ntpath.expandvars("${foo}bar")', "barbar") + tester('ntpath.expandvars("$foo}bar")', "bar}bar") + tester('ntpath.expandvars("${foo")', "${foo") + tester('ntpath.expandvars("${{foo}}")', "baz1}") + tester('ntpath.expandvars("$foo$foo")', "barbar") + tester('ntpath.expandvars("$bar$bar")', "$bar$bar") + tester('ntpath.expandvars("%foo% bar")', "bar bar") + tester('ntpath.expandvars("%foo%bar")', "barbar") + tester('ntpath.expandvars("%foo%%foo%")', "barbar") + tester('ntpath.expandvars("%%foo%%foo%foo%")', "%foo%foobar") + tester('ntpath.expandvars("%?bar%")', "%?bar%") + tester('ntpath.expandvars("%foo%%bar")', "bar%bar") + tester('ntpath.expandvars("\'%foo%\'%bar")', "\'%foo%\'%bar") + finally: + os.environ.clear() + os.environ.update(oldenv) + + def test_abspath(self): + # ntpath.abspath() can only be used on a system with the "nt" module + # (reasonably), so we protect this test with "import nt". This allows + # the rest of the tests for the ntpath module to be run to completion + # on any platform, since most of the module is intended to be usable + # from any platform. + try: + import nt + except ImportError: + pass + else: + tester('ntpath.abspath("C:\\")', "C:\\") + + def test_relpath(self): + currentdir = os.path.split(os.getcwd())[-1] + tester('ntpath.relpath("a")', 'a') + tester('ntpath.relpath(os.path.abspath("a"))', 'a') + tester('ntpath.relpath("a/b")', 'a\\b') + tester('ntpath.relpath("../a/b")', '..\\a\\b') + tester('ntpath.relpath("a", "../b")', '..\\'+currentdir+'\\a') + tester('ntpath.relpath("a/b", "../c")', '..\\'+currentdir+'\\a\\b') + tester('ntpath.relpath("a", "b/c")', '..\\..\\a') + tester('ntpath.relpath("//conky/mountpoint/a", "//conky/mountpoint/b/c")', '..\\..\\a') + tester('ntpath.relpath("a", "a")', '.') + + +def test_main(): + test_support.run_unittest(TestNtpath) + + +if __name__ == "__main__": + unittest.main() diff --git a/Lib/test/test_timeout.py b/Lib/test/test_timeout.py index 5986afa..6324fc1 100644 --- a/Lib/test/test_timeout.py +++ b/Lib/test/test_timeout.py @@ -107,24 +107,19 @@ class TimeoutTestCase(unittest.TestCase): self.sock.close() def testConnectTimeout(self): - # If we are too close to www.python.org, this test will fail. - # Pick a host that should be farther away. - if (socket.getfqdn().split('.')[-2:] == ['python', 'org'] or - socket.getfqdn().split('.')[-2:-1] == ['xs4all']): - self.addr_remote = ('tut.fi', 80) - - # Lookup the IP address to avoid including the DNS lookup time + # Choose a private address that is unlikely to exist to prevent + # failures due to the connect succeeding before the timeout. + # Use a dotted IP address to avoid including the DNS lookup time # with the connect time. This avoids failing the assertion that # the timeout occurred fast enough. - self.addr_remote = (socket.gethostbyname(self.addr_remote[0]), 80) + addr = ('10.0.0.0', 12345) # Test connect() timeout _timeout = 0.001 self.sock.settimeout(_timeout) _t1 = time.time() - self.failUnlessRaises(socket.error, self.sock.connect, - self.addr_remote) + self.failUnlessRaises(socket.error, self.sock.connect, addr) _t2 = time.time() _delta = abs(_t1 - _t2) |