Don't mark empty doctest files as skipped, fixes #1578
This commit is contained in:
parent
057007fb52
commit
74862b8f2f
|
@ -144,20 +144,18 @@ def get_optionflags(parent):
|
|||
return flag_acc
|
||||
|
||||
|
||||
class DoctestTextfile(DoctestItem, pytest.Module):
|
||||
class DoctestTextfile(pytest.Module):
|
||||
obj = None
|
||||
|
||||
def runtest(self):
|
||||
def collect(self):
|
||||
import doctest
|
||||
fixture_request = _setup_fixtures(self)
|
||||
|
||||
# inspired by doctest.testfile; ideally we would use it directly,
|
||||
# but it doesn't support passing a custom checker
|
||||
text = self.fspath.read()
|
||||
filename = str(self.fspath)
|
||||
name = self.fspath.basename
|
||||
globs = dict(getfixture=fixture_request.getfuncargvalue)
|
||||
if '__name__' not in globs:
|
||||
globs['__name__'] = '__main__'
|
||||
globs = {'__name__': '__main__'}
|
||||
|
||||
optionflags = get_optionflags(self)
|
||||
runner = doctest.DebugRunner(verbose=0, optionflags=optionflags,
|
||||
|
@ -165,8 +163,8 @@ class DoctestTextfile(DoctestItem, pytest.Module):
|
|||
|
||||
parser = doctest.DocTestParser()
|
||||
test = parser.get_doctest(text, globs, name, filename, 0)
|
||||
_check_all_skipped(test)
|
||||
runner.run(test)
|
||||
if test.examples:
|
||||
yield DoctestItem(test.name, self, runner, test)
|
||||
|
||||
|
||||
def _check_all_skipped(test):
|
||||
|
|
|
@ -14,13 +14,16 @@ class TestDoctests:
|
|||
>>> i-1
|
||||
4
|
||||
""")
|
||||
|
||||
for x in (testdir.tmpdir, checkfile):
|
||||
#print "checking that %s returns custom items" % (x,)
|
||||
items, reprec = testdir.inline_genitems(x)
|
||||
assert len(items) == 1
|
||||
assert isinstance(items[0], DoctestTextfile)
|
||||
assert isinstance(items[0], DoctestItem)
|
||||
assert isinstance(items[0].parent, DoctestTextfile)
|
||||
# Empty file has no items.
|
||||
items, reprec = testdir.inline_genitems(w)
|
||||
assert len(items) == 1
|
||||
assert len(items) == 0
|
||||
|
||||
def test_collect_module_empty(self, testdir):
|
||||
path = testdir.makepyfile(whatever="#")
|
||||
|
@ -595,6 +598,11 @@ class TestDoctestSkips:
|
|||
reprec = testdir.inline_run("--doctest-modules")
|
||||
reprec.assertoutcome(skipped=1)
|
||||
|
||||
def test_vacuous_all_skipped(self, testdir, makedoctest):
|
||||
makedoctest('')
|
||||
reprec = testdir.inline_run("--doctest-modules")
|
||||
reprec.assertoutcome(passed=0, skipped=0)
|
||||
|
||||
|
||||
class TestDoctestAutoUseFixtures:
|
||||
|
||||
|
|
Loading…
Reference in New Issue