fix conftest detection if commandline arguments contain "::" syntax

--HG--
branch : fix_initial_parsing
This commit is contained in:
holger krekel 2014-07-28 11:48:37 +02:00
parent ba878c6d9d
commit 5ccd3f2fc5
3 changed files with 26 additions and 0 deletions

View File

@ -9,6 +9,9 @@ NEXT
- fix integration of pytest with unittest.mock.patch decorator when - fix integration of pytest with unittest.mock.patch decorator when
it uses the "new" argument. Thanks Nicolas Delaby for test and PR. it uses the "new" argument. Thanks Nicolas Delaby for test and PR.
- fix issue with detecting conftest files if the arguments contain
"::" node id specifications (copy pasted from "-v" output)
2.6 2.6
----------------------------------- -----------------------------------

View File

@ -485,6 +485,11 @@ class Conftest(object):
testpaths = namespace.file_or_dir testpaths = namespace.file_or_dir
foundanchor = False foundanchor = False
for path in testpaths: for path in testpaths:
path = str(path)
# remove node-id syntax
i = path.find("::")
if i != -1:
path = path[:i]
anchor = current.join(path, abs=1) anchor = current.join(path, abs=1)
if exists(anchor): # we found some file object if exists(anchor): # we found some file object
self._try_load_conftest(anchor) self._try_load_conftest(anchor)

View File

@ -237,3 +237,21 @@ def test_fixture_dependency(testdir, monkeypatch):
""")) """))
result = testdir.runpytest("sub") result = testdir.runpytest("sub")
result.stdout.fnmatch_lines(["*1 passed*"]) result.stdout.fnmatch_lines(["*1 passed*"])
def test_conftest_found_with_double_dash(testdir):
sub = testdir.mkdir("sub")
sub.join("conftest.py").write(py.std.textwrap.dedent("""
def pytest_addoption(parser):
parser.addoption("--hello-world", action="store_true")
"""))
p = sub.join("test_hello.py")
p.write(py.std.textwrap.dedent("""
import pytest
def test_hello(found):
assert found == 1
"""))
result = testdir.runpytest(str(p) + "@2::test_hello", "-h")
result.stdout.fnmatch_lines("""
*--hello-world*
""")