Fix usage of pytester with doctests (#6802)
Use `request.node.name` instead of `request.function.__name__`: `request.function` is `None` with `DoctestItem`s.
This commit is contained in:
@@ -543,7 +543,11 @@ class Testdir:
|
||||
self._mod_collections = (
|
||||
WeakKeyDictionary()
|
||||
) # type: WeakKeyDictionary[Module, List[Union[Item, Collector]]]
|
||||
name = request.function.__name__
|
||||
if request.function:
|
||||
name = request.function.__name__ # type: str
|
||||
else:
|
||||
name = request.node.name
|
||||
self._name = name
|
||||
self.tmpdir = tmpdir_factory.mktemp(name, numbered=True)
|
||||
self.test_tmproot = tmpdir_factory.mktemp("tmp-" + name, numbered=True)
|
||||
self.plugins = [] # type: List[Union[str, _PluggyPlugin]]
|
||||
@@ -617,7 +621,7 @@ class Testdir:
|
||||
|
||||
if lines:
|
||||
source = "\n".join(to_text(x) for x in lines)
|
||||
basename = self.request.function.__name__
|
||||
basename = self._name
|
||||
items.insert(0, (basename, source))
|
||||
|
||||
ret = None
|
||||
@@ -720,7 +724,7 @@ class Testdir:
|
||||
example_dir = example_dir.join(*extra_element.args)
|
||||
|
||||
if name is None:
|
||||
func_name = self.request.function.__name__
|
||||
func_name = self._name
|
||||
maybe_dir = example_dir / func_name
|
||||
maybe_file = example_dir / (func_name + ".py")
|
||||
|
||||
@@ -1059,7 +1063,7 @@ class Testdir:
|
||||
path = self.tmpdir.join(str(source))
|
||||
assert not withinit, "not supported for paths"
|
||||
else:
|
||||
kw = {self.request.function.__name__: Source(source).strip()}
|
||||
kw = {self._name: Source(source).strip()}
|
||||
path = self.makepyfile(**kw)
|
||||
if withinit:
|
||||
self.makepyfile(__init__="#")
|
||||
|
||||
Reference in New Issue
Block a user