]> granicus.if.org Git - python/commitdiff
#10695: use %s not %d so that a string 'port' does not cause a debug traceback
authorR. David Murray <rdmurray@bitdance.com>
Tue, 14 Dec 2010 14:16:20 +0000 (14:16 +0000)
committerR. David Murray <rdmurray@bitdance.com>
Tue, 14 Dec 2010 14:16:20 +0000 (14:16 +0000)
Passing the port as a string value works fine in regular mode, but
if you turned debug on it would throw an error trying to print the
port number, which is surprising and confusing.

Lib/telnetlib.py
Lib/test/test_telnetlib.py
Misc/NEWS

index c60578debff52efde75b8afe2c9b23870475fe5b..82b5e8fc1b11b2bb52f015e5154dfc5e88d1dd02 100644 (file)
@@ -236,7 +236,7 @@ class Telnet:
 
         """
         if self.debuglevel > 0:
-            print('Telnet(%s,%d):' % (self.host, self.port), end=' ')
+            print('Telnet(%s,%s):' % (self.host, self.port), end=' ')
             if args:
                 print(msg % args)
             else:
index e4210c5cf46db82cae9307b091e47521dc5c1f19..843daf15850966eddaf7fc4c28c42df6d176ce5a 100644 (file)
@@ -342,6 +342,16 @@ class OptionTests(TestCase):
         expected = "send b'xxx'\n"
         self.assertIn(expected, telnet._messages)
 
+    def test_debug_accepts_str_port(self):
+        # Issue 10695
+        with test_socket([]):
+            telnet = TelnetAlike('dummy', '0')
+            telnet._messages = ''
+        telnet.set_debuglevel(1)
+        telnet.msg('test')
+        self.assertRegex(telnet._messages, r'0.*test')
+
+
 def test_main(verbose=None):
     support.run_unittest(GeneralTests, ReadTests, WriteTests, OptionTests)
 
index aa90c16a43f2e2fef150971d52a972d1d5e493f6..d2a2c42b87971833cfa60906a0fc8fe5855e9ca3 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -11,6 +11,9 @@ What's New in Python 3.2 Beta 2?
 Library
 -------
 
+- Issue #10695: passing the port as a string value to telnetlib no longer
+  causes debug mode to fail.
+
 - Issue #1078919: add_header now automatically RFC2231 encodes parameters
   that contain non-ascii values.