[PATCH v2 2/4] doc: pytest: Framework for documenting tests and document test_000_version
Simon Glass
sjg at chromium.org
Sat May 10 13:25:17 CEST 2025
Hi Tom,
On Thu, 8 May 2025 at 00:11, Tom Rini <trini at konsulko.com> wrote:
>
> In order to easily document pytests, we need to include the autodoc
> extension. We also need to make sure that for building the docs, CI
> includes pytest and that we have PYTHONPATH configured such that it will
> find all of the tests and related files. Finally, we need to have our
> comments in the test file by in proper pydoc format in order to be
> included in the output.
>
> Signed-off-by: Tom Rini <trini at konsulko.com>
> ---
> Cc: Heinrich Schuchardt <xypron.glpk at gmx.de>
> Cc: Simon Glass <sjg at chromium.org>
> ---
> .azure-pipelines.yml | 2 +-
> .gitlab-ci.yml | 2 +-
> Makefile | 3 ++-
> doc/conf.py | 2 +-
> doc/develop/pytest/index.rst | 8 ++++++++
> doc/develop/pytest/test_000_version.rst | 8 ++++++++
> test/py/tests/test_000_version.py | 10 ++++++----
> 7 files changed, 27 insertions(+), 8 deletions(-)
> create mode 100644 doc/develop/pytest/test_000_version.rst
Thank you for doing this.
>
> diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml
> index 5e1938b05262..9c136513bb9e 100644
> --- a/.azure-pipelines.yml
> +++ b/.azure-pipelines.yml
> @@ -92,7 +92,7 @@ stages:
> set -e
> python3 -m venv /tmp/venvhtml
> . /tmp/venvhtml/bin/activate
> - pip install -r doc/sphinx/requirements.txt
> + pip install -r doc/sphinx/requirements.txt pytest
> make htmldocs KDOC_WERROR=1
> make infodocs
>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 6f11331514b8..7aadd5d8b735 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -164,7 +164,7 @@ docs:
> script:
> - python3 -m venv /tmp/venvhtml
> - . /tmp/venvhtml/bin/activate
> - - pip install -r doc/sphinx/requirements.txt
> + - pip install -r doc/sphinx/requirements.txt pytest
> - make htmldocs KDOC_WERROR=1
> - make infodocs
>
> diff --git a/Makefile b/Makefile
> index 15c7e633b874..bd136a48982a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2448,7 +2448,8 @@ DOC_TARGETS := xmldocs latexdocs pdfdocs htmldocs epubdocs cleandocs \
> linkcheckdocs dochelp refcheckdocs texinfodocs infodocs
> PHONY += $(DOC_TARGETS)
> $(DOC_TARGETS): scripts_basic FORCE
> - $(Q)$(MAKE) $(build)=doc $@
> + $(Q)PYTHONPATH=$(srctree)/test/py/tests:$(srctree)/test/py \
> + $(MAKE) $(build)=doc $@
>
> PHONY += checkstack ubootrelease ubootversion
>
> diff --git a/doc/conf.py b/doc/conf.py
> index 3cb9b2bb65e5..84d028feda83 100644
> --- a/doc/conf.py
> +++ b/doc/conf.py
> @@ -48,7 +48,7 @@ extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include',
> 'kfigure', 'sphinx.ext.ifconfig', # 'automarkup',
> 'maintainers_include', 'sphinx.ext.autosectionlabel',
> 'kernel_abi', 'kernel_feat', 'sphinx-prompt',
> - 'sphinx_reredirects' ]
> + 'sphinx_reredirects', 'sphinx.ext.autodoc' ]
>
> #
> # cdomain is badly broken in Sphinx 3+. Leaving it out generates *most*
> diff --git a/doc/develop/pytest/index.rst b/doc/develop/pytest/index.rst
> index 435d84fc619f..ca45e157d3be 100644
> --- a/doc/develop/pytest/index.rst
> +++ b/doc/develop/pytest/index.rst
> @@ -10,3 +10,11 @@ General
> :maxdepth: 1
>
> usage
> +
> +Individual tests
> +----------------
> +
> +.. toctree::
> + :maxdepth: 1
> +
> + test_000_version
> diff --git a/doc/develop/pytest/test_000_version.rst b/doc/develop/pytest/test_000_version.rst
> new file mode 100644
> index 000000000000..09e9a361729b
> --- /dev/null
> +++ b/doc/develop/pytest/test_000_version.rst
> @@ -0,0 +1,8 @@
> +test_000_version
> +================
> +
> +.. automodule:: test_000_version
> + :synopsis:
> + :member-order: bysource
> + :members:
> + :undoc-members:
> diff --git a/test/py/tests/test_000_version.py b/test/py/tests/test_000_version.py
> index b95ceae23465..63d392e956e0 100644
> --- a/test/py/tests/test_000_version.py
> +++ b/test/py/tests/test_000_version.py
> @@ -2,10 +2,12 @@
> # Copyright (c) 2015 Stephen Warren
> # Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
>
> -# pytest runs tests the order of their module path, which is related to the
> -# filename containing the test. This file is named such that it is sorted
> -# first, simply as a very basic sanity check of the functionality of the U-Boot
> -# command prompt.
> +"""
> +pytest runs tests the order of their module path, which is related to the
in the order
> +filename containing the test. This file is named such that it is sorted
> +first, simply as a very basic sanity check of the functionality of the U-Boot
> +command prompt.
> +"""
>
> def test_version(ubman):
> """Test that the "version" command prints the U-Boot version."""
> --
> 2.43.0
>
Reviewed-by: Simon Glass <sjg at chromium.org>
Regards,
Simon
More information about the U-Boot
mailing list