merge
This commit is contained in:
commit
0350a1929d
51
ISSUES.txt
51
ISSUES.txt
|
@ -1,10 +1,4 @@
|
|||
|
||||
improve / add to dependency/test resource injection
|
||||
-------------------------------------------------------------
|
||||
tags: wish feature docs
|
||||
|
||||
write up better examples showing the connection between
|
||||
the two.
|
||||
|
||||
refine parametrize API
|
||||
-------------------------------------------------------------
|
||||
|
@ -94,20 +88,6 @@ appropriately to avoid this issue. Moreover/Alternatively, we could
|
|||
record which implementations of a hook succeeded and only call their
|
||||
teardown.
|
||||
|
||||
consider and document __init__ file usage in test directories
|
||||
---------------------------------------------------------------
|
||||
tags: bug core
|
||||
|
||||
Currently, a test module is imported with its fully qualified
|
||||
package path, determined by checking __init__ files upwards.
|
||||
This has the side effect that a source package at the root
|
||||
of the test dir could be imported as well. This is somewhat
|
||||
convenient but complicates the picture for running tests against
|
||||
different versions of a package. Also, implicit sys.path
|
||||
manipulations are problematic per-se. Maybe factorting out
|
||||
a pytest_addsyspath hook which can be disabled from the command line
|
||||
makes sense. In any case documentation/recommendations for
|
||||
certain scenarios makes sense.
|
||||
|
||||
relax requirement to have tests/testing contain an __init__
|
||||
----------------------------------------------------------------
|
||||
|
@ -220,32 +200,10 @@ to further reduce py.test globality. Also consider
|
|||
having py.test.config and ensuretemp coming from
|
||||
a plugin rather than being there from the start.
|
||||
|
||||
consider allowing funcargs for setup methods
|
||||
--------------------------------------------------------------
|
||||
tags: experimental-wish
|
||||
|
||||
Users have expressed the wish to have funcargs available to setup
|
||||
functions. Experiment with allowing funcargs there - it might
|
||||
also help to make the py.test.ensuretemp and config deprecation.
|
||||
For filling funcargs for setup methods, we could call funcarg
|
||||
factories with a request object that not have a cls/function
|
||||
attributes. However, how to handle parametrized test functions
|
||||
and funcargs?
|
||||
|
||||
maybe introduce a setup method like:
|
||||
|
||||
setup_invocation(self, request)
|
||||
|
||||
which has full access to the test invocation through "request"
|
||||
through which you can get funcargvalues, use cached_setup etc.
|
||||
Therefore, the access to funcargs would be indirect but it
|
||||
could be consistently implemented. setup_invocation() would
|
||||
be a "glue" function for bringing together the xUnit and funcargs
|
||||
world.
|
||||
|
||||
consider pytest_addsyspath hook
|
||||
-----------------------------------------
|
||||
tags:
|
||||
tags: wish
|
||||
|
||||
py.test could call a new pytest_addsyspath() in order to systematically
|
||||
allow manipulation of sys.path and to inhibit it via --no-addsyspath
|
||||
|
@ -255,13 +213,6 @@ Alternatively it could also be done via the config object
|
|||
and pytest_configure.
|
||||
|
||||
|
||||
show plugin information in test header
|
||||
----------------------------------------------------------------
|
||||
tags: feature
|
||||
|
||||
Now that external plugins are becoming more numerous
|
||||
it would be useful to have external plugins along with
|
||||
their versions displayed as a header line.
|
||||
|
||||
deprecate global py.test.config usage
|
||||
----------------------------------------------------------------
|
||||
|
|
|
@ -174,9 +174,9 @@ def test_addoption_parser_epilog(testdir):
|
|||
result.stdout.fnmatch_lines(["hint: hello world", "hint: from me too"])
|
||||
|
||||
@pytest.mark.skipif("sys.version_info < (2,5)")
|
||||
def test_argcomplete(testdir):
|
||||
def test_argcomplete(testdir, monkeypatch):
|
||||
if not py.path.local.sysfind('bash'):
|
||||
pytest.skip("bash not available")
|
||||
pytest.skip("bash not available")
|
||||
import os
|
||||
script = os.path.join(os.getcwd(), 'test_argcomplete')
|
||||
with open(str(script), 'w') as fp:
|
||||
|
@ -185,13 +185,16 @@ def test_argcomplete(testdir):
|
|||
# so we use bash
|
||||
fp.write('COMP_WORDBREAKS="$COMP_WORDBREAKS" $(which py.test) '
|
||||
'8>&1 9>&2')
|
||||
os.environ['_ARGCOMPLETE'] = "1"
|
||||
os.environ['_ARGCOMPLETE_IFS'] = "\x0b"
|
||||
os.environ['COMP_WORDBREAKS'] = ' \\t\\n"\\\'><=;|&(:'
|
||||
# alternative would be exteneded Testdir.{run(),_run(),popen()} to be able
|
||||
# to handle a keyword argument env that replaces os.environ in popen or
|
||||
# extends the copy, advantage: could not forget to restore
|
||||
monkeypatch.setenv('_ARGCOMPLETE', "1")
|
||||
monkeypatch.setenv('_ARGCOMPLETE_IFS',"\x0b")
|
||||
monkeypatch.setenv('COMP_WORDBREAKS', ' \\t\\n"\\\'><=;|&(:')
|
||||
|
||||
arg = '--fu'
|
||||
os.environ['COMP_LINE'] = "py.test " + arg
|
||||
os.environ['COMP_POINT'] = str(len(os.environ['COMP_LINE']))
|
||||
monkeypatch.setenv('COMP_LINE', "py.test " + arg)
|
||||
monkeypatch.setenv('COMP_POINT', str(len("py.test " + arg)))
|
||||
result = testdir.run('bash', str(script), arg)
|
||||
print dir(result), result.ret
|
||||
if result.ret == 255:
|
||||
|
@ -202,7 +205,8 @@ def test_argcomplete(testdir):
|
|||
|
||||
os.mkdir('test_argcomplete.d')
|
||||
arg = 'test_argc'
|
||||
os.environ['COMP_LINE'] = "py.test " + arg
|
||||
os.environ['COMP_POINT'] = str(len(os.environ['COMP_LINE']))
|
||||
monkeypatch.setenv('COMP_LINE', "py.test " + arg)
|
||||
monkeypatch.setenv('COMP_POINT', str(len('py.test ' + arg)))
|
||||
result = testdir.run('bash', str(script), arg)
|
||||
result.stdout.fnmatch_lines(["test_argcomplete", "test_argcomplete.d/"])
|
||||
# restore environment
|
||||
|
|
Loading…
Reference in New Issue