Changeset - c814d97d8222
[Not reviewed]
stable
0 1 0
Mads Kiilerich (mads) - 5 months ago 2025-10-05 12:49:00
mads@kiilerich.com
conftest: use pytest_ignore_collect collection_path to address pytest deprecation warning

It said:
PytestRemovedIn9Warning: The (path: py.path.local) argument is deprecated, please use (collection_path: pathlib.Path)
see https://docs.pytest.org/en/latest/deprecations.html#py-path-local-arguments-for-hooks-replaced-with-pathlib-path
def pytest_ignore_collect(path):
1 file changed with 2 insertions and 2 deletions:
0 comments (0 inline, 0 general)
conftest.py
Show inline comments
 
@@ -5,50 +5,50 @@ import pytest
 
import tg
 

	
 

	
 
# 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)
 
def pytest_ignore_collect(collection_path):
 
    path = str(collection_path)
 

	
 
    # ignore all files outside the 'kallithea' directory
 
    if not path.startswith(here_kallithea):
 
        return True
 

	
 
    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
 

	
 
if getattr(pytest, 'register_assert_rewrite', None):
0 comments (0 inline, 0 general)