call path.read(), add tests, add news fragment

This commit is contained in:
je 2017-10-14 00:47:02 +08:00
parent b29a9711c4
commit eaf38c7239
4 changed files with 31 additions and 2 deletions

View File

@ -82,6 +82,7 @@ Jason R. Coombs
Javier Domingo Cansino
Javier Romero
Jeff Widman
John Eddie Ayson
John Towler
Jon Sonesen
Jonas Obrist

View File

@ -59,8 +59,7 @@ def pytest_collect_file(path, parent):
def _is_setup_py(config, path, parent):
if path.basename != "setup.py":
return False
with open(path.strpath, 'r') as f:
contents = f.read()
contents = path.read()
return 'setuptools' in contents or 'distutils' in contents

1
changelog/502.feature Normal file
View File

@ -0,0 +1 @@
Implement feature to skip valid setup.py files when ran with --doctest-modules

View File

@ -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):