]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-36015: Handle StreamHandler representaton of stream with an integer name (GH...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 15 May 2019 18:06:29 +0000 (11:06 -0700)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Wed, 15 May 2019 18:06:29 +0000 (19:06 +0100)
(cherry picked from commit ca87eebb22d202c33f3317cbf85059cadc64fa9f)

Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
Lib/logging/__init__.py
Lib/test/test_logging.py

index cd80d5cccc6e531518b27f20c23ebb777ebababf..6e017148861de8737b3607d8fc116e7c339afc03 100644 (file)
@@ -1055,6 +1055,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)
index 14277369be477f44a4dab2ad94aa9dd23f1390c6..d12e1e57455d6fa4d529507d47c9fe8671af67ed 100644 (file)
@@ -766,6 +766,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())
@@ -803,6 +807,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