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
|
introduce py.test.mark.nocollect
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
tags: feature
|
tags: feature 1.2
|
||||||
|
|
||||||
for not considering a function for test collection at all.
|
for not considering a function for test collection at all.
|
||||||
maybe also introduce a py.test.mark.test to explicitely
|
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
|
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
|
With 1.1.1 py.test fails at least on windows if an import
|
||||||
is relative and compared against an absolute conftest.py
|
is relative and compared against an absolute conftest.py
|
||||||
|
@ -18,7 +18,7 @@ path. Normalize.
|
||||||
|
|
||||||
allow plugins/conftests to show extra header information
|
allow plugins/conftests to show extra header information
|
||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
tags: feature
|
tags: feature 1.2
|
||||||
|
|
||||||
The test-report header should optionally show information
|
The test-report header should optionally show information
|
||||||
about the under-test package and versions/locations of
|
about the under-test package and versions/locations of
|
||||||
|
@ -26,7 +26,7 @@ involved packages.
|
||||||
|
|
||||||
make node._checkcollectable more robust
|
make node._checkcollectable more robust
|
||||||
-------------------------------------------------
|
-------------------------------------------------
|
||||||
tags: bug 1.1.2
|
tags: bug 1.2
|
||||||
|
|
||||||
currently node._checkcollectable() can raise
|
currently node._checkcollectable() can raise
|
||||||
exceptions for all kinds of reasons ('conftest.py' loading
|
exceptions for all kinds of reasons ('conftest.py' loading
|
||||||
|
@ -36,35 +36,41 @@ a good error message.
|
||||||
|
|
||||||
call termination with small timeout
|
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.
|
Call gateway group termination with a small timeout if available.
|
||||||
Should make dist-testing less likely to leave lost processes.
|
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
|
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/
|
bb: http://bitbucket.org/hpk42/py-trunk/issue/65/
|
||||||
|
|
||||||
execnet is not rsynced so fails if run in an ssh-situation.
|
execnet is not rsynced so fails if run in an ssh-situation.
|
||||||
write test and fix.
|
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__
|
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
|
bb: http://bitbucket.org/hpk42/py-trunk/issue/64
|
||||||
|
|
||||||
A local test run of a "tests" directory may work
|
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
|
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
|
The remaining uses of py.test.ensuretemp within the py-test base
|
||||||
itself are for setup methods. Also users have expressed the
|
itself are for setup methods. Also users have expressed the
|
||||||
|
|
|
@ -6,6 +6,7 @@ import py
|
||||||
import sys, os
|
import sys, os
|
||||||
import re
|
import re
|
||||||
import inspect
|
import inspect
|
||||||
|
import time
|
||||||
from py.impl.test.config import Config as pytestConfig
|
from py.impl.test.config import Config as pytestConfig
|
||||||
from py.plugin import hookspec
|
from py.plugin import hookspec
|
||||||
from py.builtin import print_
|
from py.builtin import print_
|
||||||
|
@ -24,12 +25,14 @@ def pytest_funcarg__testdir(request):
|
||||||
|
|
||||||
rex_outcome = re.compile("(\d+) (\w+)")
|
rex_outcome = re.compile("(\d+) (\w+)")
|
||||||
class RunResult:
|
class RunResult:
|
||||||
def __init__(self, ret, outlines, errlines):
|
def __init__(self, ret, outlines, errlines, duration):
|
||||||
self.ret = ret
|
self.ret = ret
|
||||||
self.outlines = outlines
|
self.outlines = outlines
|
||||||
self.errlines = errlines
|
self.errlines = errlines
|
||||||
self.stdout = LineMatcher(outlines)
|
self.stdout = LineMatcher(outlines)
|
||||||
self.stderr = LineMatcher(errlines)
|
self.stderr = LineMatcher(errlines)
|
||||||
|
self.duration = duration
|
||||||
|
|
||||||
def parseoutcomes(self):
|
def parseoutcomes(self):
|
||||||
for line in reversed(self.outlines):
|
for line in reversed(self.outlines):
|
||||||
if 'seconds' in line:
|
if 'seconds' in line:
|
||||||
|
@ -284,6 +287,7 @@ class TmpTestdir:
|
||||||
print_("running", cmdargs, "curdir=", py.path.local())
|
print_("running", cmdargs, "curdir=", py.path.local())
|
||||||
f1 = p1.open("w")
|
f1 = p1.open("w")
|
||||||
f2 = p2.open("w")
|
f2 = p2.open("w")
|
||||||
|
now = time.time()
|
||||||
popen = self.popen(cmdargs, stdout=f1, stderr=f2,
|
popen = self.popen(cmdargs, stdout=f1, stderr=f2,
|
||||||
close_fds=(sys.platform != "win32"))
|
close_fds=(sys.platform != "win32"))
|
||||||
ret = popen.wait()
|
ret = popen.wait()
|
||||||
|
@ -296,7 +300,7 @@ class TmpTestdir:
|
||||||
if out:
|
if out:
|
||||||
for line in out:
|
for line in out:
|
||||||
py.builtin.print_(line, file=sys.stdout)
|
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):
|
def runpybin(self, scriptname, *args):
|
||||||
fullargs = self._getpybinargs(scriptname) + args
|
fullargs = self._getpybinargs(scriptname) + args
|
||||||
|
|
|
@ -440,4 +440,19 @@ def test_teardownfails_one_function(testdir):
|
||||||
"*1 passed*1 error*"
|
"*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