Mercurial > kallithea
comparison conftest.py @ 7734:afa5e0bdb76f
tests: run doctests via pytest
pytest can run doctests as part of the standard testsuite run. See
documentation at [1].
pytest will discover doctests in all python files it can find. However, some
files cannot be imported directly in this manner.
Fix this by adding a filter in conftest.py in the root directory. This code
could also live in kallithea/conftest.py, but it cannot be in
kallithea/tests/conftest.py because that level is deeper than the files we
want to filter.
[1] https://docs.pytest.org/en/latest/doctest.html
author | Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> |
---|---|
date | Tue, 11 Jun 2019 20:53:33 +0200 |
parents | |
children | 3929ff3f21c6 |
comparison
equal
deleted
inserted
replaced
7733:460cfae11203 | 7734:afa5e0bdb76f |
---|---|
1 import mock | |
2 import os | |
3 import pytest | |
4 import sys | |
5 | |
6 here = os.path.dirname(__file__) | |
7 | |
8 def pytest_ignore_collect(path): | |
9 # ignore all files outside the 'kallithea' directory | |
10 if not str(path).startswith(os.path.join(here, 'kallithea')): | |
11 return True | |
12 | |
13 # during doctest verification, normally all python files will be imported. | |
14 # Thus, files that cannot be imported normally should be ignored. | |
15 # Files that generate ImportErrors are ignored via | |
16 # '--doctest-ignore-import-errors' (pytest.ini) | |
17 kallithea_ignore_paths = ( | |
18 # AttributeError: 'module' object has no attribute 'config' | |
19 '/kallithea/alembic/env.py', | |
20 # collection of the following file messes up the rest of test execution | |
21 '/kallithea/tests/scripts/manual_test_concurrency.py', | |
22 ) | |
23 if str(path).endswith(kallithea_ignore_paths): | |
24 return True |