summaryrefslogtreecommitdiffstats
path: root/Lib/dos-8x3/test_reg.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-08-15 00:45:26 (GMT)
committerGuido van Rossum <guido@python.org>1997-08-15 00:45:26 (GMT)
commitff712aa8abde6a1a892ec39bb124cfd4a7cb992a (patch)
treec5cf2853501f0678abb92fb8e91315b3ee0d8a76 /Lib/dos-8x3/test_reg.py
parentf84a539d38ffe79a4eb940c4a2071294fa734fe8 (diff)
downloadcpython-ff712aa8abde6a1a892ec39bb124cfd4a7cb992a.zip
cpython-ff712aa8abde6a1a892ec39bb124cfd4a7cb992a.tar.gz
cpython-ff712aa8abde6a1a892ec39bb124cfd4a7cb992a.tar.bz2
The usual.
Diffstat (limited to 'Lib/dos-8x3/test_reg.py')
-rw-r--r--Lib/dos-8x3/test_reg.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/Lib/dos-8x3/test_reg.py b/Lib/dos-8x3/test_reg.py
index 078ca40..4be6026 100644
--- a/Lib/dos-8x3/test_reg.py
+++ b/Lib/dos-8x3/test_reg.py
@@ -60,3 +60,51 @@ except regex.error:
print 'caught expected exception'
else:
print 'expected regex.error not raised'
+
+from regex_tests import *
+if verbose: print 'Running regex_tests test suite'
+
+for t in tests:
+ pattern=s=outcome=repl=expected=None
+ if len(t)==5:
+ pattern, s, outcome, repl, expected = t
+ elif len(t)==3:
+ pattern, s, outcome = t
+ else:
+ raise ValueError, ('Test tuples should have 3 or 5 fields',t)
+
+ try:
+ obj=regex.compile(pattern)
+ except regex.error:
+ if outcome==SYNTAX_ERROR: pass # Expected a syntax error
+ else:
+ # Regex syntax errors aren't yet reported, so for
+ # the official test suite they'll be quietly ignored.
+ pass
+ #print '=== Syntax error:', t
+ else:
+ try:
+ result=obj.search(s)
+ except regex.error, msg:
+ print '=== Unexpected exception', t, repr(msg)
+ if outcome==SYNTAX_ERROR:
+ # This should have been a syntax error; forget it.
+ pass
+ elif outcome==FAIL:
+ if result==-1: pass # No match, as expected
+ else: print '=== Succeeded incorrectly', t
+ elif outcome==SUCCEED:
+ if result!=-1:
+ # Matched, as expected, so now we compute the
+ # result string and compare it to our expected result.
+ start, end = obj.regs[0]
+ found=s[start:end]
+ groups=obj.group(1,2,3,4,5,6,7,8,9,10)
+ vardict=vars()
+ for i in range(len(groups)):
+ vardict['g'+str(i+1)]=str(groups[i])
+ repl=eval(repl)
+ if repl!=expected:
+ print '=== grouping error', t, repr(repl)+' should be '+repr(expected)
+ else:
+ print '=== Failed incorrectly', t