update ISSUES some more, introduce duration to RunResult and a failing dist-testing termination test.
--HG-- branch : trunk
This commit is contained in:
parent
a15afb5e48
commit
f02b84d528
48
ISSUES.txt
48
ISSUES.txt
|
@ -1,16 +1,16 @@
|
|||
|
||||
introduce py.test.mark.nocollect
|
||||
-------------------------------------------------------
|
||||
tags: feature
|
||||
tags: feature 1.2
|
||||
|
||||
for not considering a function for test collection at all.
|
||||
maybe also introduce a py.test.mark.test to explicitely
|
||||
mark a function to become a tested one. Lookup
|
||||
|
||||
mark a function to become a tested one. Lookup JUnit
|
||||
ways of tagging tests.
|
||||
|
||||
have imported module mismatch honour relative paths
|
||||
--------------------------------------------------------
|
||||
tags: bug
|
||||
tags: bug 1.2
|
||||
|
||||
With 1.1.1 py.test fails at least on windows if an import
|
||||
is relative and compared against an absolute conftest.py
|
||||
|
@ -18,7 +18,7 @@ path. Normalize.
|
|||
|
||||
allow plugins/conftests to show extra header information
|
||||
--------------------------------------------------------
|
||||
tags: feature
|
||||
tags: feature 1.2
|
||||
|
||||
The test-report header should optionally show information
|
||||
about the under-test package and versions/locations of
|
||||
|
@ -26,7 +26,7 @@ involved packages.
|
|||
|
||||
make node._checkcollectable more robust
|
||||
-------------------------------------------------
|
||||
tags: bug 1.1.2
|
||||
tags: bug 1.2
|
||||
|
||||
currently node._checkcollectable() can raise
|
||||
exceptions for all kinds of reasons ('conftest.py' loading
|
||||
|
@ -36,35 +36,41 @@ a good error message.
|
|||
|
||||
call termination with small timeout
|
||||
-------------------------------------------------
|
||||
tags: feature 1.1.2
|
||||
tags: feature 1.2
|
||||
test: testing/pytest/dist/test_dsession.py - test_terminate_on_hanging_node
|
||||
|
||||
Call gateway group termination with a small timeout if available.
|
||||
Should make dist-testing less likely to leave lost processes.
|
||||
|
||||
make capfd skip if 'dup' is not available
|
||||
-------------------------------------------------------
|
||||
|
||||
tags: feature 1.1.2
|
||||
|
||||
currently, using 'capfd' as a funcarg will fail because
|
||||
it cannot call os.dup on setup. Should cause a skip.
|
||||
|
||||
introduce multi-install, i.e. py.test3, py.test-pypy, py.test-jython
|
||||
and maybe a commandline-"suffix" override?
|
||||
|
||||
fix dist-testing: execnet needs to be rsynced over automatically
|
||||
------------------------------------------------------------------
|
||||
|
||||
tags: bug 1.1.2
|
||||
tags: bug 1.2
|
||||
bb: http://bitbucket.org/hpk42/py-trunk/issue/65/
|
||||
|
||||
execnet is not rsynced so fails if run in an ssh-situation.
|
||||
write test and fix.
|
||||
|
||||
dist-testing: fix session hook / setup calling
|
||||
-----------------------------------------------------
|
||||
tags: bug 1.2
|
||||
|
||||
Currently pytest_sessionstart and finish are called
|
||||
on the master node and not on the slaves. Call
|
||||
it on slaves and provide a session.nodeid which defaults
|
||||
to None for the master and contains the gateway id
|
||||
for slaves.
|
||||
|
||||
have --report=xfailed[-detail] report the actual tracebacks
|
||||
------------------------------------------------------------------
|
||||
tags: feature
|
||||
|
||||
there is no way to induce py.test to display the full tracebacks
|
||||
of the expected failure. Introduce one.
|
||||
|
||||
relax requirement to have tests/testing contain an __init__
|
||||
----------------------------------------------------------------
|
||||
tags: feature 1.1.2
|
||||
tags: feature 1.2
|
||||
bb: http://bitbucket.org/hpk42/py-trunk/issue/64
|
||||
|
||||
A local test run of a "tests" directory may work
|
||||
|
@ -74,7 +80,7 @@ an error or make it work without the __init__.py
|
|||
|
||||
deprecate ensuretemp / introduce funcargs to setup method
|
||||
--------------------------------------------------------------
|
||||
tags: wish 1.1.2
|
||||
tags: experimental-wish 1.2
|
||||
|
||||
The remaining uses of py.test.ensuretemp within the py-test base
|
||||
itself are for setup methods. Also users have expressed the
|
||||
|
|
|
@ -6,6 +6,7 @@ import py
|
|||
import sys, os
|
||||
import re
|
||||
import inspect
|
||||
import time
|
||||
from py.impl.test.config import Config as pytestConfig
|
||||
from py.plugin import hookspec
|
||||
from py.builtin import print_
|
||||
|
@ -24,12 +25,14 @@ def pytest_funcarg__testdir(request):
|
|||
|
||||
rex_outcome = re.compile("(\d+) (\w+)")
|
||||
class RunResult:
|
||||
def __init__(self, ret, outlines, errlines):
|
||||
def __init__(self, ret, outlines, errlines, duration):
|
||||
self.ret = ret
|
||||
self.outlines = outlines
|
||||
self.errlines = errlines
|
||||
self.stdout = LineMatcher(outlines)
|
||||
self.stderr = LineMatcher(errlines)
|
||||
self.duration = duration
|
||||
|
||||
def parseoutcomes(self):
|
||||
for line in reversed(self.outlines):
|
||||
if 'seconds' in line:
|
||||
|
@ -284,6 +287,7 @@ class TmpTestdir:
|
|||
print_("running", cmdargs, "curdir=", py.path.local())
|
||||
f1 = p1.open("w")
|
||||
f2 = p2.open("w")
|
||||
now = time.time()
|
||||
popen = self.popen(cmdargs, stdout=f1, stderr=f2,
|
||||
close_fds=(sys.platform != "win32"))
|
||||
ret = popen.wait()
|
||||
|
@ -296,7 +300,7 @@ class TmpTestdir:
|
|||
if out:
|
||||
for line in out:
|
||||
py.builtin.print_(line, file=sys.stdout)
|
||||
return RunResult(ret, out, err)
|
||||
return RunResult(ret, out, err, time.time()-now)
|
||||
|
||||
def runpybin(self, scriptname, *args):
|
||||
fullargs = self._getpybinargs(scriptname) + args
|
||||
|
|
|
@ -440,4 +440,19 @@ def test_teardownfails_one_function(testdir):
|
|||
"*1 passed*1 error*"
|
||||
])
|
||||
|
||||
@py.test.mark.xfail
|
||||
def test_terminate_on_hangingnode(testdir):
|
||||
p = testdir.makeconftest("""
|
||||
def pytest__teardown_final(session):
|
||||
if session.nodeid: # running on slave
|
||||
import time
|
||||
time.sleep(2)
|
||||
""")
|
||||
result = testdir.runpytest(p, '--dist=each', '--tx=popen')
|
||||
assert result.duration < 2.0
|
||||
result.stdout.fnmatch_lines([
|
||||
"*0 passed*",
|
||||
])
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue