Skip to content

Ensure COV_CORE_SRC is an absolute path before exporting to the environment #465

Open
@ctheune

Description

@ctheune

Summary

When COV_CORE_SRC is a relative directory and a subprocess first changes its working directory
before invoking Python then coverage won't associate the

Expected vs actual result

Get proper coverage reporting, but coverage is not reported properly.

Reproducer

  • specifiy the test directory with a relative path, i.e. bin/py.test src
  • Create wrap a subprocess call in a shell script that first changes its work directory before calling bin/python src/something.py

Versions

Output of relevant packages pip list, python --version, pytest --version etc.

Python 3.8.5
pytest 6.1.2
pytest-asyncio==0.14.0
pytest-cache==1.0
pytest-cov==2.11.1
pytest-flake8==1.0.6
pytest-timeout==1.4.2

Config

Include your tox.ini, pytest.ini, .coveragerc, setup.cfg or any relevant configuration.

[run]
branch = True
[pytest]
addopts = --timeout=30 --tb=native --cov=src --cov-report=html src -r w
markers = slow: This is a non-unit test and thus is not run by default. Use ``-m slow`` to run these, or ``-m 1`` to run all tests.
log_level = NOTSET


filterwarnings =
    ignore::DeprecationWarning:telnetlib3.*:

Code

See https://github.com/flyingcircusio/backy/blob/master/src/backy/tests/test_backy.py#L99

I'm currently working around this by explicitly making COV_CORE_SRC absolute before calling the subprocess. I guess this could/should be done in general, too.

    os.environ['COV_CORE_SOURCE'] = os.path.abspath(
        os.environ['COV_CORE_SOURCE'])

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions