summaryrefslogtreecommitdiff
path: root/tests/test_unit.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_unit.py')
-rw-r--r--tests/test_unit.py117
1 files changed, 65 insertions, 52 deletions
diff --git a/tests/test_unit.py b/tests/test_unit.py
index b50117b..34c2736 100644
--- a/tests/test_unit.py
+++ b/tests/test_unit.py
@@ -116,9 +116,7 @@ class TestCase(unittest.TestCase):
yield
if getattr(ar, "warning", None) is not None:
- print(
- f"Raised expected warning: {type(ar.warning).__name__}: {ar.warning}"
- )
+ print(f"Raised expected warning: {type(ar.warning).__name__}: {ar.warning}")
else:
print(f"Expected {expected_warning_type.__name__} warning not raised")
return ar
@@ -2931,7 +2929,10 @@ class Test02_WithoutPackrat(ppt.TestParseResultsAsserts, TestCase):
with self.assertRaises(
TypeError, msg="ParserElement * (str, str) should raise error"
):
- expr = pp.Word(pp.alphas)("first") + pp.Word(pp.nums)("second") * ("2", "3")
+ expr = pp.Word(pp.alphas)("first") + pp.Word(pp.nums)("second") * (
+ "2",
+ "3",
+ )
def testParserElementMulByZero(self):
alpwd = pp.Word(pp.alphas)
@@ -2956,12 +2957,16 @@ class Test02_WithoutPackrat(ppt.TestParseResultsAsserts, TestCase):
# ParserElement * str
with self.subTest():
- with self.assertRaises(TypeError, msg="ParserElement * str should raise error"):
+ with self.assertRaises(
+ TypeError, msg="ParserElement * str should raise error"
+ ):
expr = pp.Word(pp.alphas)("first") + pp.Word(pp.nums)("second") * "3"
# str * ParserElement
with self.subTest():
- with self.assertRaises(TypeError, msg="str * ParserElement should raise error"):
+ with self.assertRaises(
+ TypeError, msg="str * ParserElement should raise error"
+ ):
expr = pp.Word(pp.alphas)("first") + "3" * pp.Word(pp.nums)("second")
# ParserElement * int
@@ -8284,24 +8289,27 @@ class Test02_WithoutPackrat(ppt.TestParseResultsAsserts, TestCase):
self.assertEqual("bool [, bool]...", str(bool_list2))
with self.subTest():
- street_address = pp.common.integer.set_name("integer") + pp.Word(pp.alphas)[1, ...].set_name("street_name")
+ street_address = pp.common.integer.set_name("integer") + pp.Word(pp.alphas)[
+ 1, ...
+ ].set_name("street_name")
self.assertEqual(
"{integer street_name} [, {integer street_name}]...",
- str(pp.delimitedList(street_address))
+ str(pp.delimitedList(street_address)),
)
with self.subTest():
operand = pp.Char(pp.alphas).set_name("var")
- math = pp.infixNotation(operand,
- [
- (pp.one_of("+ -"), 2, pp.opAssoc.LEFT),
- ])
+ math = pp.infixNotation(
+ operand,
+ [
+ (pp.one_of("+ -"), 2, pp.opAssoc.LEFT),
+ ],
+ )
self.assertEqual(
"Forward: + | - term [, Forward: + | - term]...",
- str(pp.delimitedList(math))
+ str(pp.delimitedList(math)),
)
-
def testDelimitedListOfStrLiterals(self):
expr = pp.delimitedList("ABC")
print(str(expr))
@@ -8333,9 +8341,9 @@ class Test02_WithoutPackrat(ppt.TestParseResultsAsserts, TestCase):
def testDelimitedListParseActions1(self):
# from issue #408
- keyword = pp.Keyword('foobar')
+ keyword = pp.Keyword("foobar")
untyped_identifier = ~keyword + pp.Word(pp.alphas)
- dotted_vars = pp.delimited_list(untyped_identifier, delim='.')
+ dotted_vars = pp.delimited_list(untyped_identifier, delim=".")
lvalue = pp.Opt(dotted_vars)
# uncomment this line to see the problem
@@ -8344,27 +8352,29 @@ class Test02_WithoutPackrat(ppt.TestParseResultsAsserts, TestCase):
# stmt = pp.Opt(dotted_vars)
def parse_identifier(toks):
- print('YAY!', toks)
+ print("YAY!", toks)
untyped_identifier.set_parse_action(parse_identifier)
save_stdout = StringIO()
with contextlib.redirect_stdout(save_stdout):
- dotted_vars.parse_string('B.C')
+ dotted_vars.parse_string("B.C")
self.assertEqual(
- dedent("""\
+ dedent(
+ """\
YAY! ['B']
YAY! ['C']
- """),
- save_stdout.getvalue()
+ """
+ ),
+ save_stdout.getvalue(),
)
def testDelimitedListParseActions2(self):
# from issue #408
- keyword = pp.Keyword('foobar')
+ keyword = pp.Keyword("foobar")
untyped_identifier = ~keyword + pp.Word(pp.alphas)
- dotted_vars = pp.delimited_list(untyped_identifier, delim='.')
+ dotted_vars = pp.delimited_list(untyped_identifier, delim=".")
lvalue = pp.Opt(dotted_vars)
# uncomment this line to see the problem
@@ -8373,27 +8383,29 @@ class Test02_WithoutPackrat(ppt.TestParseResultsAsserts, TestCase):
# stmt = pp.Opt(dotted_vars)
def parse_identifier(toks):
- print('YAY!', toks)
+ print("YAY!", toks)
untyped_identifier.set_parse_action(parse_identifier)
save_stdout = StringIO()
with contextlib.redirect_stdout(save_stdout):
- dotted_vars.parse_string('B.C')
+ dotted_vars.parse_string("B.C")
self.assertEqual(
- dedent("""\
+ dedent(
+ """\
YAY! ['B']
YAY! ['C']
- """),
- save_stdout.getvalue()
+ """
+ ),
+ save_stdout.getvalue(),
)
def testDelimitedListParseActions3(self):
# from issue #408
- keyword = pp.Keyword('foobar')
+ keyword = pp.Keyword("foobar")
untyped_identifier = ~keyword + pp.Word(pp.alphas)
- dotted_vars = pp.delimited_list(untyped_identifier, delim='.')
+ dotted_vars = pp.delimited_list(untyped_identifier, delim=".")
lvalue = pp.Opt(dotted_vars)
# uncomment this line to see the problem
@@ -8402,20 +8414,22 @@ class Test02_WithoutPackrat(ppt.TestParseResultsAsserts, TestCase):
stmt = pp.Opt(dotted_vars)
def parse_identifier(toks):
- print('YAY!', toks)
+ print("YAY!", toks)
untyped_identifier.set_parse_action(parse_identifier)
save_stdout = StringIO()
with contextlib.redirect_stdout(save_stdout):
- dotted_vars.parse_string('B.C')
+ dotted_vars.parse_string("B.C")
self.assertEqual(
- dedent("""\
+ dedent(
+ """\
YAY! ['B']
YAY! ['C']
- """),
- save_stdout.getvalue()
+ """
+ ),
+ save_stdout.getvalue(),
)
def testEnableDebugOnNamedExpressions(self):
@@ -8667,11 +8681,14 @@ class Test02_WithoutPackrat(ppt.TestParseResultsAsserts, TestCase):
def testSetDebugRecursivelyWithForward(self):
expr = pp.Word(pp.alphas).set_name("innermost")
- contained = pp.infix_notation(expr, [
- ('NOT', 1, pp.opAssoc.RIGHT),
- ('AND', 2, pp.opAssoc.LEFT),
- ('OR', 2, pp.opAssoc.LEFT),
- ])
+ contained = pp.infix_notation(
+ expr,
+ [
+ ("NOT", 1, pp.opAssoc.RIGHT),
+ ("AND", 2, pp.opAssoc.LEFT),
+ ("OR", 2, pp.opAssoc.LEFT),
+ ],
+ )
contained.set_debug(recurse=True)
self.assertTrue(expr.debug)
@@ -8925,17 +8942,11 @@ class Test02_WithoutPackrat(ppt.TestParseResultsAsserts, TestCase):
ppu = pp.pyparsing_unicode
latin_identifier = pp.Word(pp.identchars, pp.identbodychars)("latin*")
- japanese_identifier = pp.Word(
- ppu.Japanese.identchars, ppu.Japanese.identbodychars
- )("japanese*")
- cjk_identifier = pp.Word(ppu.CJK.identchars, ppu.CJK.identbodychars)("cjk*")
- greek_identifier = pp.Word(ppu.Greek.identchars, ppu.Greek.identbodychars)(
- "greek*"
- )
- cyrillic_identifier = pp.Word(
- ppu.Cyrillic.identchars, ppu.Cyrillic.identbodychars
- )("cyrillic*")
- thai_identifier = pp.Word(ppu.Thai.identchars, ppu.Thai.identbodychars)("thai*")
+ japanese_identifier = ppu.Japanese.identifier("japanese*")
+ cjk_identifier = ppu.CJK.identifier("cjk*")
+ greek_identifier = ppu.Greek.identifier("greek*")
+ cyrillic_identifier = ppu.Cyrillic.identifier("cyrillic*")
+ thai_identifier = ppu.Thai.identifier("thai*")
idents = (
latin_identifier
| japanese_identifier
@@ -9113,7 +9124,9 @@ class Test02_WithoutPackrat(ppt.TestParseResultsAsserts, TestCase):
def testValidation(grmr, gnam, isValid):
try:
grmr.streamline()
- with self.assertWarns(DeprecationWarning, msg="failed to warn validate() is deprecated"):
+ with self.assertWarns(
+ DeprecationWarning, msg="failed to warn validate() is deprecated"
+ ):
grmr.validate()
self.assertTrue(isValid, "validate() accepted invalid grammar " + gnam)
except pp.RecursiveGrammarException as rge: