New issue 486: `--help` should not fail with an exception on conftest.py errors 
/ handle conftest imports more gracefully/meaningful
https://bitbucket.org/hpk42/pytest/issue/486/help-should-not-fail-with-an-exception-on

Daniel Hahler:

I have just installed `pytest` globally and wanted to look at the help options, 
but it failed (probably because of me being in the project directory, but 
without the virtualenv activated):


There is ../../../conftest.py, which contains an import, which does not work 
outside of the virtualenv.

I think py.test should be more helpful, and display its help 
options/information nonetheless. It would be nice to get a warning that the 
conftest.py failed to get imported/parsed on top.

This warning would be useful in the generic case also: it's hard to tell from 
the Traceback that there is some conftest.py issue involved.

        Traceback (most recent call last):
                File "/usr/local/bin/py.test", line 9, in <module>
                        load_entry_point('pytest==2.5.2', 'console_scripts', 
'py.test')()
                File 
"/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 19, in main
                        config = _prepareconfig(args, plugins)
                File 
"/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 63, in 
_prepareconfig
                        pluginmanager=pluginmanager, args=args)
                File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", 
line 377, in __call__
                        return self._docall(methods, kwargs)
                File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", 
line 388, in _docall
                        res = mc.execute()
                File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", 
line 289, in execute
                        res = method(**kwargs)
                File 
"/usr/local/lib/python2.7/dist-packages/_pytest/helpconfig.py", line 27, in 
pytest_cmdline_parse
                        config = __multicall__.execute()
                File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", 
line 289, in execute
                        res = method(**kwargs)
                File 
"/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 618, in 
pytest_cmdline_parse
                        self.parse(args)
                File 
"/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 711, in parse
                        self._preparse(args)
                File 
"/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 691, in 
_preparse
                        args=args, parser=self._parser)
                File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", 
line 377, in __call__
                        return self._docall(methods, kwargs)
                File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", 
line 388, in _docall
                        res = mc.execute()
                File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", 
line 289, in execute
                        res = method(**kwargs)
                File 
"/usr/local/lib/python2.7/dist-packages/_pytest/capture.py", line 83, in 
pytest_load_initial_conftests
                        return __multicall__.execute()
                File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", 
line 289, in execute
                        res = method(**kwargs)
                File 
"/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 674, in 
pytest_load_initial_conftests
                        self._conftest.setinitial(args)
                File 
"/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 490, in 
setinitial
                        self._try_load_conftest(current)
                File 
"/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 493, in 
_try_load_conftest
                        self._path2confmods[None] = 
self.getconftestmodules(anchor)
                File 
"/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 512, in 
getconftestmodules
                        clist.append(self.importconftest(conftestpath))
                File 
"/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 538, in 
importconftest
                        self._conftestpath2mod[conftestpath] = mod = 
conftestpath.pyimport()
                File 
"/usr/local/lib/python2.7/dist-packages/py/_path/local.py", line 620, in 
pyimport
                        __import__(modname)
                File "…/conftest.py", line 8, in <module>
                        from selenium import webdriver
        ImportError: No module named selenium




_______________________________________________
pytest-commit mailing list
pytest-commit@python.org
https://mail.python.org/mailman/listinfo/pytest-commit

Reply via email to