summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGregory P. Smith <greg@krypto.org>2013-03-19 22:03:26 (GMT)
committerGregory P. Smith <greg@krypto.org>2013-03-19 22:03:26 (GMT)
commitdd351628942718ede440c8ffe6911f379c9e15b1 (patch)
tree1c0937103d8a7c54f185dfd208a02192da369f04
parent029273fc903bcbdd689132f153d53004a8aee0b2 (diff)
parent843fae93121ac7ac1088b0521773eff567e7b41c (diff)
downloadcpython-dd351628942718ede440c8ffe6911f379c9e15b1.zip
cpython-dd351628942718ede440c8ffe6911f379c9e15b1.tar.gz
cpython-dd351628942718ede440c8ffe6911f379c9e15b1.tar.bz2
merge heads in 3.2
-rw-r--r--Doc/library/http.client.rst6
-rw-r--r--Lib/imaplib.py2
-rwxr-xr-xLib/pydoc.py5
-rw-r--r--Lib/test/test_pydoc.py24
-rw-r--r--Lib/test/test_urllib2.py3
-rw-r--r--Lib/tkinter/test/test_ttk/test_widgets.py2
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS9
-rw-r--r--Modules/_cursesmodule.c4
9 files changed, 50 insertions, 6 deletions
diff --git a/Doc/library/http.client.rst b/Doc/library/http.client.rst
index 408a3e7..7423a4c 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:: 3.2
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:: 3.2
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:: 3.2
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 00a17fb..e2a0581 100644
--- a/Lib/imaplib.py
+++ b/Lib/imaplib.py
@@ -23,6 +23,7 @@ Public functions: Internaldate2tuple
__version__ = "2.58"
import binascii, errno, random, re, socket, subprocess, sys, time, calendar
+from io import DEFAULT_BUFFER_SIZE
try:
import ssl
@@ -1237,6 +1238,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 37616fb..fa02eda 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -137,7 +137,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 c7318ff..42a4089 100644
--- a/Lib/test/test_pydoc.py
+++ b/Lib/test/test_pydoc.py
@@ -389,6 +389,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 5eab30a..a9776ac 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -47,6 +47,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)
diff --git a/Misc/ACKS b/Misc/ACKS
index b5c8059..6ea3f78 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1098,6 +1098,7 @@ Richard Townsend
Nathan Trapuzzano
Laurence Tratt
John Tromp
+Diane Trout
Jason Trowbridge
Brent Tubbs
Anthony Tuininga
diff --git a/Misc/NEWS b/Misc/NEWS
index 482ffea..856eae4 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -233,6 +233,15 @@ Core and Builtins
Library
-------
+- Issue #8862: Fixed curses cleanup when getkey is interrputed by a signal.
+
+- Issue #17443: impalib.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 #16389: Fixed a performance regression relative to Python 3.1 in the
caching of compiled regular expressions.
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 5e1afa9..d1dedb0 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -895,7 +895,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);