summaryrefslogtreecommitdiff
path: root/Lib/test/test_grammar.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_grammar.py')
-rw-r--r--Lib/test/test_grammar.py32
1 files changed, 10 insertions, 22 deletions
diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py
index 2ee38f0284..6d7d5544ed 100644
--- a/Lib/test/test_grammar.py
+++ b/Lib/test/test_grammar.py
@@ -1,7 +1,7 @@
# Python test set -- part 1, grammar.
# This just tests whether the parser accepts them all.
-from test.support import check_syntax_error
+from test.support import check_syntax_error, check_syntax_warning
import inspect
import unittest
import sys
@@ -101,7 +101,7 @@ INVALID_UNDERSCORE_LITERALS = [
class TokenTests(unittest.TestCase):
- check_syntax_error = check_syntax_error
+ from test.support import check_syntax_error
def test_backslash(self):
# Backslash means line continuation:
@@ -276,7 +276,7 @@ class CNS:
class GrammarTests(unittest.TestCase):
- check_syntax_error = check_syntax_error
+ from test.support import check_syntax_error, check_syntax_warning
# single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE
# XXX can't test in a script -- this rule is only used when interactive
@@ -1109,12 +1109,10 @@ class GrammarTests(unittest.TestCase):
else:
self.fail("AssertionError not raised by 'assert False'")
- with self.assertWarnsRegex(SyntaxWarning, 'assertion is always true'):
- compile('assert(x, "msg")', '<testcase>', 'exec')
+ self.check_syntax_warning('assert(x, "msg")',
+ 'assertion is always true')
with warnings.catch_warnings():
- warnings.filterwarnings('error', category=SyntaxWarning)
- with self.assertRaisesRegex(SyntaxError, 'assertion is always true'):
- compile('assert(x, "msg")', '<testcase>', 'exec')
+ warnings.simplefilter('error', SyntaxWarning)
compile('assert x, "msg"', '<testcase>', 'exec')
@@ -1243,12 +1241,7 @@ class GrammarTests(unittest.TestCase):
def test_comparison_is_literal(self):
def check(test, msg='"is" with a literal'):
- with self.assertWarnsRegex(SyntaxWarning, msg):
- compile(test, '<testcase>', 'exec')
- with warnings.catch_warnings():
- warnings.filterwarnings('error', category=SyntaxWarning)
- with self.assertRaisesRegex(SyntaxError, msg):
- compile(test, '<testcase>', 'exec')
+ self.check_syntax_warning(test, msg)
check('x is 1')
check('x is "thing"')
@@ -1257,7 +1250,7 @@ class GrammarTests(unittest.TestCase):
check('x is not 1', '"is not" with a literal')
with warnings.catch_warnings():
- warnings.filterwarnings('error', category=SyntaxWarning)
+ warnings.simplefilter('error', SyntaxWarning)
compile('x is None', '<testcase>', 'exec')
compile('x is False', '<testcase>', 'exec')
compile('x is True', '<testcase>', 'exec')
@@ -1265,12 +1258,7 @@ class GrammarTests(unittest.TestCase):
def test_warn_missed_comma(self):
def check(test):
- with self.assertWarnsRegex(SyntaxWarning, msg):
- compile(test, '<testcase>', 'exec')
- with warnings.catch_warnings():
- warnings.filterwarnings('error', category=SyntaxWarning)
- with self.assertRaisesRegex(SyntaxError, msg):
- compile(test, '<testcase>', 'exec')
+ self.check_syntax_warning(test, msg)
msg=r'is not callable; perhaps you missed a comma\?'
check('[(1, 2) (3, 4)]')
@@ -1342,7 +1330,7 @@ class GrammarTests(unittest.TestCase):
check('[[1, 2] [...]]')
with warnings.catch_warnings():
- warnings.filterwarnings('error', category=SyntaxWarning)
+ warnings.simplefilter('error', SyntaxWarning)
compile('[(lambda x, y: x) (3, 4)]', '<testcase>', 'exec')
compile('[[1, 2] [i]]', '<testcase>', 'exec')
compile('[[1, 2] [0]]', '<testcase>', 'exec')