[Python-checkins] bpo-26543: Fix IMAP4.noop when debug mode is enabled (GH-15206)
Sanyam Khurana
webhook-mailer at python.org
Mon Jun 1 21:17:53 EDT 2020
https://github.com/python/cpython/commit/8a3d2af997e3702eac4c5b012537be39ada36888
commit: 8a3d2af997e3702eac4c5b012537be39ada36888
branch: master
author: Sanyam Khurana <8039608+CuriousLearner at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2020-06-02T03:17:45+02:00
summary:
bpo-26543: Fix IMAP4.noop when debug mode is enabled (GH-15206)
files:
A Misc/NEWS.d/next/Library/2019-08-11-16-28-03.bpo-26543.X-TJZO.rst
M Lib/imaplib.py
M Lib/test/test_imaplib.py
diff --git a/Lib/imaplib.py b/Lib/imaplib.py
index d9720f20c3902..73184396d894a 100644
--- a/Lib/imaplib.py
+++ b/Lib/imaplib.py
@@ -1251,13 +1251,12 @@ def _mesg(self, s, secs=None):
sys.stderr.write(' %s.%02d %s\n' % (tm, (secs*100)%100, s))
sys.stderr.flush()
- def _dump_ur(self, dict):
- # Dump untagged responses (in `dict').
- l = dict.items()
- if not l: return
- t = '\n\t\t'
- l = map(lambda x:'%s: "%s"' % (x[0], x[1][0] and '" "'.join(x[1]) or ''), l)
- self._mesg('untagged responses dump:%s%s' % (t, t.join(l)))
+ def _dump_ur(self, untagged_resp_dict):
+ if not untagged_resp_dict:
+ return
+ items = (f'{key}: {value!r}'
+ for key, value in untagged_resp_dict.items())
+ self._mesg('untagged responses dump:' + '\n\t\t'.join(items))
def _log(self, line):
# Keep log of last `_cmd_log_len' interactions for debugging.
diff --git a/Lib/test/test_imaplib.py b/Lib/test/test_imaplib.py
index 0fcc1fb99a289..f93efba794952 100644
--- a/Lib/test/test_imaplib.py
+++ b/Lib/test/test_imaplib.py
@@ -933,6 +933,20 @@ def test_with_statement_logout(self):
self.assertIsNone(server.logged)
self.assertIsNone(server.logged)
+ @threading_helper.reap_threads
+ @cpython_only
+ def test_dump_ur(self):
+ # See: http://bugs.python.org/issue26543
+ untagged_resp_dict = {'READ-WRITE': [b'']}
+
+ with self.reaped_server(SimpleIMAPHandler) as server:
+ with self.imap_class(*server.server_address) as imap:
+ with mock.patch.object(imap, '_mesg') as mock_mesg:
+ imap._dump_ur(untagged_resp_dict)
+ mock_mesg.assert_called_with(
+ "untagged responses dump:READ-WRITE: [b'']"
+ )
+
@unittest.skipUnless(ssl, "SSL not available")
class ThreadedNetworkedTestsSSL(ThreadedNetworkedTests):
diff --git a/Misc/NEWS.d/next/Library/2019-08-11-16-28-03.bpo-26543.X-TJZO.rst b/Misc/NEWS.d/next/Library/2019-08-11-16-28-03.bpo-26543.X-TJZO.rst
new file mode 100644
index 0000000000000..8715b8d79cace
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-08-11-16-28-03.bpo-26543.X-TJZO.rst
@@ -0,0 +1 @@
+Fix :meth:`IMAP4.noop()` when debug mode is enabled (ex: ``imaplib.Debug = 3``).
More information about the Python-checkins
mailing list