fixtures: improve fixture scope mismatch message
- Separate the requesting from the requested. - Avoid the term "factory", I think most people don't distinguish between "fixture" and "fixture function" (i.e. "factory") and would find the term "factory" unfamiliar.
This commit is contained in:
parent
a9d1f55a0f
commit
71671f60b5
|
@ -771,8 +771,9 @@ class SubRequest(FixtureRequest):
|
|||
requested_fixture = self._format_fixturedef_line(requested_fixturedef)
|
||||
fail(
|
||||
f"ScopeMismatch: You tried to access the {requested_scope.value} scoped "
|
||||
f"fixture {argname} with a {self._scope.value} scoped request object, "
|
||||
f"involved factories:\n{fixture_stack}\n{requested_fixture}",
|
||||
f"fixture {argname} with a {self._scope.value} scoped request object. "
|
||||
f"Requesting fixture stack:\n{fixture_stack}\n"
|
||||
f"Requested fixture:\n{requested_fixture}",
|
||||
pytrace=False,
|
||||
)
|
||||
|
||||
|
|
|
@ -1247,8 +1247,9 @@ class TestFixtureUsages:
|
|||
result = pytester.runpytest()
|
||||
result.stdout.fnmatch_lines(
|
||||
[
|
||||
"*ScopeMismatch*involved factories*",
|
||||
"*ScopeMismatch*Requesting fixture stack*",
|
||||
"test_receives_funcargs_scope_mismatch.py:6: def arg2(arg1)",
|
||||
"Requested fixture:",
|
||||
"test_receives_funcargs_scope_mismatch.py:2: def arg1()",
|
||||
"*1 error*",
|
||||
]
|
||||
|
@ -1274,7 +1275,13 @@ class TestFixtureUsages:
|
|||
)
|
||||
result = pytester.runpytest()
|
||||
result.stdout.fnmatch_lines(
|
||||
["*ScopeMismatch*involved factories*", "* def arg2*", "*1 error*"]
|
||||
[
|
||||
"*ScopeMismatch*Requesting fixture stack*",
|
||||
"* def arg2(arg1)",
|
||||
"Requested fixture:",
|
||||
"* def arg1()",
|
||||
"*1 error*",
|
||||
],
|
||||
)
|
||||
|
||||
def test_invalid_scope(self, pytester: Pytester) -> None:
|
||||
|
@ -2488,8 +2495,10 @@ class TestFixtureMarker:
|
|||
assert result.ret == ExitCode.TESTS_FAILED
|
||||
result.stdout.fnmatch_lines(
|
||||
[
|
||||
"*ScopeMismatch*involved factories*",
|
||||
"*ScopeMismatch*Requesting fixture stack*",
|
||||
"test_it.py:6: def fixmod(fixfunc)",
|
||||
"Requested fixture:",
|
||||
"test_it.py:3: def fixfunc()",
|
||||
]
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in New Issue