From aeef6d4b530a63966f3d7aa13c466d0e3d10dba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D0=BC=D1=91=D0=BD=20=D0=9C=D0=B0=D1=80=D1=8C?= =?UTF-8?q?=D1=8F=D1=81=D0=B8=D0=BD?= Date: Mon, 24 Sep 2018 01:18:41 +0300 Subject: [PATCH 1/3] Don't use deprecated config.warn `config.warn` and `node.warn` were deprecated in pytest 3.8: https://docs.pytest.org/en/latest/deprecations.html#config-warn-and-node-warn --- src/pytest_cov/plugin.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pytest_cov/plugin.py b/src/pytest_cov/plugin.py index 76004271..5ff5c888 100644 --- a/src/pytest_cov/plugin.py +++ b/src/pytest_cov/plugin.py @@ -1,5 +1,6 @@ """Coverage plugin for pytest.""" import os +import warnings import pytest import argparse @@ -234,7 +235,7 @@ def pytest_runtestloop(self, session): message = 'Failed to generate report: %s\n' % exc session.config.pluginmanager.getplugin("terminalreporter").write( 'WARNING: %s\n' % message, red=True, bold=True) - session.config.warn(code='COV-2', message=message) + warnings.warn(code='COV-2', message=message) self.cov_total = 0 assert self.cov_total is not None, 'Test coverage should never be `None`' if self._failed_cov_total(): @@ -245,7 +246,7 @@ def pytest_terminal_summary(self, terminalreporter): if self._disabled: message = 'Coverage disabled via --no-cov switch!' terminalreporter.write('WARNING: %s\n' % message, red=True, bold=True) - terminalreporter.config.warn(code='COV-1', message=message) + warnings.warn(code='COV-1', message=message) return if self.cov_controller is None: return From a14595fe36dd469b7c5ddba18208075b5cc07007 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Sun, 23 Sep 2018 21:18:03 -0300 Subject: [PATCH 2/3] Fix call to warnings.warn --- src/pytest_cov/plugin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pytest_cov/plugin.py b/src/pytest_cov/plugin.py index 5ff5c888..e85525c0 100644 --- a/src/pytest_cov/plugin.py +++ b/src/pytest_cov/plugin.py @@ -235,7 +235,7 @@ def pytest_runtestloop(self, session): message = 'Failed to generate report: %s\n' % exc session.config.pluginmanager.getplugin("terminalreporter").write( 'WARNING: %s\n' % message, red=True, bold=True) - warnings.warn(code='COV-2', message=message) + warnings.warn(pytest.PytestWarning(message)) self.cov_total = 0 assert self.cov_total is not None, 'Test coverage should never be `None`' if self._failed_cov_total(): @@ -246,7 +246,7 @@ def pytest_terminal_summary(self, terminalreporter): if self._disabled: message = 'Coverage disabled via --no-cov switch!' terminalreporter.write('WARNING: %s\n' % message, red=True, bold=True) - warnings.warn(code='COV-1', message=message) + warnings.warn(pytest.PytestWarning(message)) return if self.cov_controller is None: return From 325ab2e468696e593eeec10e8c898c76492c3195 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Sun, 23 Sep 2018 21:23:32 -0300 Subject: [PATCH 3/3] Use warnings.warn only for pytest >= 3.8 --- src/pytest_cov/plugin.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/pytest_cov/plugin.py b/src/pytest_cov/plugin.py index e85525c0..7a6193d3 100644 --- a/src/pytest_cov/plugin.py +++ b/src/pytest_cov/plugin.py @@ -235,7 +235,10 @@ def pytest_runtestloop(self, session): message = 'Failed to generate report: %s\n' % exc session.config.pluginmanager.getplugin("terminalreporter").write( 'WARNING: %s\n' % message, red=True, bold=True) - warnings.warn(pytest.PytestWarning(message)) + if pytest.__version__ >= '3.8': + warnings.warn(pytest.PytestWarning(message)) + else: + session.config.warn(code='COV-2', message=message) self.cov_total = 0 assert self.cov_total is not None, 'Test coverage should never be `None`' if self._failed_cov_total(): @@ -246,7 +249,10 @@ def pytest_terminal_summary(self, terminalreporter): if self._disabled: message = 'Coverage disabled via --no-cov switch!' terminalreporter.write('WARNING: %s\n' % message, red=True, bold=True) - warnings.warn(pytest.PytestWarning(message)) + if pytest.__version__ >= '3.8': + warnings.warn(pytest.PytestWarning(message)) + else: + terminalreporter.config.warn(code='COV-1', message=message) return if self.cov_controller is None: return