diff options
author | Gregory P. Smith <greg@krypto.org> | 2013-03-19 22:05:52 (GMT) |
---|---|---|
committer | Gregory P. Smith <greg@krypto.org> | 2013-03-19 22:05:52 (GMT) |
commit | cca8507758d69f8109ef25cd610218cfb4a3326b (patch) | |
tree | c84a1a4eba43beda4a9b29726bf1d33bc8004bf0 | |
parent | 0408bf9cfb0dac07bf378f10af771fab41ba0d52 (diff) | |
parent | d17ca23828287eb79f28de7c50acf25c29b41e4e (diff) | |
download | cpython-cca8507758d69f8109ef25cd610218cfb4a3326b.zip cpython-cca8507758d69f8109ef25cd610218cfb4a3326b.tar.gz cpython-cca8507758d69f8109ef25cd610218cfb4a3326b.tar.bz2 |
merge heads in 3.3
-rw-r--r-- | Doc/library/http.client.rst | 6 | ||||
-rw-r--r-- | Lib/imaplib.py | 3 | ||||
-rwxr-xr-x | Lib/pydoc.py | 5 | ||||
-rw-r--r-- | Lib/test/test_pydoc.py | 24 | ||||
-rw-r--r-- | Lib/test/test_urllib2.py | 3 | ||||
-rw-r--r-- | Lib/tkinter/test/test_ttk/test_widgets.py | 2 | ||||
-rw-r--r-- | Misc/ACKS | 1 | ||||
-rw-r--r-- | Misc/NEWS | 9 | ||||
-rw-r--r-- | Modules/_cursesmodule.c | 4 |
9 files changed, 51 insertions, 6 deletions
diff --git a/Doc/library/http.client.rst b/Doc/library/http.client.rst index 2d93aa4..8137573 100644 --- a/Doc/library/http.client.rst +++ b/Doc/library/http.client.rst @@ -51,7 +51,7 @@ The module provides the following classes: .. versionchanged:: 3.2 *source_address* was added. - .. versionchanged:: 3.2 + .. deprecated-removed:: 3.2 3.4 The *strict* parameter is deprecated. HTTP 0.9-style "Simple Responses" are not supported anymore. @@ -89,7 +89,7 @@ The module provides the following classes: This class now supports HTTPS virtual hosts if possible (that is, if :data:`ssl.HAS_SNI` is true). - .. versionchanged:: 3.2 + .. deprecated-removed:: 3.2 3.4 The *strict* parameter is deprecated. HTTP 0.9-style "Simple Responses" are not supported anymore. @@ -99,7 +99,7 @@ The module provides the following classes: Class whose instances are returned upon successful connection. Not instantiated directly by user. - .. versionchanged:: 3.2 + .. deprecated-removed:: 3.2 3.4 The *strict* parameter is deprecated. HTTP 0.9-style "Simple Responses" are not supported anymore. diff --git a/Lib/imaplib.py b/Lib/imaplib.py index f8c7ffd..724f9d1 100644 --- a/Lib/imaplib.py +++ b/Lib/imaplib.py @@ -24,6 +24,8 @@ __version__ = "2.58" import binascii, errno, random, re, socket, subprocess, sys, time, calendar from datetime import datetime, timezone, timedelta +from io import DEFAULT_BUFFER_SIZE + try: import ssl HAVE_SSL = True @@ -1244,6 +1246,7 @@ class IMAP4_stream(IMAP4): self.sock = None self.file = None self.process = subprocess.Popen(self.command, + bufsize=DEFAULT_BUFFER_SIZE, stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True, close_fds=True) self.writefile = self.process.stdin diff --git a/Lib/pydoc.py b/Lib/pydoc.py index fa531e9..9dce079 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -132,7 +132,10 @@ def stripid(text): return _re_stripid.sub(r'\1', text) def _is_some_method(obj): - return inspect.ismethod(obj) or inspect.ismethoddescriptor(obj) + return (inspect.isfunction(obj) or + inspect.ismethod(obj) or + inspect.isbuiltin(obj) or + inspect.ismethoddescriptor(obj)) def allmethods(cl): methods = {} diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py index d98a526..542a29b 100644 --- a/Lib/test/test_pydoc.py +++ b/Lib/test/test_pydoc.py @@ -395,6 +395,30 @@ class PydocDocTest(unittest.TestCase): synopsis = pydoc.synopsis(TESTFN, {}) self.assertEqual(synopsis, 'line 1: h\xe9') + def test_allmethods(self): + # issue 17476: allmethods was no longer returning unbound methods. + # This test is a bit fragile in the face of changes to object and type, + # but I can't think of a better way to do it without duplicating the + # logic of the function under test. + + class TestClass(object): + def method_returning_true(self): + return True + + # What we expect to get back: everything on object... + expected = dict(vars(object)) + # ...plus our unbound method... + expected['method_returning_true'] = TestClass.method_returning_true + # ...but not the non-methods on object. + del expected['__doc__'] + del expected['__class__'] + # inspect resolves descriptors on type into methods, but vars doesn't, + # so we need to update __subclasshook__. + expected['__subclasshook__'] = TestClass.__subclasshook__ + + methods = pydoc.allmethods(TestClass) + self.assertDictEqual(methods, expected) + class PydocImportTest(unittest.TestCase): diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py index ccd5419..3377cff 100644 --- a/Lib/test/test_urllib2.py +++ b/Lib/test/test_urllib2.py @@ -64,6 +64,9 @@ class TrivialTests(unittest.TestCase): for string, list in tests: self.assertEqual(urllib.request.parse_http_list(string), list) + def test_URLError_reasonstr(self): + err = urllib.error.URLError('reason') + self.assertIn(err.reason, str(err)) def test_request_headers_dict(): """ diff --git a/Lib/tkinter/test/test_ttk/test_widgets.py b/Lib/tkinter/test/test_ttk/test_widgets.py index c2231dc..45a686a 100644 --- a/Lib/tkinter/test/test_ttk/test_widgets.py +++ b/Lib/tkinter/test/test_ttk/test_widgets.py @@ -947,7 +947,7 @@ class TreeviewTest(unittest.TestCase): anchor=1) # XXX skipping for now; should be fixed to work with newer ttk - @unittest.skip + @unittest.skip("skipping pending resolution of Issue #10734") def test_heading_callback(self): def simulate_heading_click(x, y): support.simulate_mouse_click(self.tv, x, y) @@ -1216,6 +1216,7 @@ Alberto Trevino Matthias Troffaes Tom Tromey John Tromp +Diane Trout Jason Trowbridge Brent Tubbs Anthony Tuininga @@ -197,6 +197,15 @@ Library specifically addresses a stack misalignment issue on x86 and issues on some more recent platforms. +- Issue #8862: Fixed curses cleanup when getkey is interrputed by a signal. + +- Issue #17443: imaplib.IMAP4_stream was using the default unbuffered IO + in subprocess, but the imap code assumes buffered IO. In Python2 this + worked by accident. IMAP4_stream now explicitly uses buffered IO. + +- Issue #17476: Fixed regression relative to Python2 in undocumented pydoc + 'allmethods'; it was missing unbound methods on the class. + - Issue #16880: Do not assume _imp.load_dynamic() is defined in the imp module. - Issue #16389: Fixed a performance regression relative to Python 3.1 in the diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index 4e1449b..35f9fc1 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -1138,7 +1138,9 @@ PyCursesWindow_GetKey(PyCursesWindowObject *self, PyObject *args) } if (rtn == ERR) { /* getch() returns ERR in nodelay mode */ - PyErr_SetString(PyCursesError, "no input"); + PyErr_CheckSignals(); + if (!PyErr_Occurred()) + PyErr_SetString(PyCursesError, "no input"); return NULL; } else if (rtn<=255) { return Py_BuildValue("C", rtn); |