diff options
author | Guido van Rossum <guido@python.org> | 1997-08-13 22:34:14 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1997-08-13 22:34:14 (GMT) |
commit | 95e8053a9ff42a544197e562fdf4c462fc34e8b4 (patch) | |
tree | 06a4d3c599317f90f7a73027b1648bece2a059b2 /Lib/test | |
parent | a74ef66ac82edd5a587606daef57ff6c26279280 (diff) | |
download | cpython-95e8053a9ff42a544197e562fdf4c462fc34e8b4.zip cpython-95e8053a9ff42a544197e562fdf4c462fc34e8b4.tar.gz cpython-95e8053a9ff42a544197e562fdf4c462fc34e8b4.tar.bz2 |
1.5a3 prerelease 1 from AMK
Diffstat (limited to 'Lib/test')
-rwxr-xr-x | Lib/test/re_tests.py | 15 | ||||
-rw-r--r-- | Lib/test/regex_tests.py | 8 | ||||
-rw-r--r-- | Lib/test/test_re.py | 13 |
3 files changed, 32 insertions, 4 deletions
diff --git a/Lib/test/re_tests.py b/Lib/test/re_tests.py index eb50558..9143938 100755 --- a/Lib/test/re_tests.py +++ b/Lib/test/re_tests.py @@ -318,6 +318,7 @@ tests = [ # ('((((((((((a))))))))))\\41', 'aa', FAIL), # ('((((((((((a))))))))))\\41', 'a!', SUCCEED, 'found', 'a!'), ('((((((((((a))))))))))\\41', '', SYNTAX_ERROR), + ('(?i)((((((((((a))))))))))\\41', '', SYNTAX_ERROR), ('(((((((((a)))))))))', 'a', SUCCEED, 'found', 'a'), ('multiple words of text', 'uh-uh', FAIL), ('multiple words', 'multiple words, yeah', SUCCEED, 'found', 'multiple words'), @@ -448,7 +449,6 @@ tests = [ ('(?i)((((((((((a))))))))))\\10', 'AA', SUCCEED, 'found', 'AA'), #('(?i)((((((((((a))))))))))\\41', 'AA', FAIL), #('(?i)((((((((((a))))))))))\\41', 'A!', SUCCEED, 'found', 'A!'), - ('(?i)((((((((((a))))))))))\\41', '', SYNTAX_ERROR), ('(?i)(((((((((a)))))))))', 'A', SUCCEED, 'found', 'A'), ('(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))', 'A', SUCCEED, 'g1', 'A'), ('(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))', 'C', SUCCEED, 'g1', 'C'), @@ -506,10 +506,21 @@ xyzabc ('a.b', 'a\nb', FAIL), ('(?s)a.b', 'a\nb', SUCCEED, 'found', 'a\nb'), - # test \w, etc. + # test \w, etc. both inside and outside character classes ('\\w+', '--ab_cd0123--', SUCCEED, 'found', 'ab_cd0123'), + ('[\\w]+', '--ab_cd0123--', SUCCEED, 'found', 'ab_cd0123'), ('\\D+', '1234abc5678', SUCCEED, 'found', 'abc'), + ('[\\D]+', '1234abc5678', SUCCEED, 'found', 'abc'), ('[\\da-fA-F]+', '123abc', SUCCEED, 'found', '123abc'), ('[\\d-x]', '-', SYNTAX_ERROR), + (r'([\s]*)([\S]*)([\s]*)', ' testing!1972', SUCCEED, 'g3+g2+g1', 'testing!1972 '), + (r'(\s*)(\S*)(\s*)', ' testing!1972', SUCCEED, 'g3+g2+g1', 'testing!1972 '), + + (r'\xff', '\377', SUCCEED, 'found', chr(255)), + (r'\x00ff', '\377', SUCCEED, 'found', chr(255)), + (r'\t\n\v\r\f\a\g', '\t\n\v\r\f\ag', SUCCEED, 'found', '\t\n\v\r\f\ag'), + ('\t\n\v\r\f\a\g', '\t\n\v\r\f\ag', SUCCEED, 'found', '\t\n\v\r\f\ag'), + (r'\t\n\v\r\f\a', '\t\n\v\r\f\a', SUCCEED, 'found', chr(9)+chr(10)+chr(11)+chr(13)+chr(12)+chr(7)), + (r'[\t][\n][\v][\r][\f][\a][\A][\b][\B][\Z][\g]', '\t\n\v\r\f\aA\bBZg', SUCCEED, 'found', '\t\n\v\r\f\aA\bBZg'), ] diff --git a/Lib/test/regex_tests.py b/Lib/test/regex_tests.py index 70ecdab..dcb980a 100644 --- a/Lib/test/regex_tests.py +++ b/Lib/test/regex_tests.py @@ -278,6 +278,12 @@ tests = [ ('\\([xyz]*\\)x', 'abcx', SUCCEED, 'found+"-"+g1', 'x-'), ('\\(a\\)+b\\|aac', 'aac', SUCCEED, - 'found+"-"+g1', 'aac-None') + 'found+"-"+g1', 'aac-None'), +('\<a', 'a', SUCCEED, 'found', 'a'), +('\<a', '!', FAIL), +('a\<b', 'ab', FAIL), +('a\>', 'ab', FAIL), +('a\>', 'a!', SUCCEED, 'found', 'a'), +('a\>', 'a', SUCCEED, 'found', 'a'), ] diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py index 1581856..c4b21cf 100644 --- a/Lib/test/test_re.py +++ b/Lib/test/test_re.py @@ -31,6 +31,10 @@ try: assert re.sub('(?P<a>x)', '\g<a>\g<a>', 'xx') == 'xxxx' + assert re.sub('a', r'\t\n\v\r\f\a\b\B\Z\a\A\w\W\s\S\d\D', 'a') == '\t\n\v\r\f\a\bBZ\aAwWsSdD' + assert re.sub('a', '\t\n\v\r\f\a', 'a') == '\t\n\v\r\f\a' + assert re.sub('a', '\t\n\v\r\f\a', 'a') == (chr(9)+chr(10)+chr(11)+chr(13)+chr(12)+chr(7)) + except AssertionError: raise TestFailed, "re.sub" @@ -120,7 +124,6 @@ if verbose: print 'Running re_tests test suite' for t in tests: - print t sys.stdout.flush() pattern=s=outcome=repl=expected=None if len(t)==5: @@ -136,6 +139,7 @@ for t in tests: if outcome==SYNTAX_ERROR: pass # Expected a syntax error else: print '=== Syntax error:', t + except KeyboardInterrupt: raise KeyboardInterrupt except: print '*** Unexpected error ***' if verbose: @@ -182,3 +186,10 @@ for t in tests: print repr(repl)+' should be '+repr(expected) else: print '=== Failed incorrectly', t + + # Try the match with IGNORECASE enabled, and check that it + # still succeeds. + obj=re.compile(pattern, re.IGNORECASE) + result=obj.search(s) + if result==None: + print '=== Fails on case-insensitive match', t |