From 1c464629919e539c005fe514e172b6fee5acca52 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Tue, 8 Dec 2015 22:40:05 -0200 Subject: [PATCH] Fix deprecated_call regression introduced in 2.8.4 Fix #1238 --- CHANGELOG | 4 ++++ _pytest/recwarn.py | 2 +- testing/test_recwarn.py | 9 +++++---- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 49d5a8704..d1ac12a52 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,6 +4,10 @@ - fix #1074: precompute junitxml chunks instead of storing the whole tree in objects Thanks Bruno Oliveira for the report and Ronny Pfannschmidt for the PR +- fix #1238: fix ``pytest.deprecated_call()`` receiving multiple arguments + (Regression introduced in 2.8.4). Thanks Alex Gaynor for the report and + Bruno Oliveira for the PR. + 2.8.4 ----- diff --git a/_pytest/recwarn.py b/_pytest/recwarn.py index c4f9dc322..797327bad 100644 --- a/_pytest/recwarn.py +++ b/_pytest/recwarn.py @@ -42,7 +42,7 @@ def deprecated_call(func, *args, **kwargs): categories.append(category) old_warn_explicit(message, category, *args, **kwargs) - def warn(message, category=None, **kwargs): + def warn(message, category=None, *args, **kwargs): if isinstance(message, Warning): categories.append(message.__class__) else: diff --git a/testing/test_recwarn.py b/testing/test_recwarn.py index c426ea82e..56357f87e 100644 --- a/testing/test_recwarn.py +++ b/testing/test_recwarn.py @@ -67,9 +67,10 @@ class TestWarningsRecorderChecker(object): class TestDeprecatedCall(object): """test pytest.deprecated_call()""" - def dep(self, i): + def dep(self, i, j=None): if i == 0: - py.std.warnings.warn("is deprecated", DeprecationWarning) + py.std.warnings.warn("is deprecated", DeprecationWarning, + stacklevel=1) return 42 def dep_explicit(self, i): @@ -79,11 +80,11 @@ class TestDeprecatedCall(object): def test_deprecated_call_raises(self): with pytest.raises(AssertionError) as excinfo: - pytest.deprecated_call(self.dep, 3) + pytest.deprecated_call(self.dep, 3, 5) assert str(excinfo).find("did not produce") != -1 def test_deprecated_call(self): - pytest.deprecated_call(self.dep, 0) + pytest.deprecated_call(self.dep, 0, 5) def test_deprecated_call_ret(self): ret = pytest.deprecated_call(self.dep, 0)