summaryrefslogtreecommitdiff
path: root/src/_pytest/assertion
diff options
context:
space:
mode:
authorBruno Oliveira <bruno@esss.com.br>2020-02-11 10:32:18 -0300
committerBruno Oliveira <nicoddemus@gmail.com>2020-02-11 19:22:28 -0300
commit78baa7b575c11e359381dfe5a756bb51f4f87d8e (patch)
treeaf1222b38276a398f053abbb594af9d003c7928c /src/_pytest/assertion
parent7484e346f9dd3cd42800e18859f2dcfaddb1c685 (diff)
parent0ee007ca33253758348e51130a7a2f9d92e31f1f (diff)
downloadpytest-78baa7b575c11e359381dfe5a756bb51f4f87d8e.tar.gz
Merge remote-tracking branch 'upstream/master' into mm
Conflicts: src/_pytest/main.py src/_pytest/mark/structures.py src/_pytest/python.py testing/test_main.py testing/test_parseopt.py
Diffstat (limited to 'src/_pytest/assertion')
-rw-r--r--src/_pytest/assertion/__init__.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/_pytest/assertion/__init__.py b/src/_pytest/assertion/__init__.py
index a060723a7..cdb034703 100644
--- a/src/_pytest/assertion/__init__.py
+++ b/src/_pytest/assertion/__init__.py
@@ -8,6 +8,7 @@ from _pytest.assertion import rewrite
from _pytest.assertion import truncate
from _pytest.assertion import util
from _pytest.compat import TYPE_CHECKING
+from _pytest.config import hookimpl
if TYPE_CHECKING:
from _pytest.main import Session
@@ -105,7 +106,8 @@ def pytest_collection(session: "Session") -> None:
assertstate.hook.set_session(session)
-def pytest_runtest_setup(item):
+@hookimpl(tryfirst=True, hookwrapper=True)
+def pytest_runtest_protocol(item):
"""Setup the pytest_assertrepr_compare and pytest_assertion_pass hooks
The newinterpret and rewrite modules will use util._reprcompare if
@@ -143,6 +145,7 @@ def pytest_runtest_setup(item):
return res
return None
+ saved_assert_hooks = util._reprcompare, util._assertion_pass
util._reprcompare = callbinrepr
if item.ihook.pytest_assertion_pass.get_hookimpls():
@@ -154,10 +157,9 @@ def pytest_runtest_setup(item):
util._assertion_pass = call_assertion_pass_hook
+ yield
-def pytest_runtest_teardown(item):
- util._reprcompare = None
- util._assertion_pass = None
+ util._reprcompare, util._assertion_pass = saved_assert_hooks
def pytest_sessionfinish(session):