self.assertTrue(c.exception.args[0].startswith(expected),
msg=c.exception.args[0])
+ def test_file_parse_error_multiline(self):
+ # gh96611:
+ with open(TESTFN, "wb") as fd:
+ fd.write(b'print("""\n\xb1""")\n')
+
+ try:
+ retcode, stdout, stderr = script_helper.assert_python_failure(TESTFN)
+
+ self.assertGreater(retcode, 0)
+ self.assertIn(b"Non-UTF-8 code starting with '\\xb1'", stderr)
+ finally:
+ os.unlink(TESTFN)
class AbstractSourceEncodingTest:
/* Get rest of string */
while (end_quote_size != quote_size) {
c = tok_nextc(tok);
+ if (tok->done == E_DECODE)
+ break;
if (c == EOF || (quote_size == 1 && c == '\n')) {
assert(tok->multi_line_start != NULL);
// shift the tok_state's location into