[Pytest-commit] commit/pytest: hpk42: - add Brianna (@pfctdayelise ) to changelog and contributors
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Wed May 22 15:25:09 CEST 2013
1 new commit in pytest:
https://bitbucket.org/hpk42/pytest/commits/6865f468f152/
Changeset: 6865f468f152
User: hpk42
Date: 2013-05-22 15:24:58
Summary: - add Brianna (@pfctdayelise ) to changelog and contributors
- fix some broken tests on py32/py33 (related to issue308 merge)
- re-format docstrings
-
Affected #: 5 files
diff -r fff62647d8622e95f5f0e28f1e4a25aeeb4b0a8f -r 6865f468f15242e1a399fd20e9bc9e5ad44cb02d AUTHORS
--- a/AUTHORS
+++ b/AUTHORS
@@ -8,6 +8,7 @@
Floris Bruynooghe
Jason R. Coombs
Samuele Pedroni
+Brianna Laugher
Carl Friedrich Bolz
Armin Rigo
Maho
diff -r fff62647d8622e95f5f0e28f1e4a25aeeb4b0a8f -r 6865f468f15242e1a399fd20e9bc9e5ad44cb02d CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,9 @@
Changes between 2.3.5 and 2.4.DEV
-----------------------------------
+- fix issue 308 - allow to mark/xfail/skip individual parameter sets
+ when parametrizing. Thanks Brianna Laugher.
+
- (experimental) allow fixture functions to be
implemented as context managers. Thanks Andreas Pelme,
Vladimir Keleshev.
diff -r fff62647d8622e95f5f0e28f1e4a25aeeb4b0a8f -r 6865f468f15242e1a399fd20e9bc9e5ad44cb02d _pytest/python.py
--- a/_pytest/python.py
+++ b/_pytest/python.py
@@ -651,11 +651,12 @@
:arg argnames: an argument name or a list of argument names
- :arg argvalues: The list of argvalues determines how often a test is invoked
- with different argument values. If only one argname was specified argvalues
- is a list of simple values. If N argnames were specified, argvalues must
- be a list of N-tuples, where each tuple-element specifies a value for its
- respective argname.
+ :arg argvalues: The list of argvalues determines how often a
+ test is invoked with different argument values. If only one
+ argname was specified argvalues is a list of simple values. If N
+ argnames were specified, argvalues must be a list of N-tuples,
+ where each tuple-element specifies a value for its respective
+ argname.
:arg indirect: if True each argvalue corresponding to an argname will
be passed as request.param to its respective argname fixture
@@ -671,20 +672,20 @@
It will also override any fixture-function defined scope, allowing
to set a dynamic scope using test context or configuration.
"""
- # remove any marks applied to individual tests instances
- # these marks will be applied in Function init
+
+ # individual parametrized argument sets can be wrapped in a
+ # marker in which case we unwrap the values and apply the mark
+ # at Function init
newkeywords = {}
- strippedargvalues = []
+ unwrapped_argvalues = []
for i, argval in enumerate(argvalues):
if isinstance(argval, MarkDecorator):
- # convert into a mark without the test content mixed in
- newmark = MarkDecorator(argval.markname, argval.args[:-1], argval.kwargs)
+ newmark = MarkDecorator(argval.markname,
+ argval.args[:-1], argval.kwargs)
newkeywords[i] = {newmark.markname: newmark}
- strippedargvalues.append(argval.args[-1])
- else:
- newkeywords[i] = {}
- strippedargvalues.append(argval)
- argvalues = strippedargvalues
+ argval = argval.args[-1]
+ unwrapped_argvalues.append(argval)
+ argvalues = unwrapped_argvalues
if not isinstance(argnames, (tuple, list)):
argnames = (argnames,)
@@ -710,7 +711,7 @@
assert len(valset) == len(argnames)
newcallspec = callspec.copy(self)
newcallspec.setmulti(valtype, argnames, valset, ids[i],
- newkeywords[i], scopenum)
+ newkeywords.get(i, {}), scopenum)
newcalls.append(newcallspec)
self._calls = newcalls
diff -r fff62647d8622e95f5f0e28f1e4a25aeeb4b0a8f -r 6865f468f15242e1a399fd20e9bc9e5ad44cb02d testing/python/metafunc.py
--- a/testing/python/metafunc.py
+++ b/testing/python/metafunc.py
@@ -578,8 +578,8 @@
])
- at pytest.mark.issue308
class TestMarkersWithParametrization:
+ pytestmark = pytest.mark.issue308
def test_simple_mark(self, testdir):
s = """
import pytest
@@ -680,7 +680,7 @@
@pytest.mark.parametrize(("n", "expected"), [
(1, 2),
- pytest.mark.xfail("sys.version > 0")((1, 3)),
+ pytest.mark.xfail("True")((1, 3)),
(2, 3),
])
def test_increment(n, expected):
@@ -712,7 +712,7 @@
@pytest.mark.parametrize(("n", "expected"), [
(1, 2),
- pytest.mark.xfail("sys.version > 0", reason="some bug")((1, 3)),
+ pytest.mark.xfail("True", reason="some bug")((1, 3)),
(2, 3),
])
def test_increment(n, expected):
diff -r fff62647d8622e95f5f0e28f1e4a25aeeb4b0a8f -r 6865f468f15242e1a399fd20e9bc9e5ad44cb02d tox.ini
--- a/tox.ini
+++ b/tox.ini
@@ -31,7 +31,7 @@
PYTHONDONTWRITEBYTECODE=1
commands=
py.test -n3 -rfsxX \
- --junitxml={envlogdir}/junit-{envname}.xml []
+ --junitxml={envlogdir}/junit-{envname}.xml {posargs:testing}
[testenv:trial]
changedir=.
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.
More information about the pytest-commit
mailing list