Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to disable internal pytest warnings?

I want to disable all pytest internal warnings like PytestCacheWarning in pytest.ini but currently have no luck with it. The following ini file doesn't work as I expect:

[pytest]
filterwarnings:
    ignore::pytest.PytestCacheWarning

What is the right way to do it? Note: I don't want to disable all warnings, only those defined inside pytest implementation.


Minimal reproducible example:

1) Create the following structure:

some_dir/
    .pytest_cache/
    test_something.py
    pytest.ini

2) Put this into test_something.py file:

def test_something():
    assert False

3) Put this into pytest.ini file:

[pytest]
filterwarnings:
    ignore::pytest.PytestCacheWarning

4) do chmod 444 .pytest_cache to procude PytestCacheWarning: could not create cache path warning

5) run pytest:

========================== test session starts ===========================
platform linux -- Python 3.7.6, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /home/sanyash/repos/reproduce_pytest_bug, inifile: pytest.ini
plugins: celery-4.4.0, aiohttp-0.3.0
collected 1 item                                                         

test_something.py F                                                [100%]

================================ FAILURES ================================
_____________________________ test_something _____________________________

    def test_something():
>       assert False
E       assert False

test_something.py:2: AssertionError
============================ warnings summary ============================
/home/sanyash/.local/lib/python3.7/site-packages/_pytest/cacheprovider.py:137
  /home/sanyash/.local/lib/python3.7/site-packages/_pytest/cacheprovider.py:137: PytestCacheWarning: could not create cache path /home/sanyash/repos/reproduce_pytest_bug/.pytest_cache/v/cache/stepwise
    self.warn("could not create cache path {path}", path=path)

/home/sanyash/.local/lib/python3.7/site-packages/_pytest/cacheprovider.py:137
  /home/sanyash/.local/lib/python3.7/site-packages/_pytest/cacheprovider.py:137: PytestCacheWarning: could not create cache path /home/sanyash/repos/reproduce_pytest_bug/.pytest_cache/v/cache/nodeids
    self.warn("could not create cache path {path}", path=path)

/home/sanyash/.local/lib/python3.7/site-packages/_pytest/cacheprovider.py:137
  /home/sanyash/.local/lib/python3.7/site-packages/_pytest/cacheprovider.py:137: PytestCacheWarning: could not create cache path /home/sanyash/repos/reproduce_pytest_bug/.pytest_cache/v/cache/lastfailed
    self.warn("could not create cache path {path}", path=path)

-- Docs: https://docs.pytest.org/en/latest/warnings.html
===================== 1 failed, 3 warnings in 0.03s ======================
like image 563
sanyassh Avatar asked Sep 02 '25 10:09

sanyassh


1 Answers

You must use the import path to ignore it:

[pytest]
filterwarnings =
    ignore::pytest.PytestCacheWarning

so for all pytest warnings you would use the common base class:

[pytest]
filterwarnings =
    ignore::pytest.PytestWarning
like image 93
mattjegan Avatar answered Sep 04 '25 23:09

mattjegan