Improve coverage for _report_unserialization_failure

This commit is contained in:
Bruno Oliveira
2019-03-25 19:26:40 -03:00
parent ceef0af1ae
commit 2d77018d1b
2 changed files with 25 additions and 2 deletions
+23
View File
@@ -1,3 +1,4 @@
import pytest
from _pytest.pathlib import Path
from _pytest.reports import CollectReport
from _pytest.reports import TestReport
@@ -219,6 +220,28 @@ class TestReportSerialization(object):
assert data["path1"] == str(testdir.tmpdir)
assert data["path2"] == str(testdir.tmpdir)
def test_unserialization_failure(self, testdir):
"""Check handling of failure during unserialization of report types."""
testdir.makepyfile(
"""
def test_a():
assert False
"""
)
reprec = testdir.inline_run()
reports = reprec.getreports("pytest_runtest_logreport")
assert len(reports) == 3
test_a_call = reports[1]
data = test_a_call._to_json()
entry = data["longrepr"]["reprtraceback"]["reprentries"][0]
assert entry["type"] == "ReprEntry"
entry["type"] = "Unknown"
with pytest.raises(
RuntimeError, match="INTERNALERROR: Unknown entry type returned: Unknown"
):
TestReport._from_json(data)
class TestHooks:
"""Test that the hooks are working correctly for plugins"""