Skip to content

Commit

Permalink
Doctest cleanups (GH-95436)
Browse files Browse the repository at this point in the history
* GHA: Don't hide doctest output

* Enable doctests in math.rst

* Squash warnings in nntplib.rst doctests

* Squash warning in turtle.rst doctest

* Squash warnings in whatsnew/3.2.rst doctests

* Treat warnings as errors in Doc/ doctests
  • Loading branch information
zware committed Jul 30, 2022
1 parent 9ec6abf commit 8281462
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 7 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/doc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,4 @@ jobs:
run: make -C Doc/ PYTHON=../python venv
# Use "xvfb-run" since some doctest tests open GUI windows
- name: 'Run documentation doctest'
run: xvfb-run make -C Doc/ PYTHON=../python SPHINXOPTS="-q" SPHINXERRORHANDLING="-W --keep-going" doctest
run: xvfb-run make -C Doc/ PYTHON=../python SPHINXERRORHANDLING="-W --keep-going" doctest
5 changes: 5 additions & 0 deletions Doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
import _tkinter
except ImportError:
_tkinter = None
# Treat warnings as errors, done here to prevent warnings in Sphinx code from
# causing spurious test failures.
import warnings
warnings.simplefilter('error')
del warnings
'''

manpages_url = 'https://manpages.debian.org/{path}'
Expand Down
6 changes: 3 additions & 3 deletions Doc/library/math.rst
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ Number-theoretic and representation functions
.. function:: fsum(iterable)

Return an accurate floating point sum of values in the iterable. Avoids
loss of precision by tracking multiple intermediate partial sums::
loss of precision by tracking multiple intermediate partial sums:

>>> sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
0.9999999999999999
Expand Down Expand Up @@ -371,7 +371,7 @@ Power and logarithmic functions
logarithms. For small floats *x*, the subtraction in ``exp(x) - 1``
can result in a `significant loss of precision
<https://en.wikipedia.org/wiki/Loss_of_significance>`_\; the :func:`expm1`
function provides a way to compute this quantity to full precision::
function provides a way to compute this quantity to full precision:

>>> from math import exp, expm1
>>> exp(1e-5) - 1 # gives result accurate to 11 places
Expand Down Expand Up @@ -654,7 +654,7 @@ Constants
not considered to equal to any other numeric value, including themselves. To check
whether a number is a NaN, use the :func:`isnan` function to test
for NaNs instead of ``is`` or ``==``.
Example::
Example:

>>> import math
>>> math.nan == math.nan
Expand Down
17 changes: 17 additions & 0 deletions Doc/library/nntplib.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,23 @@
.. deprecated:: 3.11
The :mod:`nntplib` module is deprecated (see :pep:`594` for details).

.. testsetup::

import warnings
with warnings.catch_warnings():
warnings.simplefilter('ignore', category=DeprecationWarning)
import nntplib

.. testcleanup::

try:
s.quit()
except NameError:
pass
import sys
# Force a warning if any other file imports nntplib
sys.modules.pop('nntplib')

--------------

This module defines the class :class:`NNTP` which implements the client side of
Expand Down
2 changes: 1 addition & 1 deletion Doc/library/turtle.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1279,7 +1279,7 @@ Appearance
(direction of movement).

.. doctest::
:skipif: _tkinter is None
:skipif: _tkinter is None or 'always; deprecated method'

>>> turtle.reset()
>>> turtle.shape("circle")
Expand Down
4 changes: 2 additions & 2 deletions Doc/whatsnew/3.2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -322,15 +322,15 @@ aspects that are visible to the programmer:
* The tag that is unique to each interpreter is accessible from the :mod:`imp`
module:

>>> import imp
>>> import imp # doctest: +SKIP
>>> imp.get_tag() # doctest: +SKIP
'cpython-32'

* Scripts that try to deduce source filename from the imported file now need to
be smarter. It is no longer sufficient to simply strip the "c" from a ".pyc"
filename. Instead, use the new functions in the :mod:`imp` module:

>>> imp.source_from_cache('c:/py32/lib/__pycache__/collections.cpython-32.pyc')
>>> imp.source_from_cache('c:/py32/lib/__pycache__/collections.cpython-32.pyc') # doctest: +SKIP
'c:/py32/lib/collections.py'
>>> imp.cache_from_source('c:/py32/lib/collections.py') # doctest: +SKIP
'c:/py32/lib/__pycache__/collections.cpython-32.pyc'
Expand Down

0 comments on commit 8281462

Please sign in to comment.