Add a --noconftest option.

This commit is contained in:
Florian Bruhin 2015-06-23 07:53:32 +02:00
parent e947732bde
commit 8664fc4102
3 changed files with 13 additions and 0 deletions

View File

@ -120,6 +120,7 @@ class PytestPluginManager(PluginManager):
self._path2confmods = {}
self._conftestpath2mod = {}
self._confcutdir = None
self._noconftest = False
self.add_hookspecs(_pytest.hookspec)
self.register(self)
@ -212,6 +213,7 @@ class PytestPluginManager(PluginManager):
current = py.path.local()
self._confcutdir = current.join(namespace.confcutdir, abs=True) \
if namespace.confcutdir else None
self._noconftest = namespace.noconftest
testpaths = namespace.file_or_dir
foundanchor = False
for path in testpaths:
@ -236,6 +238,8 @@ class PytestPluginManager(PluginManager):
self._getconftestmodules(x)
def _getconftestmodules(self, path):
if self._noconftest:
self._path2confmods[path] = []
try:
return self._path2confmods[path]
except KeyError:

View File

@ -54,6 +54,9 @@ def pytest_addoption(parser):
group.addoption('--confcutdir', dest="confcutdir", default=None,
metavar="dir",
help="only load conftest.py's relative to specified dir.")
group.addoption('--noconftest', action="store_true",
dest="noconftest", default=False,
help="Don't load any conftest.py files.")
group = parser.getgroup("debugconfig",
"test session debugging and configuration")

View File

@ -24,6 +24,7 @@ def conftest_setinitial(conftest, args, confcutdir=None):
def __init__(self):
self.file_or_dir = args
self.confcutdir = str(confcutdir)
self.noconftest = False
conftest._set_initial_conftests(Namespace())
class TestConftestValueAccessGlobal:
@ -161,6 +162,11 @@ def test_conftest_confcutdir(testdir):
result = testdir.runpytest("-h", "--confcutdir=%s" % x, x)
result.stdout.fnmatch_lines(["*--xyz*"])
def test_no_conftest(testdir):
testdir.makeconftest("assert 0")
result = testdir.runpytest("--noconftest")
assert result.ret == 0
def test_conftest_existing_resultlog(testdir):
x = testdir.mkdir("tests")
x.join("conftest.py").write(py.code.Source("""