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"
 
    tg.request_local.context._push_object(tg.util.bunch.Bunch())
 
    # could be removed again after use with
 
    # 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.
 

	
 
    Intended to be used for doctests.
 

	
 
    In a doctest, enable this fixture using:
 
        >>> getfixture('doctest_mock_ugettext')
 
    """
 
    m = __import__(request.module.__name__, globals(), locals(), [None], 0)
 
    with mock.patch.object(m, '_', lambda s: s):
 
        yield
scripts/deps.py
Show inline comments
 
@@ -53,24 +53,25 @@ logging
 
mako
 
markdown
 
mimetypes
 
mock
 
msvcrt
 
multiprocessing
 
operator
 
os
 
paginate
 
paginate_sqlalchemy
 
pam
 
paste
 
pathlib
 
pkg_resources
 
platform
 
posixpath
 
pprint
 
pwd
 
pyflakes
 
pytest
 
pytest_localserver
 
random
 
re
 
routes
 
setuptools
0 comments (0 inline, 0 general)