Skip to content

bpo-27200: fix pathlib, ssl, turtle and weakref doctests #616

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Apr 13, 2017
12 changes: 11 additions & 1 deletion Doc/library/pathlib.rst
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,10 @@ property:
Methods and properties
^^^^^^^^^^^^^^^^^^^^^^

.. testsetup::

from pathlib import PurePosixPath, PureWindowsPath

Pure paths provide the following methods and properties:

.. data:: PurePath.drive
Expand Down Expand Up @@ -657,6 +661,8 @@ call fails (for example because the path doesn't exist):
Return information about this path (similarly to :func:`os.stat`).
The result is looked up at each call to this method.

::

>>> p = Path('setup.py')
>>> p.stat().st_size
956
Expand Down Expand Up @@ -948,7 +954,7 @@ call fails (for example because the path doesn't exist):
.. method:: Path.rglob(pattern)

This is like calling :meth:`Path.glob` with "``**``" added in front of the
given *pattern*:
given *pattern*::

>>> sorted(Path().rglob("*.py"))
[PosixPath('build/lib/pathlib.py'),
Expand All @@ -972,6 +978,8 @@ call fails (for example because the path doesn't exist):
An :exc:`OSError` can be raised if either file cannot be accessed for some
reason.

::

>>> p = Path('spam')
>>> q = Path('eggs')
>>> p.samefile(q)
Expand All @@ -988,6 +996,8 @@ call fails (for example because the path doesn't exist):
*target_is_directory* must be true (default ``False``) if the link's target
is a directory. Under POSIX, *target_is_directory*'s value is ignored.

::

>>> p = Path('mylink')
>>> p.symlink_to('setup.py')
>>> p.resolve()
Expand Down
15 changes: 11 additions & 4 deletions Doc/library/ssl.rst
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,10 @@ Random generation
Certificate handling
^^^^^^^^^^^^^^^^^^^^

.. testsetup::

import ssl

.. function:: match_hostname(cert, hostname)

Verify that *cert* (in decoded format as returned by
Expand Down Expand Up @@ -415,10 +419,10 @@ Certificate handling

>>> import ssl
>>> timestamp = ssl.cert_time_to_seconds("Jan 5 09:34:43 2018 GMT")
>>> timestamp
>>> timestamp # doctest: +SKIP
1515144883
>>> from datetime import datetime
>>> print(datetime.utcfromtimestamp(timestamp))
>>> print(datetime.utcfromtimestamp(timestamp)) # doctest: +SKIP
2018-01-05 09:34:43

"notBefore" or "notAfter" dates must use GMT (:rfc:`5280`).
Expand Down Expand Up @@ -1378,6 +1382,7 @@ to speed up repeated connections from the same clients.
'strength_bits': 128}]

On OpenSSL 1.1 and newer the cipher dict contains additional fields::

>>> ctx.get_ciphers() # OpenSSL 1.1+
[{'aead': True,
'alg_bits': 256,
Expand Down Expand Up @@ -1638,7 +1643,7 @@ to speed up repeated connections from the same clients.
.. versionchanged:: 3.6
:attr:`SSLContext.options` returns :class:`Options` flags:

>>> ssl.create_default_context().options
>>> ssl.create_default_context().options # doctest: +SKIP
<Options.OP_ALL|OP_NO_SSLv3|OP_NO_SSLv2|OP_NO_COMPRESSION: 2197947391>

.. attribute:: SSLContext.protocol
Expand All @@ -1658,7 +1663,7 @@ to speed up repeated connections from the same clients.
.. versionchanged:: 3.6
:attr:`SSLContext.verify_flags` returns :class:`VerifyFlags` flags:

>>> ssl.create_default_context().verify_flags
>>> ssl.create_default_context().verify_flags # doctest: +SKIP
<VerifyFlags.VERIFY_X509_TRUSTED_FIRST: 32768>

.. attribute:: SSLContext.verify_mode
Expand Down Expand Up @@ -2259,6 +2264,8 @@ recommended to use :const:`PROTOCOL_TLS_CLIENT` or
:const:`PROTOCOL_TLS_SERVER` as the protocol version. SSLv2 and SSLv3 are
disabled by default.

::

>>> client_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
>>> client_context.options |= ssl.OP_NO_TLSv1
>>> client_context.options |= ssl.OP_NO_TLSv1_1
Expand Down
5 changes: 2 additions & 3 deletions Doc/library/turtle.rst
Original file line number Diff line number Diff line change
Expand Up @@ -936,10 +936,9 @@ Color control
>>> turtle.fillcolor("violet")
>>> turtle.fillcolor()
'violet'
>>> col = turtle.pencolor()
>>> col
>>> turtle.pencolor()
(50.0, 193.0, 143.0)
>>> turtle.fillcolor(col)
>>> turtle.fillcolor((50, 193, 143)) # Integers, not floats
>>> turtle.fillcolor()
(50.0, 193.0, 143.0)
>>> turtle.fillcolor('#ffffff')
Expand Down
2 changes: 1 addition & 1 deletion Doc/library/weakref.rst
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,7 @@ the constructor when it was created.
>>> obj = Object()
>>> f = weakref.finalize(obj, callback, 1, 2, z=3)
>>> f.detach() #doctest:+ELLIPSIS
(<__main__.Object object ...>, <function callback ...>, (1, 2), {'z': 3})
(<...Object object ...>, <function callback ...>, (1, 2), {'z': 3})
>>> newobj, func, args, kwargs = _
>>> assert not f.alive
>>> assert newobj is obj
Expand Down