Branch merge
diff --git a/Doc/howto/descriptor.rst b/Doc/howto/descriptor.rst
index 55a1d62..78c1439 100644
--- a/Doc/howto/descriptor.rst
+++ b/Doc/howto/descriptor.rst
@@ -42,7 +42,7 @@
Descriptors are a powerful, general purpose protocol. They are the mechanism
behind properties, methods, static methods, class methods, and :func:`super()`.
-They are used used throughout Python itself to implement the new style classes
+They are used throughout Python itself to implement the new style classes
introduced in version 2.2. Descriptors simplify the underlying C-code and offer
a flexible set of new tools for everyday Python programs.
diff --git a/Doc/library/logging.handlers.rst b/Doc/library/logging.handlers.rst
index 9db262a..1a14499 100644
--- a/Doc/library/logging.handlers.rst
+++ b/Doc/library/logging.handlers.rst
@@ -613,8 +613,14 @@
port, use the (host, port) tuple format for the *mailhost* argument. If you
use a string, the standard SMTP port is used. If your SMTP server requires
authentication, you can specify a (username, password) tuple for the
- *credentials* argument. If *secure* is True, then the handler will attempt
- to use TLS for the email transmission.
+ *credentials* argument.
+
+ To specify the use of a secure protocol (TLS), pass in a tuple to the
+ *secure* argument. This will only be used when authentication credentials are
+ supplied. The tuple should be either an empty tuple, or a single-value tuple
+ with the name of a keyfile, or a 2-value tuple with the names of the keyfile
+ and certificate file. (This tuple is passed to the
+ :meth:`smtplib.SMTP.starttls` method.)
.. versionchanged:: 2.6
*credentials* was added.
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index 944e763..dc3a814 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -2930,7 +2930,18 @@
supports no special operations. There is exactly one ellipsis object, named
:const:`Ellipsis` (a built-in name).
-It is written as ``Ellipsis``.
+It is written as ``Ellipsis``. When in a subscript, it can also be written as
+``...``, for example ``seq[...]``.
+
+
+The NotImplemented Object
+-------------------------
+
+This object is returned from comparisons and binary operations when they are
+asked to operate on types they don't support. See :ref:`comparisons` for more
+information.
+
+It is written as ``NotImplemented``.
Boolean Values
diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst
index b54bfd0..e2cc80d 100644
--- a/Doc/reference/expressions.rst
+++ b/Doc/reference/expressions.rst
@@ -741,7 +741,7 @@
If the syntax ``*expression`` appears in the function call, ``expression`` must
evaluate to an iterable. Elements from this iterable are treated as if they
were additional positional arguments; if there are positional arguments
-*x1*,...,*xN*, and ``expression`` evaluates to a sequence *y1*, ..., *yM*, this
+*x1*, ..., *xN*, and ``expression`` evaluates to a sequence *y1*, ..., *yM*, this
is equivalent to a call with M+N positional arguments *x1*, ..., *xN*, *y1*,
..., *yM*.
diff --git a/Lib/test/test_urllib2net.py b/Lib/test/test_urllib2net.py
index 1375cda..bd2c467 100644
--- a/Lib/test/test_urllib2net.py
+++ b/Lib/test/test_urllib2net.py
@@ -190,9 +190,11 @@
# Some sites do not send Connection: close header.
# Verify that those work properly. (#issue12576)
- req = urllib2.urlopen('http://www.imdb.com')
- res = req.read()
- self.assertTrue(res)
+ URL = 'http://www.imdb.com' # No Connection:close
+ with test_support.transient_internet(URL):
+ req = urllib2.urlopen(URL)
+ res = req.read()
+ self.assertTrue(res)
def _test_urls(self, urls, handlers, retry=True):
import time