Skip to content

Commit d7d410a

Browse files
unpatch
1 parent a468806 commit d7d410a

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

ddtrace/testing/internal/pytest/plugin.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
from ddtrace.testing.internal.tracer_api.coverage import get_coverage_percentage
4040
from ddtrace.testing.internal.tracer_api.coverage import install_coverage
4141
from ddtrace.testing.internal.tracer_api.coverage import install_coverage_percentage
42+
from ddtrace.testing.internal.tracer_api.coverage import uninstall_coverage_percentage
4243
import ddtrace.testing.internal.tracer_api.pytest_hooks
4344
from ddtrace.testing.internal.utils import TestContext
4445
from ddtrace.testing.internal.utils import asbool
@@ -170,6 +171,7 @@ def pytest_sessionfinish(self, session: pytest.Session) -> None:
170171
coverage_percentage = get_coverage_percentage(_is_pytest_cov_enabled(session.config))
171172
if coverage_percentage is not None:
172173
self.session.metrics[TestTag.CODE_COVERAGE_LINES_PCT] = coverage_percentage
174+
uninstall_coverage_percentage()
173175

174176
self.session.finish()
175177

ddtrace/testing/internal/tracer_api/coverage.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from ddtrace.contrib.internal.coverage.constants import PCT_COVERED_KEY
1414
from ddtrace.contrib.internal.coverage.data import _coverage_data
1515
from ddtrace.contrib.internal.coverage.patch import patch as patch_coverage
16+
from ddtrace.contrib.internal.coverage.patch import unpatch as unpatch_coverage
1617
from ddtrace.contrib.internal.coverage.patch import run_coverage_report
1718
from ddtrace.contrib.internal.coverage.utils import _is_coverage_invoked_by_coverage_run
1819
from ddtrace.contrib.internal.coverage.utils import _is_coverage_patched
@@ -62,6 +63,13 @@ def install_coverage_percentage():
6263
patch_coverage()
6364

6465

66+
def uninstall_coverage_percentage():
67+
"""
68+
Undo patching of coverage.py.
69+
"""
70+
unpatch_coverage()
71+
72+
6573
def get_coverage_percentage(pytest_cov_status: bool) -> t.Optional[float]:
6674
"""
6775
Retrieve coverage percentage collected during a pytest-cov test session, if available.

tests/testing/internal/pytest/test_plugin.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import os
88
import typing as t
9+
from unittest.mock import MagicMock
910
from unittest.mock import Mock
1011
from unittest.mock import patch
1112

@@ -638,7 +639,7 @@ def test_pytest_sessionfinish_normal_completion(self) -> None:
638639
plugin = TestOptPlugin(session_manager=mock_manager)
639640

640641
# Set up session and manager
641-
plugin.session = Mock()
642+
plugin.session = MagicMock()
642643
plugin.manager = Mock()
643644
plugin.is_xdist_worker = False
644645

@@ -661,7 +662,7 @@ def test_pytest_sessionfinish_test_failure(self) -> None:
661662
plugin = TestOptPlugin(session_manager=mock_manager)
662663

663664
# Set up session and manager
664-
plugin.session = Mock()
665+
plugin.session = MagicMock()
665666
plugin.manager = Mock()
666667
plugin.is_xdist_worker = False
667668

@@ -681,7 +682,7 @@ def test_pytest_sessionfinish_xdist_worker(self) -> None:
681682
plugin = TestOptPlugin(session_manager=mock_manager)
682683

683684
# Set up session and manager
684-
plugin.session = Mock()
685+
plugin.session = MagicMock()
685686
plugin.manager = Mock()
686687
plugin.is_xdist_worker = True # Worker mode
687688

0 commit comments

Comments
 (0)