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

View File

@ -1,3 +1,5 @@
from pprint import pprint
import py
import six
@ -258,8 +260,6 @@ class BaseReport(object):
def _report_unserialization_failure(type_name, report_class, reportdict):
from pprint import pprint
url = "https://github.com/pytest-dev/pytest/issues"
stream = py.io.TextIO()
pprint("-" * 100, stream=stream)

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"""