[py-svn] py-trunk commit 27f764f5693b: fix some standalone-script running issues:

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Wed Dec 30 18:11:50 CET 2009


# HG changeset patch -- Bitbucket.org
# Project py-trunk
# URL http://bitbucket.org/hpk42/py-trunk/overview/
# User holger krekel <holger at merlinux.eu>
# Date 1262193060 -3600
# Node ID 27f764f5693b9e7e3dfc9180c3598cf29adfc58e
# Parent f01f6a7caab924d5800e21acd9911ea0f44f9b6b
fix some standalone-script running issues:
* standalone can run standalone tests
* exception handling is more careful with assuming valid filenames
* bits here and there

--- a/bin-for-dist/test_generate_standalone.py
+++ b/bin-for-dist/test_generate_standalone.py
@@ -2,6 +2,8 @@ import py, os, sys
 import generate_standalone_pytest
 import subprocess
 mydir = py.path.local(__file__).dirpath()
+pybasedir = mydir.join("..")
+assert pybasedir.join("py").check()
 
 def pytest_funcarg__standalone(request):
     return request.cached_setup(scope="module", setup=lambda: Standalone(request))
@@ -11,7 +13,7 @@ class Standalone:
         self.testdir = request.getfuncargvalue("testdir")
         infile = mydir.join("py.test-in")
         self.script = self.testdir.tmpdir.join("mypytest")
-        generate_standalone_pytest.main(pydir=os.path.dirname(py.__file__),
+        generate_standalone_pytest.main(pybasedir=pybasedir,
             infile=infile, outfile=self.script)
 
     def run(self, anypython, testdir, *args):
@@ -34,6 +36,6 @@ def test_rundist(testdir, standalone):
     """)
     result = standalone.run(sys.executable, testdir, '-n', '3')
     assert result.ret == 0
-    result.fnmatch_lines([
+    result.stdout.fnmatch_lines([
         "*1 passed*"
     ])

--- a/py/impl/code/code.py
+++ b/py/impl/code/code.py
@@ -537,8 +537,9 @@ class FormattedExcinfo(object):
         else: 
             if self.style == "short":
                 line = source[line_index].lstrip()
+                trybasename = getattr(entry.path, 'basename', entry.path)
                 lines.append('  File "%s", line %d, in %s' % (
-                    entry.path.basename, entry.lineno+1, entry.name))
+                    trybasename, entry.lineno+1, entry.name))
                 lines.append("    " + line) 
             if excinfo: 
                 lines.extend(self.get_exconly(excinfo, indent=4))

--- a/testing/plugin/test_pytest_doctest.py
+++ b/testing/plugin/test_pytest_doctest.py
@@ -1,5 +1,7 @@
 from py.plugin.pytest_doctest import DoctestModule, DoctestTextfile
 
+pytest_plugins = ["pytest_doctest"]
+
 class TestDoctests:
  
     def test_collect_testtextfile(self, testdir):
@@ -12,14 +14,15 @@ class TestDoctests:
         """)
         for x in (testdir.tmpdir, checkfile): 
             #print "checking that %s returns custom items" % (x,) 
-            items, reprec = testdir.inline_genitems(x)
+            items, reprec = testdir.inline_genitems(x, '-p', 'doctest')
             assert len(items) == 1
             assert isinstance(items[0], DoctestTextfile)
 
     def test_collect_module(self, testdir):
         path = testdir.makepyfile(whatever="#")
         for p in (path, testdir.tmpdir): 
-            items, reprec = testdir.inline_genitems(p, '--doctest-modules')
+            items, reprec = testdir.inline_genitems(p, '-p', 'doctest', 
+                '--doctest-modules')
             assert len(items) == 1
             assert isinstance(items[0], DoctestModule)
 
@@ -29,7 +32,7 @@ class TestDoctests:
             >>> x == 1
             False
         """)
-        reprec = testdir.inline_run(p)
+        reprec = testdir.inline_run(p, '-p', 'doctest')
         reprec.assertoutcome(failed=1)
 
     def test_doctest_unexpected_exception(self, testdir):
@@ -41,7 +44,7 @@ class TestDoctests:
             >>> x
             2
         """)
-        reprec = testdir.inline_run(p)
+        reprec = testdir.inline_run(p, '-p', 'doctest')
         call = reprec.getcall("pytest_runtest_logreport")
         assert call.report.failed
         assert call.report.longrepr 
@@ -60,7 +63,7 @@ class TestDoctests:
 
             '''
         """)
-        reprec = testdir.inline_run(p, "--doctest-modules")
+        reprec = testdir.inline_run(p, '-p', 'doctest', "--doctest-modules")
         reprec.assertoutcome(failed=1) 
 
     def test_doctestmodule_external(self, testdir):
@@ -73,7 +76,7 @@ class TestDoctests:
                     2
                 '''
         """)
-        result = testdir.runpytest(p, "--doctest-modules")
+        result = testdir.runpytest(p, '-p', 'doctest', "--doctest-modules")
         result.stdout.fnmatch_lines([
             '004 *>>> i = 0',
             '005 *>>> i + 1',
@@ -91,7 +94,7 @@ class TestDoctests:
             >>> i + 1
             2
         """)
-        result = testdir.runpytest(p)
+        result = testdir.runpytest(p, '-p', 'doctest')
         result.stdout.fnmatch_lines([
             '001 >>> i = 0',
             '002 >>> i + 1',

--- a/bin-for-dist/generate_standalone_pytest.py
+++ b/bin-for-dist/generate_standalone_pytest.py
@@ -6,8 +6,8 @@ import zlib
 import base64
 import sys
 
-def main(pydir, outfile, infile):
-    os.chdir(os.path.dirname(str(pydir)))
+def main(pybasedir, outfile, infile):
+    os.chdir(str(pybasedir))
     outfile = str(outfile)
     infile = str(infile)
     files = []
@@ -37,7 +37,7 @@ def main(pydir, outfile, infile):
 
 if __name__=="__main__":
     dn = os.path.dirname
-    pydir = os.path.join(dn(dn(os.path.abspath(__file__))), 'py')
+    pybasedir = dn(dn(os.path.abspath(__file__)))
     outfile = os.path.join(dn(__file__), "py.test")
     infile = outfile+"-in"
-    main(pydir, outfile, infile)
+    main(pybasedir, outfile, infile)

--- a/testing/plugin/test_pytest_helpconfig.py
+++ b/testing/plugin/test_pytest_helpconfig.py
@@ -5,9 +5,9 @@ def test_version(testdir):
     assert py.version == py.__version__ 
     result = testdir.runpytest("--version")
     assert result.ret == 0
-    p = py.path.local(py.__file__).dirpath()
+    #p = py.path.local(py.__file__).dirpath()
     assert result.stderr.fnmatch_lines([
-        '*py.test*%s*imported from*%s*' % (py.version, p)
+        '*py.test*%s*imported from*' % (py.version, )
     ])
 
 def test_helpconfig(testdir):



More information about the pytest-commit mailing list