tests: harden test_reprcompare_notin, factor out callop (#6764)
* tests: assertion: factor out `callop`, typing * tests: harden test_reprcompare_notin
This commit is contained in:
parent
e3cf4fc258
commit
bce1d40fb0
|
@ -2,6 +2,8 @@
|
|||
support for presenting detailed information in failing assertions.
|
||||
"""
|
||||
import sys
|
||||
from typing import Any
|
||||
from typing import List
|
||||
from typing import Optional
|
||||
|
||||
from _pytest.assertion import rewrite
|
||||
|
@ -9,6 +11,7 @@ from _pytest.assertion import truncate
|
|||
from _pytest.assertion import util
|
||||
from _pytest.assertion.rewrite import assertstate_key
|
||||
from _pytest.compat import TYPE_CHECKING
|
||||
from _pytest.config import Config
|
||||
from _pytest.config import hookimpl
|
||||
|
||||
if TYPE_CHECKING:
|
||||
|
@ -170,5 +173,7 @@ def pytest_sessionfinish(session):
|
|||
assertstate.hook.set_session(None)
|
||||
|
||||
|
||||
def pytest_assertrepr_compare(config, op, left, right):
|
||||
def pytest_assertrepr_compare(
|
||||
config: Config, op: str, left: Any, right: Any
|
||||
) -> Optional[List[str]]:
|
||||
return util.assertrepr_compare(config=config, op=op, left=left, right=right)
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
import collections.abc as collections_abc
|
||||
import sys
|
||||
import textwrap
|
||||
from typing import Any
|
||||
from typing import List
|
||||
from typing import Optional
|
||||
|
||||
import attr
|
||||
|
||||
|
@ -310,9 +313,13 @@ class TestBinReprIntegration:
|
|||
result.stdout.fnmatch_lines(["*test_hello*FAIL*", "*test_check*PASS*"])
|
||||
|
||||
|
||||
def callequal(left, right, verbose=0):
|
||||
def callop(op: str, left: Any, right: Any, verbose: int = 0) -> Optional[List[str]]:
|
||||
config = mock_config(verbose=verbose)
|
||||
return plugin.pytest_assertrepr_compare(config, "==", left, right)
|
||||
return plugin.pytest_assertrepr_compare(config, op, left, right)
|
||||
|
||||
|
||||
def callequal(left: Any, right: Any, verbose: int = 0) -> Optional[List[str]]:
|
||||
return callop("==", left, right, verbose)
|
||||
|
||||
|
||||
class TestAssert_reprcompare:
|
||||
|
@ -1068,10 +1075,13 @@ def test_rewritten(testdir):
|
|||
assert testdir.runpytest().ret == 0
|
||||
|
||||
|
||||
def test_reprcompare_notin():
|
||||
config = mock_config()
|
||||
detail = plugin.pytest_assertrepr_compare(config, "not in", "foo", "aaafoobbb")[1:]
|
||||
assert detail == ["'foo' is contained here:", " aaafoobbb", "? +++"]
|
||||
def test_reprcompare_notin() -> None:
|
||||
assert callop("not in", "foo", "aaafoobbb") == [
|
||||
"'foo' not in 'aaafoobbb'",
|
||||
"'foo' is contained here:",
|
||||
" aaafoobbb",
|
||||
"? +++",
|
||||
]
|
||||
|
||||
|
||||
def test_reprcompare_whitespaces():
|
||||
|
|
Loading…
Reference in New Issue