Skip to content

Commit

Permalink
Add support for .pytest.ini as an alternative to pytest.ini
Browse files Browse the repository at this point in the history
  • Loading branch information
grintor committed Jun 14, 2022
1 parent 2cd4165 commit fab696d
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 7 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Expand Up @@ -67,6 +67,7 @@ Cheuk Ting Ho
Chris Lamb
Chris NeJame
Chris Rose
Chris Wheeler
Christian Boelsen
Christian Fetzer
Christian Neumüller
Expand Down
1 change: 1 addition & 0 deletions changelog/9987.improvement.rst
@@ -0,0 +1 @@
Added support for hidden configuration file by allowing ``.pytest.ini`` as an alternative to ``pytest.ini``.
4 changes: 3 additions & 1 deletion doc/en/reference/customize.rst
Expand Up @@ -29,9 +29,11 @@ pytest.ini

``pytest.ini`` files take precedence over other files, even when empty.

Alternatively, the hidden version ``.pytest.ini`` can be used.

.. code-block:: ini
# pytest.ini
# pytest.ini or .pytest.ini
[pytest]
minversion = 6.0
addopts = -ra -q
Expand Down
7 changes: 4 additions & 3 deletions doc/en/reference/reference.rst
Expand Up @@ -1154,9 +1154,10 @@ Consult the :ref:`internal-warnings` section in the documentation for more infor
Configuration Options
---------------------

Here is a list of builtin configuration options that may be written in a ``pytest.ini``, ``pyproject.toml``, ``tox.ini`` or ``setup.cfg``
file, usually located at the root of your repository. To see each file format in details, see
:ref:`config file formats`.
Here is a list of builtin configuration options that may be written in a ``pytest.ini`` (or ``.pytest.ini``),
``pyproject.toml``, ``tox.ini``, or ``setup.cfg`` file, usually located at the root of your repository.

To see each file format in details, see :ref:`config file formats`.

.. warning::
Usage of ``setup.cfg`` is not recommended except for very simple use cases. ``.cfg``
Expand Down
1 change: 1 addition & 0 deletions src/_pytest/config/findpaths.py
Expand Up @@ -96,6 +96,7 @@ def locate_config(
and return a tuple of (rootdir, inifile, cfg-dict)."""
config_names = [
"pytest.ini",
".pytest.ini",
"pyproject.toml",
"tox.ini",
"setup.cfg",
Expand Down
11 changes: 8 additions & 3 deletions testing/test_config.py
Expand Up @@ -112,21 +112,26 @@ def test_tox_ini_wrong_version(self, pytester: Pytester) -> None:

@pytest.mark.parametrize(
"section, name",
[("tool:pytest", "setup.cfg"), ("pytest", "tox.ini"), ("pytest", "pytest.ini")],
[
("tool:pytest", "setup.cfg"),
("pytest", "tox.ini"),
("pytest", "pytest.ini"),
("pytest", ".pytest.ini"),
],
)
def test_ini_names(self, pytester: Pytester, name, section) -> None:
pytester.path.joinpath(name).write_text(
textwrap.dedent(
"""
[{section}]
minversion = 1.0
minversion = 3.36
""".format(
section=section
)
)
)
config = pytester.parseconfig()
assert config.getini("minversion") == "1.0"
assert config.getini("minversion") == "3.36"

def test_pyproject_toml(self, pytester: Pytester) -> None:
pytester.makepyprojecttoml(
Expand Down

0 comments on commit fab696d

Please sign in to comment.