Commits

holger krekel  committed 8f712ab

fix issue198 - detection of fixtures from conftest.py files in deeper nested dir structures with certain invocations

  • Participants
  • Parent commits fbd9f89

Comments (0)

Files changed (5)

 Changes between 2.2.4 and 2.3.0.dev
 -----------------------------------
 
+- fix issue198 - conftest fixtures were not found on windows32 in some
+  circumstances with nested directory structures due to path manipulation issues
 - fix issue193 skip test functions with were parametrized with empty
   parameter sets
 - fix python3.3 compat, mostly reporting bits that previously depended

File _pytest/__init__.py

 #
-__version__ = '2.3.0.dev26'
+__version__ = '2.3.0.dev27'

File _pytest/python.py

     else:
         part = session._initialparts[0]
         nodeid = "::".join(map(str, [curdir.bestrelpath(part[0])] + part[1:]))
+        nodeid.replace(session.fspath.sep, "/")
 
     tw = py.io.TerminalWriter()
     verbose = config.getvalue("verbose")
         else:
             if p.basename.startswith("conftest.py"):
                 nodeid = p.dirpath().relto(self.session.fspath)
+                if p.sep != "/":
+                    nodeid.replace(p.sep, "/")
         self.parsefactories(plugin, nodeid)
         self._seenplugins.add(plugin)
 
         name='pytest',
         description='py.test: simple powerful testing with Python',
         long_description = long_description,
-        version='2.3.0.dev26',
+        version='2.3.0.dev27',
         url='http://pytest.org',
         license='MIT license',
         platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],

File testing/test_python.py

     """)
     reprec = testdir.inline_run()
     reprec.assertoutcome(passed=1)
+
+def test_fixtures_sub_subdir_normalize_sep(testdir):
+    # this makes sure that normlization of nodeids takes place
+    b = testdir.mkdir("tests").mkdir("unit")
+    b.join("conftest.py").write(py.code.Source("""
+        def pytest_funcarg__arg1():
+            pass
+    """))
+    p = b.join("test_module.py")
+    p.write("def test_func(arg1): pass")
+    result = testdir.runpytest(p, "--fixtures")
+    assert result.ret == 0
+    result.stdout.fnmatch_lines("""
+        *fixtures defined*conftest*
+        *arg1*
+    """)