From e65fcde85abf6617508f2d6b77020e24b8ca6f6b Mon Sep 17 00:00:00 2001 From: Marco Buttu Date: Thu, 27 Apr 2017 14:23:34 +0200 Subject: bpo-27200: Fix several doctests (GH-604) --- Doc/library/email.compat32-message.rst | 24 ++++++++++++++---------- Doc/library/functions.rst | 2 +- Doc/library/ipaddress.rst | 8 +++++--- Doc/library/reprlib.rst | 1 + Doc/library/shlex.rst | 6 ++++-- Doc/library/urllib.parse.rst | 3 +++ Doc/whatsnew/3.2.rst | 19 +++++++++++-------- 7 files changed, 39 insertions(+), 24 deletions(-) diff --git a/Doc/library/email.compat32-message.rst b/Doc/library/email.compat32-message.rst index b070764..2394e4d 100644 --- a/Doc/library/email.compat32-message.rst +++ b/Doc/library/email.compat32-message.rst @@ -660,10 +660,14 @@ Here are the methods of the :class:`Message` class: .. testsetup:: - >>> from email import message_from_binary_file - >>> with open('Lib/test/test_email/data/msg_16.txt', 'rb') as f: - ... msg = message_from_binary_file(f) - >>> from email.iterators import _structure + import email + from email import message_from_binary_file + from os.path import join, dirname + lib_dir = dirname(dirname(email.__file__)) + file_path = join(lib_dir, 'test/test_email/data/msg_16.txt') + with open(file_path, 'rb') as f: + msg = message_from_binary_file(f) + from email.iterators import _structure .. doctest:: @@ -686,7 +690,7 @@ Here are the methods of the :class:`Message` class: .. doctest:: >>> for part in msg.walk(): - ... print(part.get_content_maintype() == 'multipart'), + ... print(part.get_content_maintype() == 'multipart', ... part.is_multipart()) True True False False @@ -698,11 +702,11 @@ Here are the methods of the :class:`Message` class: >>> _structure(msg) multipart/report text/plain - message/delivery-status - text/plain - text/plain - message/rfc822 - text/plain + message/delivery-status + text/plain + text/plain + message/rfc822 + text/plain Here the ``message`` parts are not ``multiparts``, but they do contain subparts. ``is_multipart()`` returns ``True`` and ``walk`` descends diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index 6621f4a..925da50 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -331,7 +331,7 @@ are always available. They are listed here in alphabetical order. The resulting list is sorted alphabetically. For example: >>> import struct - >>> dir() # show the names in the module namespace + >>> dir() # show the names in the module namespace # doctest: +SKIP ['__builtins__', '__name__', 'struct'] >>> dir(struct) # show the names in the struct module # doctest: +SKIP ['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', diff --git a/Doc/library/ipaddress.rst b/Doc/library/ipaddress.rst index 90dfd46..36c6859 100644 --- a/Doc/library/ipaddress.rst +++ b/Doc/library/ipaddress.rst @@ -25,9 +25,11 @@ This is the full module API reference—for an overview and introduction, see .. versionadded:: 3.3 .. testsetup:: - >>> import ipaddress - >>> from ipaddress import (ip_network, IPv4Address, IPv4Interface, - ... IPv4Network) + + import ipaddress + from ipaddress import ( + ip_network, IPv4Address, IPv4Interface, IPv4Network, + ) Convenience factory functions ----------------------------- diff --git a/Doc/library/reprlib.rst b/Doc/library/reprlib.rst index 0905b98..5149bcf 100644 --- a/Doc/library/reprlib.rst +++ b/Doc/library/reprlib.rst @@ -48,6 +48,7 @@ string instead. same thread. If a recursive call is made, the *fillvalue* is returned, otherwise, the usual :meth:`__repr__` call is made. For example: + >>> from reprlib import recursive_repr >>> class MyList(list): ... @recursive_repr() ... def __repr__(self): diff --git a/Doc/library/shlex.rst b/Doc/library/shlex.rst index 55012f8..fb335c6 100644 --- a/Doc/library/shlex.rst +++ b/Doc/library/shlex.rst @@ -43,15 +43,16 @@ The :mod:`shlex` module defines the following functions: string that can safely be used as one token in a shell command line, for cases where you cannot use a list. - This idiom would be unsafe:: + This idiom would be unsafe: >>> filename = 'somefile; rm -rf ~' >>> command = 'ls -l {}'.format(filename) >>> print(command) # executed by a shell: boom! ls -l somefile; rm -rf ~ - :func:`quote` lets you plug the security hole:: + :func:`quote` lets you plug the security hole: + >>> from shlex import quote >>> command = 'ls -l {}'.format(quote(filename)) >>> print(command) ls -l 'somefile; rm -rf ~' @@ -61,6 +62,7 @@ The :mod:`shlex` module defines the following functions: The quoting is compatible with UNIX shells and with :func:`split`: + >>> from shlex import split >>> remote_command = split(remote_command) >>> remote_command ['ssh', 'home', "ls -l 'somefile; rm -rf ~'"] diff --git a/Doc/library/urllib.parse.rst b/Doc/library/urllib.parse.rst index 7a5b56f..6754e26 100644 --- a/Doc/library/urllib.parse.rst +++ b/Doc/library/urllib.parse.rst @@ -64,6 +64,9 @@ or on combining URL components into a URL string. input is presumed to be a relative URL and thus to start with a path component. + .. doctest:: + :options: +NORMALIZE_WHITESPACE + >>> from urllib.parse import urlparse >>> urlparse('//www.cwi.nl:80/%7Eguido/Python.html') ParseResult(scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html', diff --git a/Doc/whatsnew/3.2.rst b/Doc/whatsnew/3.2.rst index b900e77..78d3105 100644 --- a/Doc/whatsnew/3.2.rst +++ b/Doc/whatsnew/3.2.rst @@ -1062,13 +1062,16 @@ The :func:`~math.erf` function computes a probability integral or `Gaussian error function `_. The complementary error function, :func:`~math.erfc`, is ``1 - erf(x)``: ->>> from math import erf, erfc, sqrt ->>> erf(1.0/sqrt(2.0)) # portion of normal distribution within 1 standard deviation -0.682689492137086 ->>> erfc(1.0/sqrt(2.0)) # portion of normal distribution outside 1 standard deviation -0.31731050786291404 ->>> erf(1.0/sqrt(2.0)) + erfc(1.0/sqrt(2.0)) -1.0 +.. doctest:: + :options: +SKIP + + >>> from math import erf, erfc, sqrt + >>> erf(1.0/sqrt(2.0)) # portion of normal distribution within 1 standard deviation + 0.682689492137086 + >>> erfc(1.0/sqrt(2.0)) # portion of normal distribution outside 1 standard deviation + 0.31731050786291404 + >>> erf(1.0/sqrt(2.0)) + erfc(1.0/sqrt(2.0)) + 1.0 The :func:`~math.gamma` function is a continuous extension of the factorial function. See https://en.wikipedia.org/wiki/Gamma_function for details. Because @@ -1384,7 +1387,7 @@ guaranteed not to block when :func:`select.select` says a pipe is ready for writing. >>> import select ->>> select.PIPE_BUF +>>> select.PIPE_BUF # doctest: +SKIP 512 (Available on Unix systems. Patch by Sébastien Sablé in :issue:`9862`) -- cgit v0.12