Tweak re_tests and test_re to differentiate between

groups that have no value and groups that are out of bounds.
This commit is contained in:
Guido van Rossum 1997-07-15 15:49:52 +00:00
parent 847ed4afb5
commit 23b8d4c15e
3 changed files with 7 additions and 5 deletions

View File

@ -59,7 +59,7 @@ test_re
('()ef', 'def', 0, 'found+"-"+g1', 'ef-')
=== Syntax error: ('()ef', 'def', 0, 'found+"-"+g1', 'ef-')
('$b', 'b', 1)
('a\\(b', 'a(b', 0, 'found+"-"+g1', 'a(b-None')
('a\\(b', 'a(b', 0, 'found+"-"+g1', 'a(b-Error')
('a\\(*b', 'ab', 0, 'found', 'ab')
('a\\(*b', 'a((b', 0, 'found', 'a((b')
('a\\\\b', 'a\\b', 0, 'found', 'a\\b')

View File

@ -34,8 +34,10 @@ benchmarks = [
# 3: a string that will be eval()'ed to produce a test string.
# This is an arbitrary Python expression; the available
# variables are "found" (the whole match), and "g1", "g2", ...
# up to "g10" contain the contents of each group, or the
# string 'None' if the group wasn't given a value.
# up to "g99" contain the contents of each group, or the
# string 'None' if the group wasn't given a value, or the
# string 'Error' if the group index was out of range;
# also "groups", the return value of m.group() (a tuple).
# 4: The expected result of evaluating the expression.
# If the two don't match, an error is reported.
#
@ -137,7 +139,7 @@ tests = [
'found+"-"+g1', 'ef-'),
('$b', 'b', FAIL),
('a\\(b', 'a(b', SUCCEED,
'found+"-"+g1', 'a(b-None'),
'found+"-"+g1', 'a(b-Error'),
('a\\(*b', 'ab', SUCCEED,
'found', 'ab'),
('a\\(*b', 'a((b', SUCCEED,

View File

@ -48,7 +48,7 @@ for t in tests:
# Special hack because else the string concat fails:
if gi is None: gi = "None"
except IndexError:
gi = "None"
gi = "Error"
vardict['g%d' % i] = gi
repl=eval(repl, vardict)
if repl!=expected: