Closed
Description
When --doctest-modules
option is set but module has no doctests available, then pytest raises AssertionError
. This issue occurs only if autouse fixture is applied.
# test_doctest_module.py
def test_a():
"""
>>> assert 2 + 2 == 4
"""
assert 2 + 2 == 4
# test_no_doctest_module.py
def test_a():
assert 2 + 2 == 4
# conftest.py
import pytest
@pytest.fixture(autouse=True)
def __autoused_fixture(request):
pass
$ py.test test_doctest_module.py --doctest-modules
================================== test session starts ==================================
platform darwin -- Python 2.7.9, pytest-2.8.0, py-1.4.30, pluggy-0.3.1
rootdir: /Users/vital/.virtualenvs/tmp-83f75479bea7798, inifile:
collected 2 items
test_doctest_module.py ..
$ py.test test_no_doctest_module.py --doctest-modules
================================== test session starts ==================================
platform darwin -- Python 2.7.9, pytest-2.8.0, py-1.4.30, pluggy-0.3.1
rootdir: /Users/vital/.virtualenvs/tmp-83f75479bea7798, inifile:
collected 1 items
test_no_doctest_module.py .ETraceback (most recent call last):
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/bin/py.test", line 11, in <module>
sys.exit(main())
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/config.py", line 48, in main
return config.hook.pytest_cmdline_main(config=config)
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 724, in __call__
return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 338, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 333, in <lambda>
_MultiCall(methods, kwargs, hook.spec_opts).execute()
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 596, in execute
res = hook_impl.function(*args)
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/main.py", line 115, in pytest_cmdline_main
return wrap_session(config, _main)
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/main.py", line 110, in wrap_session
exitstatus=session.exitstatus)
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 724, in __call__
return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 338, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 333, in <lambda>
_MultiCall(methods, kwargs, hook.spec_opts).execute()
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 595, in execute
return _wrapped_call(hook_impl.function(*args), self.execute)
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 249, in _wrapped_call
wrap_controller.send(call_outcome)
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/terminal.py", line 361, in pytest_sessionfinish
outcome.get_result()
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 279, in get_result
_reraise(*ex) # noqa
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 264, in __init__
self.result = func()
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 596, in execute
res = hook_impl.function(*args)
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/runner.py", line 55, in pytest_sessionfinish
session._setupstate.teardown_all()
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/runner.py", line 375, in teardown_all
self._pop_and_teardown()
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/runner.py", line 348, in _pop_and_teardown
self._teardown_with_finalization(colitem)
File "/Users/vital/.virtualenvs/tmp-83f75479bea7798/lib/python2.7/site-packages/_pytest/runner.py", line 371, in _teardown_with_finalization
or isinstance(colitem, tuple)
_pytest.assertion.reinterpret.AssertionError: assert (<DoctestModule 'test_no_doctest_module.py'> is None or <DoctestModule 'test_no_doctest_module.py'> in [<Session 'tmp-83f75479bea7798'>] or isinstance(<DoctestModule 'test_no_doctest_module.py'>, tuple))
+ where [<Session 'tmp-83f75479bea7798'>] = [<Session 'tmp-83f75479bea7798'>]
+ where [<Session 'tmp-83f75479bea7798'>] = <_pytest.runner.SetupState object at 0x10e5be7d0>.stack
$ echo > conftest.py
$ py.test test_no_doctest_module.py --doctest-modules
================================== test session starts ==================================
platform darwin -- Python 2.7.9, pytest-2.8.0, py-1.4.30, pluggy-0.3.1
rootdir: /Users/vital/.virtualenvs/tmp-83f75479bea7798, inifile:
collected 1 items
test_no_doctest_module.py .
=============================== 1 passed in 0.03 seconds ================================```