Issue #23016: A warning no longer produces an AttributeError when the program
is run with pythonw.exe.
This commit is contained in:
commit
927131e050
|
@ -666,6 +666,15 @@ class _WarningsTests(BaseTest, unittest.TestCase):
|
|||
finally:
|
||||
globals_dict['__file__'] = oldfile
|
||||
|
||||
def test_stderr_none(self):
|
||||
rc, stdout, stderr = assert_python_ok("-c",
|
||||
"import sys; sys.stderr = None; "
|
||||
"import warnings; warnings.simplefilter('always'); "
|
||||
"warnings.warn('Warning!')")
|
||||
self.assertEqual(stdout, b'')
|
||||
self.assertNotIn(b'Warning!', stderr)
|
||||
self.assertNotIn(b'Error', stderr)
|
||||
|
||||
|
||||
class WarningsDisplayTests(BaseTest):
|
||||
|
||||
|
|
|
@ -11,6 +11,9 @@ def showwarning(message, category, filename, lineno, file=None, line=None):
|
|||
"""Hook to write a warning to a file; replace if you like."""
|
||||
if file is None:
|
||||
file = sys.stderr
|
||||
if file is None:
|
||||
# sys.stderr is None when ran with pythonw.exe - warnings get lost
|
||||
return
|
||||
try:
|
||||
file.write(formatwarning(message, category, filename, lineno, line))
|
||||
except OSError:
|
||||
|
|
|
@ -194,6 +194,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #23016: A warning no longer produces an AttributeError when the program
|
||||
is run with pythonw.exe.
|
||||
|
||||
- Issue #21775: shutil.copytree(): fix crash when copying to VFAT. An exception
|
||||
handler assumed that that OSError objects always have a 'winerror' attribute.
|
||||
That is not the case, so the exception handler itself raised AttributeError
|
||||
|
|
Loading…
Reference in New Issue