Changeset - 947cc923d73c
[Not reviewed]
stable
0 2 0
Mads Kiilerich (mads) - 5 months ago 2025-10-05 12:46:44
mads@kiilerich.com
conftest: Refactor (simplify and optimize) pytest_ignore_collect

Move constants out of the function, and return None explicitly. No big deal, but better.
2 files changed with 21 insertions and 15 deletions:
0 comments (0 inline, 0 general)
conftest.py
Show inline comments
 
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.
scripts/deps.py
Show inline comments
 
@@ -62,6 +62,7 @@ paginate
 
paginate_sqlalchemy
 
pam
 
paste
 
pathlib
 
pkg_resources
 
platform
 
posixpath
0 comments (0 inline, 0 general)