move test
This commit is contained in:
parent
df1d1105b0
commit
c3178a176d
|
@ -1177,75 +1177,3 @@ def test_summary_list_after_errors(testdir):
|
||||||
"FAILED test_summary_list_after_errors.py::test_fail - assert 0",
|
"FAILED test_summary_list_after_errors.py::test_fail - assert 0",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_line_with_reprcrash(monkeypatch):
|
|
||||||
import _pytest.skipping
|
|
||||||
from _pytest.skipping import _get_line_with_reprcrash_message
|
|
||||||
from wcwidth import wcswidth
|
|
||||||
|
|
||||||
mocked_verbose_word = "FAILED"
|
|
||||||
|
|
||||||
def mock_get_report_str(*args):
|
|
||||||
return mocked_verbose_word
|
|
||||||
|
|
||||||
monkeypatch.setattr(_pytest.skipping, "_get_report_str", mock_get_report_str)
|
|
||||||
|
|
||||||
mocked_pos = "some::nodeid"
|
|
||||||
|
|
||||||
def mock_get_pos(*args):
|
|
||||||
return mocked_pos
|
|
||||||
|
|
||||||
monkeypatch.setattr(_pytest.skipping, "_get_pos", mock_get_pos)
|
|
||||||
|
|
||||||
class config:
|
|
||||||
pass
|
|
||||||
|
|
||||||
class rep:
|
|
||||||
class longrepr:
|
|
||||||
class reprcrash:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def check(msg, width, expected):
|
|
||||||
__tracebackhide__ = True
|
|
||||||
if msg:
|
|
||||||
rep.longrepr.reprcrash.message = msg
|
|
||||||
actual = _get_line_with_reprcrash_message(config, rep, width)
|
|
||||||
|
|
||||||
assert actual == expected
|
|
||||||
if actual != "%s %s" % (mocked_verbose_word, mocked_pos):
|
|
||||||
assert len(actual) <= width
|
|
||||||
assert wcswidth(actual) <= width
|
|
||||||
|
|
||||||
# AttributeError with message
|
|
||||||
check(None, 80, "FAILED some::nodeid")
|
|
||||||
|
|
||||||
check("msg", 80, "FAILED some::nodeid - msg")
|
|
||||||
check("msg", 3, "FAILED some::nodeid")
|
|
||||||
|
|
||||||
check("msg", 24, "FAILED some::nodeid")
|
|
||||||
check("msg", 25, "FAILED some::nodeid - msg")
|
|
||||||
|
|
||||||
check("some longer msg", 24, "FAILED some::nodeid")
|
|
||||||
check("some longer msg", 25, "FAILED some::nodeid - ...")
|
|
||||||
check("some longer msg", 26, "FAILED some::nodeid - s...")
|
|
||||||
|
|
||||||
check("some\nmessage", 25, "FAILED some::nodeid - ...")
|
|
||||||
check("some\nmessage", 26, "FAILED some::nodeid - some")
|
|
||||||
check("some\nmessage", 80, "FAILED some::nodeid - some")
|
|
||||||
|
|
||||||
# Test unicode safety.
|
|
||||||
check(u"😄😄😄😄😄\n2nd line", 25, u"FAILED some::nodeid - ...")
|
|
||||||
check(u"😄😄😄😄😄\n2nd line", 26, u"FAILED some::nodeid - ...")
|
|
||||||
check(u"😄😄😄😄😄\n2nd line", 27, u"FAILED some::nodeid - 😄...")
|
|
||||||
check(u"😄😄😄😄😄\n2nd line", 28, u"FAILED some::nodeid - 😄...")
|
|
||||||
check(u"😄😄😄😄😄\n2nd line", 29, u"FAILED some::nodeid - 😄😄...")
|
|
||||||
|
|
||||||
# NOTE: constructed, not sure if this is supported.
|
|
||||||
# It would fail if not using u"" in Python 2 for mocked_pos.
|
|
||||||
mocked_pos = u"nodeid::😄::withunicode"
|
|
||||||
check(u"😄😄😄😄😄\n2nd line", 29, u"FAILED nodeid::😄::withunicode")
|
|
||||||
check(u"😄😄😄😄😄\n2nd line", 40, u"FAILED nodeid::😄::withunicode - 😄😄...")
|
|
||||||
check(u"😄😄😄😄😄\n2nd line", 41, u"FAILED nodeid::😄::withunicode - 😄😄...")
|
|
||||||
check(u"😄😄😄😄😄\n2nd line", 42, u"FAILED nodeid::😄::withunicode - 😄😄😄...")
|
|
||||||
check(u"😄😄😄😄😄\n2nd line", 80, u"FAILED nodeid::😄::withunicode - 😄😄😄😄😄")
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ import pytest
|
||||||
from _pytest.main import EXIT_NOTESTSCOLLECTED
|
from _pytest.main import EXIT_NOTESTSCOLLECTED
|
||||||
from _pytest.reports import BaseReport
|
from _pytest.reports import BaseReport
|
||||||
from _pytest.terminal import _folded_skips
|
from _pytest.terminal import _folded_skips
|
||||||
|
from _pytest.terminal import _get_line_with_reprcrash_message
|
||||||
from _pytest.terminal import _plugin_nameversions
|
from _pytest.terminal import _plugin_nameversions
|
||||||
from _pytest.terminal import build_summary_stats_line
|
from _pytest.terminal import build_summary_stats_line
|
||||||
from _pytest.terminal import getreportopt
|
from _pytest.terminal import getreportopt
|
||||||
|
@ -1582,3 +1583,72 @@ def test_skip_reasons_folding():
|
||||||
assert fspath == path
|
assert fspath == path
|
||||||
assert lineno == lineno
|
assert lineno == lineno
|
||||||
assert reason == message
|
assert reason == message
|
||||||
|
|
||||||
|
|
||||||
|
def test_line_with_reprcrash(monkeypatch):
|
||||||
|
import _pytest.terminal
|
||||||
|
from wcwidth import wcswidth
|
||||||
|
|
||||||
|
mocked_verbose_word = "FAILED"
|
||||||
|
|
||||||
|
mocked_pos = "some::nodeid"
|
||||||
|
|
||||||
|
def mock_get_pos(*args):
|
||||||
|
return mocked_pos
|
||||||
|
|
||||||
|
monkeypatch.setattr(_pytest.terminal, "_get_pos", mock_get_pos)
|
||||||
|
|
||||||
|
class config:
|
||||||
|
pass
|
||||||
|
|
||||||
|
class rep:
|
||||||
|
def _get_verbose_word(self, *args):
|
||||||
|
return mocked_verbose_word
|
||||||
|
|
||||||
|
class longrepr:
|
||||||
|
class reprcrash:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def check(msg, width, expected):
|
||||||
|
__tracebackhide__ = True
|
||||||
|
if msg:
|
||||||
|
rep.longrepr.reprcrash.message = msg
|
||||||
|
actual = _get_line_with_reprcrash_message(config, rep, width)
|
||||||
|
|
||||||
|
assert actual == expected
|
||||||
|
if actual != "%s %s" % (mocked_verbose_word, mocked_pos):
|
||||||
|
assert len(actual) <= width
|
||||||
|
assert wcswidth(actual) <= width
|
||||||
|
|
||||||
|
# AttributeError with message
|
||||||
|
check(None, 80, "FAILED some::nodeid")
|
||||||
|
|
||||||
|
check("msg", 80, "FAILED some::nodeid - msg")
|
||||||
|
check("msg", 3, "FAILED some::nodeid")
|
||||||
|
|
||||||
|
check("msg", 24, "FAILED some::nodeid")
|
||||||
|
check("msg", 25, "FAILED some::nodeid - msg")
|
||||||
|
|
||||||
|
check("some longer msg", 24, "FAILED some::nodeid")
|
||||||
|
check("some longer msg", 25, "FAILED some::nodeid - ...")
|
||||||
|
check("some longer msg", 26, "FAILED some::nodeid - s...")
|
||||||
|
|
||||||
|
check("some\nmessage", 25, "FAILED some::nodeid - ...")
|
||||||
|
check("some\nmessage", 26, "FAILED some::nodeid - some")
|
||||||
|
check("some\nmessage", 80, "FAILED some::nodeid - some")
|
||||||
|
|
||||||
|
# Test unicode safety.
|
||||||
|
check(u"😄😄😄😄😄\n2nd line", 25, u"FAILED some::nodeid - ...")
|
||||||
|
check(u"😄😄😄😄😄\n2nd line", 26, u"FAILED some::nodeid - ...")
|
||||||
|
check(u"😄😄😄😄😄\n2nd line", 27, u"FAILED some::nodeid - 😄...")
|
||||||
|
check(u"😄😄😄😄😄\n2nd line", 28, u"FAILED some::nodeid - 😄...")
|
||||||
|
check(u"😄😄😄😄😄\n2nd line", 29, u"FAILED some::nodeid - 😄😄...")
|
||||||
|
|
||||||
|
# NOTE: constructed, not sure if this is supported.
|
||||||
|
# It would fail if not using u"" in Python 2 for mocked_pos.
|
||||||
|
mocked_pos = u"nodeid::😄::withunicode"
|
||||||
|
check(u"😄😄😄😄😄\n2nd line", 29, u"FAILED nodeid::😄::withunicode")
|
||||||
|
check(u"😄😄😄😄😄\n2nd line", 40, u"FAILED nodeid::😄::withunicode - 😄😄...")
|
||||||
|
check(u"😄😄😄😄😄\n2nd line", 41, u"FAILED nodeid::😄::withunicode - 😄😄...")
|
||||||
|
check(u"😄😄😄😄😄\n2nd line", 42, u"FAILED nodeid::😄::withunicode - 😄😄😄...")
|
||||||
|
check(u"😄😄😄😄😄\n2nd line", 80, u"FAILED nodeid::😄::withunicode - 😄😄😄😄😄")
|
||||||
|
|
Loading…
Reference in New Issue