bpo-27200: Fix pathlib, ssl, turtle and weakref doctests (GH-616)

This commit is contained in:
Marco Buttu 2017-04-13 16:17:59 +02:00 committed by Berker Peksag
parent d1dc65dc82
commit 7b2491a6aa
4 changed files with 25 additions and 9 deletions

View File

@ -271,6 +271,10 @@ property:
Methods and properties Methods and properties
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^
.. testsetup::
from pathlib import PurePosixPath, PureWindowsPath
Pure paths provide the following methods and properties: Pure paths provide the following methods and properties:
.. data:: PurePath.drive .. data:: PurePath.drive
@ -657,6 +661,8 @@ call fails (for example because the path doesn't exist):
Return information about this path (similarly to :func:`os.stat`). Return information about this path (similarly to :func:`os.stat`).
The result is looked up at each call to this method. The result is looked up at each call to this method.
::
>>> p = Path('setup.py') >>> p = Path('setup.py')
>>> p.stat().st_size >>> p.stat().st_size
956 956
@ -948,7 +954,7 @@ call fails (for example because the path doesn't exist):
.. method:: Path.rglob(pattern) .. method:: Path.rglob(pattern)
This is like calling :meth:`Path.glob` with "``**``" added in front of the This is like calling :meth:`Path.glob` with "``**``" added in front of the
given *pattern*: given *pattern*::
>>> sorted(Path().rglob("*.py")) >>> sorted(Path().rglob("*.py"))
[PosixPath('build/lib/pathlib.py'), [PosixPath('build/lib/pathlib.py'),
@ -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 An :exc:`OSError` can be raised if either file cannot be accessed for some
reason. reason.
::
>>> p = Path('spam') >>> p = Path('spam')
>>> q = Path('eggs') >>> q = Path('eggs')
>>> p.samefile(q) >>> p.samefile(q)
@ -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 *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. is a directory. Under POSIX, *target_is_directory*'s value is ignored.
::
>>> p = Path('mylink') >>> p = Path('mylink')
>>> p.symlink_to('setup.py') >>> p.symlink_to('setup.py')
>>> p.resolve() >>> p.resolve()

View File

@ -369,6 +369,10 @@ Random generation
Certificate handling Certificate handling
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
.. testsetup::
import ssl
.. function:: match_hostname(cert, hostname) .. function:: match_hostname(cert, hostname)
Verify that *cert* (in decoded format as returned by Verify that *cert* (in decoded format as returned by
@ -415,10 +419,10 @@ Certificate handling
>>> import ssl >>> import ssl
>>> timestamp = ssl.cert_time_to_seconds("Jan 5 09:34:43 2018 GMT") >>> timestamp = ssl.cert_time_to_seconds("Jan 5 09:34:43 2018 GMT")
>>> timestamp >>> timestamp # doctest: +SKIP
1515144883 1515144883
>>> from datetime import datetime >>> from datetime import datetime
>>> print(datetime.utcfromtimestamp(timestamp)) >>> print(datetime.utcfromtimestamp(timestamp)) # doctest: +SKIP
2018-01-05 09:34:43 2018-01-05 09:34:43
"notBefore" or "notAfter" dates must use GMT (:rfc:`5280`). "notBefore" or "notAfter" dates must use GMT (:rfc:`5280`).
@ -1378,6 +1382,7 @@ to speed up repeated connections from the same clients.
'strength_bits': 128}] 'strength_bits': 128}]
On OpenSSL 1.1 and newer the cipher dict contains additional fields:: On OpenSSL 1.1 and newer the cipher dict contains additional fields::
>>> ctx.get_ciphers() # OpenSSL 1.1+ >>> ctx.get_ciphers() # OpenSSL 1.1+
[{'aead': True, [{'aead': True,
'alg_bits': 256, 'alg_bits': 256,
@ -1638,7 +1643,7 @@ to speed up repeated connections from the same clients.
.. versionchanged:: 3.6 .. versionchanged:: 3.6
:attr:`SSLContext.options` returns :class:`Options` flags: :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> <Options.OP_ALL|OP_NO_SSLv3|OP_NO_SSLv2|OP_NO_COMPRESSION: 2197947391>
.. attribute:: SSLContext.protocol .. attribute:: SSLContext.protocol
@ -1658,7 +1663,7 @@ to speed up repeated connections from the same clients.
.. versionchanged:: 3.6 .. versionchanged:: 3.6
:attr:`SSLContext.verify_flags` returns :class:`VerifyFlags` flags: :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> <VerifyFlags.VERIFY_X509_TRUSTED_FIRST: 32768>
.. attribute:: SSLContext.verify_mode .. attribute:: SSLContext.verify_mode
@ -2259,6 +2264,8 @@ recommended to use :const:`PROTOCOL_TLS_CLIENT` or
:const:`PROTOCOL_TLS_SERVER` as the protocol version. SSLv2 and SSLv3 are :const:`PROTOCOL_TLS_SERVER` as the protocol version. SSLv2 and SSLv3 are
disabled by default. disabled by default.
::
>>> client_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) >>> client_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
>>> client_context.options |= ssl.OP_NO_TLSv1 >>> client_context.options |= ssl.OP_NO_TLSv1
>>> client_context.options |= ssl.OP_NO_TLSv1_1 >>> client_context.options |= ssl.OP_NO_TLSv1_1

View File

@ -936,10 +936,9 @@ Color control
>>> turtle.fillcolor("violet") >>> turtle.fillcolor("violet")
>>> turtle.fillcolor() >>> turtle.fillcolor()
'violet' 'violet'
>>> col = turtle.pencolor() >>> turtle.pencolor()
>>> col
(50.0, 193.0, 143.0) (50.0, 193.0, 143.0)
>>> turtle.fillcolor(col) >>> turtle.fillcolor((50, 193, 143)) # Integers, not floats
>>> turtle.fillcolor() >>> turtle.fillcolor()
(50.0, 193.0, 143.0) (50.0, 193.0, 143.0)
>>> turtle.fillcolor('#ffffff') >>> turtle.fillcolor('#ffffff')

View File

@ -478,7 +478,7 @@ the constructor when it was created.
>>> obj = Object() >>> obj = Object()
>>> f = weakref.finalize(obj, callback, 1, 2, z=3) >>> f = weakref.finalize(obj, callback, 1, 2, z=3)
>>> f.detach() #doctest:+ELLIPSIS >>> 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 = _ >>> newobj, func, args, kwargs = _
>>> assert not f.alive >>> assert not f.alive
>>> assert newobj is obj >>> assert newobj is obj