summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRiccardo Magliocchetti <riccardo.magliocchetti@gmail.com>2019-05-07 21:36:39 (GMT)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2019-05-07 21:36:39 (GMT)
commitca87eebb22d202c33f3317cbf85059cadc64fa9f (patch)
treefd4407525a7e3da55050901a4500d03314006c08
parent3918ad6b45da31e05265de5a455102276717c659 (diff)
downloadcpython-ca87eebb22d202c33f3317cbf85059cadc64fa9f.zip
cpython-ca87eebb22d202c33f3317cbf85059cadc64fa9f.tar.gz
cpython-ca87eebb22d202c33f3317cbf85059cadc64fa9f.tar.bz2
bpo-36015: Handle StreamHandler representaton of stream with an integer name (GH-11908)
-rw-r--r--Lib/logging/__init__.py2
-rw-r--r--Lib/test/test_logging.py8
2 files changed, 10 insertions, 0 deletions
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
index 07a0c0c..16812ec 100644
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -1111,6 +1111,8 @@ class StreamHandler(Handler):
def __repr__(self):
level = getLevelName(self.level)
name = getattr(self.stream, 'name', '')
+ # bpo-36015: name can be an int
+ name = str(name)
if name:
name += ' '
return '<%s %s(%s)>' % (self.__class__.__name__, name, level)
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index 950217c..bc99c3a 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -760,6 +760,10 @@ class TestStreamHandler(logging.StreamHandler):
def handleError(self, record):
self.error_record = record
+class StreamWithIntName(object):
+ level = logging.NOTSET
+ name = 2
+
class StreamHandlerTest(BaseTest):
def test_error_handling(self):
h = TestStreamHandler(BadStream())
@@ -797,6 +801,10 @@ class StreamHandlerTest(BaseTest):
actual = h.setStream(old)
self.assertIsNone(actual)
+ def test_can_represent_stream_with_int_name(self):
+ h = logging.StreamHandler(StreamWithIntName())
+ self.assertEqual(repr(h), '<StreamHandler 2 (NOTSET)>')
+
# -- The following section could be moved into a server_helper.py module
# -- if it proves to be of wider utility than just test_logging