diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2014-11-10 11:49:00 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2014-11-10 11:49:00 (GMT) |
commit | ad446d57a929a642644c3a86c7359ce1638077b0 (patch) | |
tree | fb31d0b7aa5e3d09f5370c606d988d06c30b925f /Lib/test/test_re.py | |
parent | eb99e5157498ae37117a54cdb01fea082d842a0d (diff) | |
download | cpython-ad446d57a929a642644c3a86c7359ce1638077b0.zip cpython-ad446d57a929a642644c3a86c7359ce1638077b0.tar.gz cpython-ad446d57a929a642644c3a86c7359ce1638077b0.tar.bz2 |
Issue #22578: Added attributes to the re.error class.
Diffstat (limited to 'Lib/test/test_re.py')
-rw-r--r-- | Lib/test/test_re.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py index 3bd716d..2b72c0f 100644 --- a/Lib/test/test_re.py +++ b/Lib/test/test_re.py @@ -1419,6 +1419,42 @@ SUBPATTERN None self.assertIsNone(re.match(b'(?Li)\xc5', b'\xe5')) self.assertIsNone(re.match(b'(?Li)\xe5', b'\xc5')) + def test_error(self): + with self.assertRaises(re.error) as cm: + re.compile('(\u20ac))') + err = cm.exception + self.assertIsInstance(err.pattern, str) + self.assertEqual(err.pattern, '(\u20ac))') + self.assertEqual(err.pos, 3) + self.assertEqual(err.lineno, 1) + self.assertEqual(err.colno, 4) + self.assertIn(err.msg, str(err)) + self.assertIn(' at position 3', str(err)) + self.assertNotIn(' at position 3', err.msg) + # Bytes pattern + with self.assertRaises(re.error) as cm: + re.compile(b'(\xa4))') + err = cm.exception + self.assertIsInstance(err.pattern, bytes) + self.assertEqual(err.pattern, b'(\xa4))') + self.assertEqual(err.pos, 3) + # Multiline pattern + with self.assertRaises(re.error) as cm: + re.compile(""" + ( + abc + ) + ) + ( + """, re.VERBOSE) + err = cm.exception + self.assertEqual(err.pos, 77) + self.assertEqual(err.lineno, 5) + self.assertEqual(err.colno, 17) + self.assertIn(err.msg, str(err)) + self.assertIn(' at position 77', str(err)) + self.assertIn('(line 5, column 17)', str(err)) + class PatternReprTests(unittest.TestCase): def check(self, pattern, expected): |