[openstack-dev] Sphinx testing fun
doug at doughellmann.com
Thu Oct 4 11:21:14 UTC 2018
Stephen Finucane <sfinucan at redhat.com> writes:
> The tests in os-api-ref recently broke:
> Specifically, we're seeing errors likes this:
> ft1.1: os_api_ref.tests.test_basic_example.TestBasicExample.test_rest_method_StringException: Traceback (most recent call last):
> File "/home/zuul/src/git.openstack.org/openstack/os-api-ref/.tox/py35/lib/python3.5/site-packages/sphinx_testing/util.py", line 143, in decorator
> func(*(args + (app, status, warning)), **kwargs)
> File "/home/zuul/src/git.openstack.org/openstack/os-api-ref/os_api_ref/tests/test_basic_example.py", line 41, in setUp
> self.html = (app.outdir / 'index.html').read_text(encoding='utf-8')
> TypeError: unsupported operand type(s) for /: 'str' and 'str'
> Which is wrong because 'app.outdir' is not supposed to be an instance
> of 'unicode' but rather 'sphinx_testing.path.path'  (which overrides
> the '/' operator to act as concatenation because operator overloading
> is always a good idea 😒) .
Is that a change in Sphinx's API? Or sphinx_testing's?
> Anyway, we can go figure out what's changed here and handle it but this
> is, at best, going to be a band aid. The fact is 'sphinx_testing' is
> unmaintained and has been for some time now. The new hotness is
> 'sphinx.testing' , which is provided (with zero documentation) as
> part of Sphinx. Unfortunately, this uses pytest fixtures  which I'm
> pretty sure Monty (and a few others?) are vehemently against using in
> OpenStack. That leaves us with three options:
> * Take over 'sphinx_testing' and bring it up-to-date. Maintain
> * Start using 'sphinx.testing' and everything it comes with
> * Delete any tests that use 'sphinx_testing' and deal with the lack of
Could we change our tests to use pathlib to wrap app.outdir and get the
same results as before?
More information about the OpenStack-dev