Clarify temporary directory location and retention

This commit is contained in:
faph 2024-01-17 12:04:34 +00:00
parent a6708b9254
commit 406a22097d
1 changed files with 13 additions and 9 deletions

View File

@ -8,9 +8,13 @@ How to use temporary directories and files in tests
The ``tmp_path`` fixture The ``tmp_path`` fixture
------------------------ ------------------------
You can use the ``tmp_path`` fixture which will You can use the ``tmp_path`` fixture which will provide a temporary directory
provide a temporary directory unique to the current test, unique to each test function.
created in the `base temporary directory`_.
By default, ``pytest`` retains the temporary directory for the last 3 ``pytest``
invocations. Concurrent invocations of the same test function are supported by
configuring the base temporary directory to be unique for each concurrent
run. See `temporary directory location and retention`_ for details.
``tmp_path`` is a :class:`pathlib.Path` object. Here is an example test usage: ``tmp_path`` is a :class:`pathlib.Path` object. Here is an example test usage:
@ -100,7 +104,7 @@ See :ref:`tmp_path_factory API <tmp_path_factory factory api>` for details.
.. _tmpdir: .. _tmpdir:
The ``tmpdir`` and ``tmpdir_factory`` fixtures The ``tmpdir`` and ``tmpdir_factory`` fixtures
--------------------------------------------------- ----------------------------------------------
The ``tmpdir`` and ``tmpdir_factory`` fixtures are similar to ``tmp_path`` The ``tmpdir`` and ``tmpdir_factory`` fixtures are similar to ``tmp_path``
and ``tmp_path_factory``, but use/return legacy `py.path.local`_ objects and ``tmp_path_factory``, but use/return legacy `py.path.local`_ objects
@ -124,10 +128,10 @@ See :fixture:`tmpdir <tmpdir>` :fixture:`tmpdir_factory <tmpdir_factory>`
API for details. API for details.
.. _`base temporary directory`: .. _`temporary directory location and retention`:
The default base temporary directory Temporary directory location and retention
----------------------------------------------- ------------------------------------------
Temporary directories are by default created as sub-directories of Temporary directories are by default created as sub-directories of
the system temporary directory. The base name will be ``pytest-NUM`` where the system temporary directory. The base name will be ``pytest-NUM`` where
@ -152,7 +156,7 @@ You can override the default temporary directory setting like this:
for that purpose only. for that purpose only.
When distributing tests on the local machine using ``pytest-xdist``, care is taken to When distributing tests on the local machine using ``pytest-xdist``, care is taken to
automatically configure a basetemp directory for the sub processes such that all temporary automatically configure a `basetemp` directory for the sub processes such that all temporary
data lands below a single per-test run basetemp directory. data lands below a single per-test run temporary directory.
.. _`py.path.local`: https://py.readthedocs.io/en/latest/path.html .. _`py.path.local`: https://py.readthedocs.io/en/latest/path.html