diff --git a/conftest.py b/conftest.py --- a/conftest.py +++ b/conftest.py @@ -1,12 +1,10 @@ -import os +import pathlib import mock import pytest import tg -here = os.path.dirname(__file__) - # HACK: def pytest_configure(): # Register global dummy tg.context to avoid "TypeError: No object (name: context) has been registered for this thread" @@ -15,24 +13,31 @@ def pytest_configure(): # tg.request_local.context._pop_object ... but we keep it around forever as # a reasonable sentinel +here_kallithea = str(pathlib.Path(__file__).parent / 'kallithea') + +# during doctest verification, normally all python files will be imported. +# Thus, files that cannot be imported normally should be ignored. +# Files that generate ImportErrors are ignored via +# '--doctest-ignore-import-errors' (pytest.ini) +kallithea_ignore_paths = ( + # AttributeError: 'module' object has no attribute 'config' + '/kallithea/alembic/env.py', + # collection of the following file messes up the rest of test execution + '/kallithea/tests/scripts/manual_test_concurrency.py', +) + def pytest_ignore_collect(path): + path = str(path) + # ignore all files outside the 'kallithea' directory - if not str(path).startswith(os.path.join(here, 'kallithea')): + if not path.startswith(here_kallithea): return True - # during doctest verification, normally all python files will be imported. - # Thus, files that cannot be imported normally should be ignored. - # Files that generate ImportErrors are ignored via - # '--doctest-ignore-import-errors' (pytest.ini) - kallithea_ignore_paths = ( - # AttributeError: 'module' object has no attribute 'config' - '/kallithea/alembic/env.py', - # collection of the following file messes up the rest of test execution - '/kallithea/tests/scripts/manual_test_concurrency.py', - ) - if str(path).endswith(kallithea_ignore_paths): + if path.endswith(kallithea_ignore_paths): return True + return None + @pytest.fixture() def doctest_mock_ugettext(request): """Mock ugettext ('_') in the module using this fixture. diff --git a/scripts/deps.py b/scripts/deps.py --- a/scripts/deps.py +++ b/scripts/deps.py @@ -62,6 +62,7 @@ paginate paginate_sqlalchemy pam paste +pathlib pkg_resources platform posixpath