summaryrefslogtreecommitdiff
path: root/unitTests.py
diff options
context:
space:
mode:
authorPaul McGuire <ptmcg@austin.rr.com>2019-07-06 00:34:19 -0500
committerPaul McGuire <ptmcg@austin.rr.com>2019-07-06 00:34:19 -0500
commitffee388a149836b1f8d128bc953c1b0363cee82b (patch)
tree8811ad21cdb6b09c0aecc42328ebd2b6f45341f0 /unitTests.py
parent8b73519b483f155cfee69e36357833310ffe9dd6 (diff)
downloadpyparsing-git-ffee388a149836b1f8d128bc953c1b0363cee82b.tar.gz
Add support for multiple '...' skips in a single expression; `_skippped` results name will always return a list of skipped items
Diffstat (limited to 'unitTests.py')
-rw-r--r--unitTests.py38
1 files changed, 25 insertions, 13 deletions
diff --git a/unitTests.py b/unitTests.py
index 2bbb45a..b024b14 100644
--- a/unitTests.py
+++ b/unitTests.py
@@ -1049,42 +1049,53 @@ class SkipToParserTests(ParseTestCase):
# ellipses for SkipTo
# (use eval() to avoid syntax problems when running in Py2)
e = define_expr('... + Literal("end")')
- test(e, "start 123 end", ['start 123 ', 'end'], {'_skipped': 'start 123 '})
+ test(e, "start 123 end", ['start 123 ', 'end'], {'_skipped': ['start 123 ']})
e = define_expr('Literal("start") + ... + Literal("end")')
- test(e, "start 123 end", ['start', '123 ', 'end'], {'_skipped': '123 '})
+ test(e, "start 123 end", ['start', '123 ', 'end'], {'_skipped': ['123 ']})
e = define_expr('Literal("start") + ...')
test(e, "start 123 end", None, None)
e = define_expr('And(["start", ..., "end"])')
- test(e, "start 123 end", ['start', '123 ', 'end'], {'_skipped': '123 '})
+ test(e, "start 123 end", ['start', '123 ', 'end'], {'_skipped': ['123 ']})
e = define_expr('And([..., "end"])')
- test(e, "start 123 end", ['start 123 ', 'end'], {'_skipped': 'start 123 '})
+ test(e, "start 123 end", ['start 123 ', 'end'], {'_skipped': ['start 123 ']})
e = define_expr('"start" + (num_word | ...) + "end"')
test(e, "start 456 end", ['start', '456', 'end'], {})
- test(e, "start 123 456 end", ['start', '123', '456 ', 'end'], {'_skipped': '456 '})
- test(e, "start end", ['start', '', 'end'], {'_skipped': 'missing <int>'})
+ test(e, "start 123 456 end", ['start', '123', '456 ', 'end'], {'_skipped': ['456 ']})
+ test(e, "start end", ['start', '', 'end'], {'_skipped': ['missing <int>']})
+
+ # e = define_expr('"start" + (num_word | ...)("inner") + "end"')
+ # test(e, "start 456 end", ['start', '456', 'end'], {'inner': '456'})
e = define_expr('"start" + (alpha_word[0, ...] & num_word[0, ...] | ...) + "end"')
test(e, "start 456 red end", ['start', '456', 'red', 'end'], {})
test(e, "start red 456 end", ['start', 'red', '456', 'end'], {})
- test(e, "start 456 red + end", ['start', '456', 'red', '+ ', 'end'], {'_skipped': '+ '})
+ test(e, "start 456 red + end", ['start', '456', 'red', '+ ', 'end'], {'_skipped': ['+ ']})
test(e, "start red end", ['start', 'red', 'end'], {})
test(e, "start 456 end", ['start', '456', 'end'], {})
test(e, "start end", ['start', 'end'], {})
- test(e, "start 456 + end", ['start', '456', '+ ', 'end'], {'_skipped': '+ '})
+ test(e, "start 456 + end", ['start', '456', '+ ', 'end'], {'_skipped': ['+ ']})
e = define_expr('"start" + (alpha_word[...] & num_word[...] | ...) + "end"')
test(e, "start 456 red end", ['start', '456', 'red', 'end'], {})
test(e, "start red 456 end", ['start', 'red', '456', 'end'], {})
- test(e, "start 456 red + end", ['start', '456', 'red', '+ ', 'end'], {'_skipped': '+ '})
- test(e, "start red end", ['start', 'red ', 'end'], {'_skipped': 'red '})
- test(e, "start 456 end", ['start', '456 ', 'end'], {'_skipped': '456 '})
- test(e, "start end", ['start', '', 'end'], {'_skipped': 'missing <{{alpha}... & {int}...}>'})
- test(e, "start 456 + end", ['start', '456 + ', 'end'], {'_skipped': '456 + '})
+ test(e, "start 456 red + end", ['start', '456', 'red', '+ ', 'end'], {'_skipped': ['+ ']})
+ test(e, "start red end", ['start', 'red ', 'end'], {'_skipped': ['red ']})
+ test(e, "start 456 end", ['start', '456 ', 'end'], {'_skipped': ['456 ']})
+ test(e, "start end", ['start', '', 'end'], {'_skipped': ['missing <{{alpha}... & {int}...}>']})
+ test(e, "start 456 + end", ['start', '456 + ', 'end'], {'_skipped': ['456 + ']})
+
+ e = define_expr('"start" + (alpha_word | ...) + (num_word | ...) + "end"')
+ test(e, "start red 456 end", ['start', 'red', '456', 'end'], {})
+ test(e, "start red end", ['start', 'red', '', 'end'], {'_skipped': ['missing <int>']})
+ test(e, "start end", ['start', '', '', 'end'], {'_skipped': ['missing <alpha>', 'missing <int>']})
+
+ e = define_expr('Literal("start") + ... + "+" + ... + "end"')
+ test(e, "start red + 456 end", ['start', 'red ', '+', '456 ', 'end'], {'_skipped': ['red ', '456 ']})
class CustomQuotesTest(ParseTestCase):
@@ -4661,6 +4672,7 @@ if __name__ == '__main__':
# run specific tests by including them in this list, otherwise
# all tests will be run
testclasses = [
+ SkipToParserTests
]
if not testclasses: