Merge pull request #2834 from aysonje/ignore-setup
ignore valid setup.py during --doctest-modules
This commit is contained in:
commit
71c76d96d3
1
AUTHORS
1
AUTHORS
|
@ -82,6 +82,7 @@ Jason R. Coombs
|
|||
Javier Domingo Cansino
|
||||
Javier Romero
|
||||
Jeff Widman
|
||||
John Eddie Ayson
|
||||
John Towler
|
||||
Jon Sonesen
|
||||
Jonas Obrist
|
||||
|
|
|
@ -50,12 +50,19 @@ def pytest_addoption(parser):
|
|||
def pytest_collect_file(path, parent):
|
||||
config = parent.config
|
||||
if path.ext == ".py":
|
||||
if config.option.doctestmodules:
|
||||
if config.option.doctestmodules and not _is_setup_py(config, path, parent):
|
||||
return DoctestModule(path, parent)
|
||||
elif _is_doctest(config, path, parent):
|
||||
return DoctestTextfile(path, parent)
|
||||
|
||||
|
||||
def _is_setup_py(config, path, parent):
|
||||
if path.basename != "setup.py":
|
||||
return False
|
||||
contents = path.read()
|
||||
return 'setuptools' in contents or 'distutils' in contents
|
||||
|
||||
|
||||
def _is_doctest(config, path, parent):
|
||||
if path.ext in ('.txt', '.rst') and parent.session.isinitpath(path):
|
||||
return True
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Implement feature to skip ``setup.py`` files when ran with ``--doctest-modules``.
|
|
@ -561,6 +561,34 @@ class TestDoctests(object):
|
|||
reportinfo = items[0].reportinfo()
|
||||
assert reportinfo[1] == 1
|
||||
|
||||
def test_valid_setup_py(self, testdir):
|
||||
'''
|
||||
Test to make sure that pytest ignores valid setup.py files when ran
|
||||
with --doctest-modules
|
||||
'''
|
||||
p = testdir.makepyfile(setup="""
|
||||
from setuptools import setup, find_packages
|
||||
setup(name='sample',
|
||||
version='0.0',
|
||||
description='description',
|
||||
packages=find_packages()
|
||||
)
|
||||
""")
|
||||
result = testdir.runpytest(p, '--doctest-modules')
|
||||
result.stdout.fnmatch_lines(['*collected 0 items*'])
|
||||
|
||||
def test_invalid_setup_py(self, testdir):
|
||||
'''
|
||||
Test to make sure that pytest reads setup.py files that are not used
|
||||
for python packages when ran with --doctest-modules
|
||||
'''
|
||||
p = testdir.makepyfile(setup="""
|
||||
def test_foo():
|
||||
return 'bar'
|
||||
""")
|
||||
result = testdir.runpytest(p, '--doctest-modules')
|
||||
result.stdout.fnmatch_lines(['*collected 1 item*'])
|
||||
|
||||
|
||||
class TestLiterals(object):
|
||||
|
||||
|
|
Loading…
Reference in New Issue