Skip to content

Commit

Permalink
Merge pull request pytest-dev#4164 from RonnyPfannschmidt/nowarn-sess…
Browse files Browse the repository at this point in the history
…ion-attributes

don`t parse compat properties as fixtures
  • Loading branch information
nicoddemus committed Oct 31, 2018
2 parents 7571f07 + b5d62cd commit 0fea71a
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 0 deletions.
1 change: 1 addition & 0 deletions changelog/2701.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix false ``RemovedInPytest4Warning: usage of Session... is deprecated, please use pytest`` warnings.
8 changes: 8 additions & 0 deletions src/_pytest/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -1193,6 +1193,7 @@ def pytest_plugin_registered(self, plugin):
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):
Expand Down Expand Up @@ -1297,11 +1298,18 @@ def parsefactories(self, node_or_obj, nodeid=NOTSET, unittest=False):
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)
Expand Down

0 comments on commit 0fea71a

Please sign in to comment.