sphinx-doc/sphinx
Ver no GitHubsphinx.ext.doctest should ensure that output is patched before importing the target
Open
#3.891 aberto em 25 de jun. de 2017
builderextensions:doctesthelp wantedtype:proposal
Métricas do repositório
- Stars
- (5.625 stars)
- Métricas de merge de PR
- (Mesclagem média 10d 11h) (11 fundiu PRs em 30d)
Description
Problem
- sphinx.ext.doctest will import the target before making sure that docutils has patched
sys.stdoutandsys.stderrwith_SpoofOutobjects. If the target module has already gotten a reference to stdout and stderr and writes to them doctests will fail.
Procedure to reproduce the problem
doctest a function like:
def f(stdout=sys.stdout):
"""
.. testcode::
f()
.. testoutput::
hello
"""
stdout.write("hello")
Expected results
a successful doctest, where sys.stdout should be patched before the module under test is imported
Actual results
The output goes to the real sys.stdout, and the doctest fails claiming no output was produced