Closed a96tudor closed 6 years ago
This kind of makes sense: pytest 3.9 adds warnings for the features that will be gone in 4.0, but these warnings are not there in 3.8. However, I grepped the source for "Session" and didn't find anything. A more detailed investigation is needed to see what's causing the warnings.
When I replace this warning with an exception and adjust some try-except clauses higher up the stack to let the exception propagate, I get this stack trace:
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/_pytest/main.py", line 179, in wrap_session
INTERNALERROR> config.hook.pytest_sessionstart(session=session)
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/pluggy/hooks.py", line 284, in __call__
INTERNALERROR> return self._hookexec(self, self.get_hookimpls(), kwargs)
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/pluggy/manager.py", line 67, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/pluggy/manager.py", line 61, in <lambda>
INTERNALERROR> firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/pluggy/callers.py", line 208, in _multicall
INTERNALERROR> return outcome.get_result()
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/pluggy/callers.py", line 80, in get_result
INTERNALERROR> raise ex[1].with_traceback(ex[2])
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/pluggy/callers.py", line 187, in _multicall
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/_pytest/fixtures.py", line 60, in pytest_sessionstart
INTERNALERROR> session._fixturemanager = FixtureManager(session)
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/_pytest/fixtures.py", line 1158, in __init__
INTERNALERROR> session.config.pluginmanager.register(self, "funcmanage")
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/_pytest/config/__init__.py", line 296, in register
INTERNALERROR> ret = super(PytestPluginManager, self).register(plugin, name)
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/pluggy/manager.py", line 101, in register
INTERNALERROR> hook._maybe_apply_history(hookimpl)
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/pluggy/hooks.py", line 331, in _maybe_apply_history
INTERNALERROR> res = self._hookexec(self, [method], kwargs)
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/pluggy/manager.py", line 67, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/pluggy/manager.py", line 61, in <lambda>
INTERNALERROR> firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/pluggy/callers.py", line 208, in _multicall
INTERNALERROR> return outcome.get_result()
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/pluggy/callers.py", line 80, in get_result
INTERNALERROR> raise ex[1].with_traceback(ex[2])
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/pluggy/callers.py", line 187, in _multicall
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/_pytest/fixtures.py", line 1189, in pytest_plugin_registered
INTERNALERROR> self.parsefactories(plugin, nodeid)
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/_pytest/fixtures.py", line 1298, in parsefactories
INTERNALERROR> obj = safe_getattr(holderobj, name, None)
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/_pytest/compat.py", line 321, in safe_getattr
INTERNALERROR> return getattr(object, name, default)
INTERNALERROR> File "/Users/vkuznetsov/Documents/prog/personal/pytest-console-scripts/.tox/py36/lib/python3.6/site-packages/_pytest/nodes.py", line 67, in __get__
INTERNALERROR> raise 'boom'
INTERNALERROR> TypeError: exceptions must derive from BaseException
Seems like pytest is just raising warnings at itself, not sure what I could do to help it resolve this internal conflict :/
Yeah that sucks, we missed those warnings and they ended up in the release. They should be fixed soon by https://github.com/pytest-dev/pytest/pull/4164. 👍
oh, I see. Thanks for looking into this, @kvas-it, @nicoddemus!
Thank you for the insight, @nicoddemus! No worries then, I guess we don't need to do anything here.
Environment
python 3.6
pytest 3.9.1
virtualenv 16.0.0
Observed behaviour
When running the tests, they all pass, but there are a series of warnings that are caused by Pytest depreciations:
Expected behaviour
No warnings are shown
Additional comments
From some further investigation, it looks like the warnings are caused by
pytest
's latest release (3.9.1). If the tests are run usingpytest 3.8.2
this warnings are no longer raised.