From b29a9711c4cb236f9515fca8f36d7733a8301738 Mon Sep 17 00:00:00 2001 From: je <aysonje@gmail.com> Date: Fri, 13 Oct 2017 18:57:52 +0800 Subject: [PATCH] ignore valid setup.py during --doctest-modules --- _pytest/doctest.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/_pytest/doctest.py b/_pytest/doctest.py index cc505c8d0..c1b6a81a8 100644 --- a/_pytest/doctest.py +++ b/_pytest/doctest.py @@ -50,12 +50,20 @@ 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 + with open(path.strpath, 'r') as f: + contents = f.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