3 new commits in pytest:
https://bitbucket.org/hpk42/pytest/commits/e2889c9a0d75/
Changeset: e2889c9a0d75
Branch: argcomplete
User: Anthon van der Neut
Date: 2013-07-31 16:03:53
Summary: fix for tests running subprocesses of py.test after
test_argcomplete
(which all still ran with argcompletion enabled) -> fail
Affected #: 1 file
diff -r f44d44a4142b72a260007e413e6419549b3c1dc1 -r
e2889c9a0d75963201f2d098482f28002a199f6f testing/test_parseopt.py
--- a/testing/test_parseopt.py
+++ b/testing/test_parseopt.py
@@ -176,7 +176,7 @@
@pytest.mark.skipif("sys.version_info < (2,5)")
def test_argcomplete(testdir):
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,6 +185,10 @@
# so we use bash
fp.write('COMP_WORDBREAKS="$COMP_WORDBREAKS" $(which py.test) '
'8>&1 9>&2')
+ # 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
+ orgenv = os.environ.copy()
os.environ['_ARGCOMPLETE'] = "1"
os.environ['_ARGCOMPLETE_IFS'] = "\x0b"
os.environ['COMP_WORDBREAKS'] = ' \\t\\n"\\\'><=;|&(:'
@@ -206,3 +210,5 @@
os.environ['COMP_POINT'] = str(len(os.environ['COMP_LINE']))
result = testdir.run('bash', str(script), arg)
result.stdout.fnmatch_lines(["test_argcomplete", "test_argcomplete.d/"])
+ # restore environment
+ os.environ = orgenv.copy()
https://bitbucket.org/hpk42/pytest/commits/5ac465ea2d43/
Changeset: 5ac465ea2d43
Branch: argcomplete
User: Anthon van der Neut
Date: 2013-07-31 21:33:13
Summary: monkeypatch for os.environment changes
Affected #: 1 file
diff -r e2889c9a0d75963201f2d098482f28002a199f6f -r
5ac465ea2d438ae71524197ecfd5a8f4ce2d4d90 testing/test_parseopt.py
--- a/testing/test_parseopt.py
+++ b/testing/test_parseopt.py
@@ -174,7 +174,7 @@
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")
import os
@@ -188,14 +188,13 @@
# 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
- orgenv = os.environ.copy()
- os.environ['_ARGCOMPLETE'] = "1"
- os.environ['_ARGCOMPLETE_IFS'] = "\x0b"
- os.environ['COMP_WORDBREAKS'] = ' \\t\\n"\\\'><=;|&(:'
+ 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:
@@ -206,9 +205,8 @@
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
- os.environ = orgenv.copy()
https://bitbucket.org/hpk42/pytest/commits/b425db448787/
Changeset: b425db448787
User: hpk42
Date: 2013-08-01 10:30:24
Summary: Merged in anthon_van_der_neut/pytest/argcomplete (pull request #51)
fix for tests running subprocesses of py.test after test_argcomplete
Affected #: 1 file
diff -r 2d92b2270aba23d130c8e75c4f145e1e45427deb -r
b425db44878707b9688b8d4d179be349e341afed testing/test_parseopt.py
--- a/testing/test_parseopt.py
+++ b/testing/test_parseopt.py
@@ -174,9 +174,9 @@
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 @@
# 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 @@
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
Repository URL: https://bitbucket.org/hpk42/pytest/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
_______________________________________________
pytest-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pytest-commit