fix issue275 - allow usefixtures and autouse fixtures
for running doctest text files.
This commit is contained in:
parent
4031588811
commit
c0dd7c5975
|
@ -29,6 +29,9 @@ Unreleased
|
||||||
- don't hide an ImportError when importing a plugin produces one.
|
- don't hide an ImportError when importing a plugin produces one.
|
||||||
fixes issue375.
|
fixes issue375.
|
||||||
|
|
||||||
|
- fix issue275 - allow usefixtures and autouse fixtures
|
||||||
|
for running doctest text files.
|
||||||
|
|
||||||
- fix issue380 by making --resultlog only rely on longrepr instead
|
- fix issue380 by making --resultlog only rely on longrepr instead
|
||||||
of the "reprcrash" attribute which only exists sometimes.
|
of the "reprcrash" attribute which only exists sometimes.
|
||||||
|
|
||||||
|
|
|
@ -91,8 +91,13 @@ class DoctestTextfile(DoctestItem, pytest.File):
|
||||||
doctest = py.std.doctest
|
doctest = py.std.doctest
|
||||||
# satisfy `FixtureRequest` constructor...
|
# satisfy `FixtureRequest` constructor...
|
||||||
self.funcargs = {}
|
self.funcargs = {}
|
||||||
self._fixtureinfo = FuncFixtureInfo((), [], {})
|
fm = self.session._fixturemanager
|
||||||
|
def func():
|
||||||
|
pass
|
||||||
|
self._fixtureinfo = fm.getfixtureinfo(node=self, func=func,
|
||||||
|
cls=None, funcargs=False)
|
||||||
fixture_request = FixtureRequest(self)
|
fixture_request = FixtureRequest(self)
|
||||||
|
fixture_request._fillfixtures()
|
||||||
failed, tot = doctest.testfile(
|
failed, tot = doctest.testfile(
|
||||||
str(self.fspath), module_relative=False,
|
str(self.fspath), module_relative=False,
|
||||||
optionflags=doctest.ELLIPSIS,
|
optionflags=doctest.ELLIPSIS,
|
||||||
|
|
|
@ -56,3 +56,7 @@ It is possible to use fixtures using the ``getfixture`` helper::
|
||||||
# content of example.rst
|
# content of example.rst
|
||||||
>>> tmp = getfixture('tmpdir')
|
>>> tmp = getfixture('tmpdir')
|
||||||
>>> ...
|
>>> ...
|
||||||
|
>>>
|
||||||
|
|
||||||
|
Also, :ref:`usefixtures` and :ref:`autouse` fixtures are supported
|
||||||
|
when executing text doctest files.
|
||||||
|
|
|
@ -209,6 +209,26 @@ class TestDoctests:
|
||||||
reprec = testdir.inline_run(p, )
|
reprec = testdir.inline_run(p, )
|
||||||
reprec.assertoutcome(passed=1)
|
reprec.assertoutcome(passed=1)
|
||||||
|
|
||||||
|
@xfail_if_pdbpp_installed
|
||||||
|
def test_txtfile_with_usefixtures_in_ini(self, testdir):
|
||||||
|
testdir.makeini("""
|
||||||
|
[pytest]
|
||||||
|
usefixtures = myfixture
|
||||||
|
""")
|
||||||
|
testdir.makeconftest("""
|
||||||
|
import pytest
|
||||||
|
@pytest.fixture
|
||||||
|
def myfixture(monkeypatch):
|
||||||
|
monkeypatch.setenv("HELLO", "WORLD")
|
||||||
|
""")
|
||||||
|
|
||||||
|
p = testdir.maketxtfile("""
|
||||||
|
>>> import os
|
||||||
|
>>> os.environ["HELLO"]
|
||||||
|
'WORLD'
|
||||||
|
""")
|
||||||
|
reprec = testdir.inline_run(p, )
|
||||||
|
reprec.assertoutcome(passed=1)
|
||||||
|
|
||||||
@xfail_if_pdbpp_installed
|
@xfail_if_pdbpp_installed
|
||||||
def test_doctestmodule_with_fixtures(self, testdir):
|
def test_doctestmodule_with_fixtures(self, testdir):
|
||||||
|
|
Loading…
Reference in New Issue