Commit 32ef70c8 authored by R. David Murray's avatar R. David Murray

#10695: use %s not %d so that a string 'port' does not cause a debug traceback

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.
parent 8edd99d0
......@@ -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:
......
......@@ -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)
......
......@@ -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.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment