sys.stderr.write('Message: %r\n'
'Arguments: %s\n' % (record.msg,
record.args))
+ except RecursionError: # See issue 36272
+ raise
except Exception:
sys.stderr.write('Unable to print the message and arguments'
' - possible formatting error.\nUse the'
# issue 35046: merged two stream.writes into one.
stream.write(msg + self.terminator)
self.flush()
+ except RecursionError: # See issue 36272
+ raise
except Exception:
self.handleError(record)
import struct
import sys
import tempfile
-from test.support.script_helper import assert_python_ok
+from test.support.script_helper import assert_python_ok, assert_python_failure
from test import support
import textwrap
import threading
self.assertIn("exception in __del__", err)
self.assertIn("ValueError: some error", err)
+ def test_recursion_error(self):
+ # Issue 36272
+ code = """if 1:
+ import logging
+
+ def rec():
+ logging.error("foo")
+ rec()
+
+ rec()"""
+ rc, out, err = assert_python_failure("-c", code)
+ err = err.decode()
+ self.assertNotIn("Cannot recover from stack overflow.", err)
+ self.assertEqual(rc, 1)
+
class LogRecordTest(BaseTest):
def test_str_rep(self):