ignore _CompatProperty when parsing fixtures

this avoid triggering the warnings when parsing the session node as session plugin
This commit is contained in:
Ronny Pfannschmidt 2018-10-05 11:51:36 +02:00
parent e6e40db9c7
commit da04ff52e4
2 changed files with 9 additions and 0 deletions

View File

@ -0,0 +1 @@
avoid "RemovedInPytest4Warning: usage of Session... is deprecated, please use pytest... instead" warnings.:w

View File

@ -1193,6 +1193,7 @@ class FixtureManager(object):
nodeid = p.dirpath().relto(self.config.rootdir)
if p.sep != nodes.SEP:
nodeid = nodeid.replace(p.sep, nodes.SEP)
self.parsefactories(plugin, nodeid)
def _getautousenames(self, nodeid):
@ -1297,11 +1298,18 @@ class FixtureManager(object):
nodeid = node_or_obj.nodeid
if holderobj in self._holderobjseen:
return
from _pytest.nodes import _CompatProperty
self._holderobjseen.add(holderobj)
autousenames = []
for name in dir(holderobj):
# The attribute can be an arbitrary descriptor, so the attribute
# access below can raise. safe_getatt() ignores such exceptions.
maybe_property = safe_getattr(type(holderobj), name, None)
if isinstance(maybe_property, _CompatProperty):
# deprecated
continue
obj = safe_getattr(holderobj, name, None)
marker = getfixturemarker(obj)
# fixture functions have a pytest_funcarg__ prefix (pre-2.3 style)