From 2b74c835a7280840a853e3a9aaeb83758b13a458 Mon Sep 17 00:00:00 2001 From: Pablo Galindo Date: Mon, 27 Apr 2020 18:02:07 +0100 Subject: bpo-40334: Support CO_FUTURE_BARRY_AS_BDFL in the new parser (GH-19721) This commit also allows to pass flags to the new parser in all interfaces and fixes a bug in the parser generator that was causing to inline rules with actions, making them disappear. --- Lib/test/test_flufl.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'Lib/test/test_flufl.py') diff --git a/Lib/test/test_flufl.py b/Lib/test/test_flufl.py index 35ab934ab37..b71442804c7 100644 --- a/Lib/test/test_flufl.py +++ b/Lib/test/test_flufl.py @@ -4,7 +4,6 @@ import sys from test import support -@support.skip_if_new_parser("Not supported by pegen yet") class FLUFLTests(unittest.TestCase): def test_barry_as_bdfl(self): @@ -16,10 +15,13 @@ class FLUFLTests(unittest.TestCase): __future__.CO_FUTURE_BARRY_AS_BDFL) self.assertRegex(str(cm.exception), "with Barry as BDFL, use '<>' instead of '!='") - self.assertEqual(cm.exception.text, '2 != 3\n') + self.assertIn('2 != 3', cm.exception.text) self.assertEqual(cm.exception.filename, '') - self.assertEqual(cm.exception.lineno, 2) - self.assertEqual(cm.exception.offset, 4) + + self.assertTrue(cm.exception.lineno, 2) + # The old parser reports the end of the token and the new + # parser reports the start of the token + self.assertEqual(cm.exception.offset, 4 if support.use_old_parser() else 3) def test_guido_as_bdfl(self): code = '2 {0} 3' @@ -27,10 +29,12 @@ class FLUFLTests(unittest.TestCase): with self.assertRaises(SyntaxError) as cm: compile(code.format('<>'), '', 'exec') self.assertRegex(str(cm.exception), "invalid syntax") - self.assertEqual(cm.exception.text, '2 <> 3\n') + self.assertIn('2 <> 3', cm.exception.text) self.assertEqual(cm.exception.filename, '') self.assertEqual(cm.exception.lineno, 1) - self.assertEqual(cm.exception.offset, 4) + # The old parser reports the end of the token and the new + # parser reports the start of the token + self.assertEqual(cm.exception.offset, 4 if support.use_old_parser() else 3) if __name__ == '__main__': -- cgit v1.2.3