Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_re.py @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | 518d4f0c8fcc |
| children | 78321a84d73e |
| rev | line source |
|---|---|
|
5805
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
1 #!/usr/local/bin/python |
|
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
2 # -*- mode: python -*- |
|
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
3 # $Id$ |
|
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
4 |
| 5774 | 5 from test_support import verbose |
| 6 import re | |
|
5805
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
7 import reop |
|
5796
73cf58261b82
Merged Jeffrey's changes in.
Guido van Rossum <guido@python.org>
parents:
5792
diff
changeset
|
8 import sys, os, string, traceback |
| 5774 | 9 |
| 10 from re_tests import * | |
| 5777 | 11 if verbose: print 'Running re_tests test suite' |
| 5774 | 12 |
| 13 for t in tests: | |
| 14 print t | |
|
5805
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
15 sys.stdout.flush() |
| 5774 | 16 pattern=s=outcome=repl=expected=None |
| 17 if len(t)==5: | |
| 18 pattern, s, outcome, repl, expected = t | |
| 19 elif len(t)==3: | |
| 20 pattern, s, outcome = t | |
| 21 else: | |
| 22 raise ValueError, ('Test tuples should have 3 or 5 fields',t) | |
| 23 | |
| 24 try: | |
| 25 obj=re.compile(pattern) | |
| 26 except re.error: | |
| 27 if outcome==SYNTAX_ERROR: pass # Expected a syntax error | |
| 28 else: | |
| 29 print '=== Syntax error:', t | |
|
5805
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
30 except KeyboardInterrupt: |
|
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
31 raise KeyboardInterrupt |
| 5774 | 32 except: |
| 33 print '*** Unexpected error ***' | |
|
5780
bb0acfd4b720
Removed the traceback output in non-verbose mode
Guido van Rossum <guido@python.org>
parents:
5777
diff
changeset
|
34 if verbose: |
|
bb0acfd4b720
Removed the traceback output in non-verbose mode
Guido van Rossum <guido@python.org>
parents:
5777
diff
changeset
|
35 traceback.print_exc(file=sys.stdout) |
| 5774 | 36 else: |
| 37 try: | |
| 38 result=obj.search(s) | |
|
5805
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
39 except (re.error, reop.error), msg: |
| 5774 | 40 print '=== Unexpected exception', t, repr(msg) |
| 41 if outcome==SYNTAX_ERROR: | |
| 42 # This should have been a syntax error; forget it. | |
| 43 pass | |
| 44 elif outcome==FAIL: | |
| 45 if result is None: pass # No match, as expected | |
| 46 else: print '=== Succeeded incorrectly', t | |
| 47 elif outcome==SUCCEED: | |
| 48 if result is not None: | |
| 49 # Matched, as expected, so now we compute the | |
| 50 # result string and compare it to our expected result. | |
| 51 start, end = result.span(0) | |
|
5805
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
52 vardict={'found': result.group(0), |
|
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
53 'groups': result.group(), |
|
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
54 'flags': result.re.flags} |
| 5774 | 55 for i in range(1, 100): |
| 56 try: | |
| 57 gi = result.group(i) | |
| 5777 | 58 # Special hack because else the string concat fails: |
|
5805
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
59 if gi is None: |
|
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
60 gi = "None" |
| 5774 | 61 except IndexError: |
|
5792
dffabc620e4e
Tweak re_tests and test_re to differentiate between
Guido van Rossum <guido@python.org>
parents:
5791
diff
changeset
|
62 gi = "Error" |
|
5791
2b7372ecd507
More tweaks; re.py is nearly there...
Guido van Rossum <guido@python.org>
parents:
5780
diff
changeset
|
63 vardict['g%d' % i] = gi |
|
5796
73cf58261b82
Merged Jeffrey's changes in.
Guido van Rossum <guido@python.org>
parents:
5792
diff
changeset
|
64 for i in result.re.groupindex.keys(): |
|
73cf58261b82
Merged Jeffrey's changes in.
Guido van Rossum <guido@python.org>
parents:
5792
diff
changeset
|
65 try: |
|
73cf58261b82
Merged Jeffrey's changes in.
Guido van Rossum <guido@python.org>
parents:
5792
diff
changeset
|
66 gi = result.group(i) |
|
5805
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
67 if gi is None: |
|
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
68 gi = "None" |
|
5796
73cf58261b82
Merged Jeffrey's changes in.
Guido van Rossum <guido@python.org>
parents:
5792
diff
changeset
|
69 except IndexError: |
|
5805
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
70 gi = "Error" |
|
518d4f0c8fcc
Jeffrey's latest -- seems to solve most problems!
Guido van Rossum <guido@python.org>
parents:
5796
diff
changeset
|
71 vardict[i] = gi |
| 5774 | 72 repl=eval(repl, vardict) |
| 73 if repl!=expected: | |
| 74 print '=== grouping error', t, | |
| 75 print repr(repl)+' should be '+repr(expected) | |
| 76 else: | |
| 77 print '=== Failed incorrectly', t |
