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