commit
357a7c79ef
|
@ -6,6 +6,10 @@
|
|||
* fix `#510`_: skip tests where one parameterize dimension was empty
|
||||
thanks Alex Stapleton for the Report and `@RonnyPfannschmidt`_ for the PR
|
||||
|
||||
* Fix Xfail does not work with condition keyword argument.
|
||||
Thanks `@astraw38`_ for reporting the issue (`#1496`_) and `@tomviner`_
|
||||
for PR the (`#1524`_).
|
||||
|
||||
* Fix win32 path issue when puttinging custom config file with absolute path
|
||||
in ``pytest.main("-c your_absolute_path")``.
|
||||
|
||||
|
@ -22,8 +26,11 @@
|
|||
|
||||
.. _#510: https://github.com/pytest-dev/pytest/issues/510
|
||||
.. _#1506: https://github.com/pytest-dev/pytest/pull/1506
|
||||
.. _#1496: https://github.com/pytest-dev/pytest/issue/1496
|
||||
.. _#1524: https://github.com/pytest-dev/pytest/issue/1524
|
||||
|
||||
.. _@prusse-martin: https://github.com/prusse-martin
|
||||
.. _@astraw38: https://github.com/astraw38
|
||||
|
||||
|
||||
2.9.1
|
||||
|
|
|
@ -120,7 +120,7 @@ class MarkEvaluator:
|
|||
return self.result
|
||||
if self.holder:
|
||||
d = self._getglobals()
|
||||
if self.holder.args:
|
||||
if self.holder.args or 'condition' in self.holder.kwargs:
|
||||
self.result = False
|
||||
# "holder" might be a MarkInfo or a MarkDecorator; only
|
||||
# MarkInfo keeps track of all parameters it received in an
|
||||
|
@ -130,6 +130,8 @@ class MarkEvaluator:
|
|||
else:
|
||||
arglist = [(self.holder.args, self.holder.kwargs)]
|
||||
for args, kwargs in arglist:
|
||||
if 'condition' in kwargs:
|
||||
args = (kwargs['condition'],)
|
||||
for expr in args:
|
||||
self.expr = expr
|
||||
if isinstance(expr, py.builtin._basestring):
|
||||
|
|
|
@ -405,6 +405,19 @@ class TestXFail:
|
|||
result.stdout.fnmatch_lines('*1 passed*')
|
||||
assert result.ret == 0
|
||||
|
||||
@pytest.mark.parametrize('strict', [True, False])
|
||||
def test_xfail_condition_keyword(self, testdir, strict):
|
||||
p = testdir.makepyfile("""
|
||||
import pytest
|
||||
|
||||
@pytest.mark.xfail(condition=False, reason='unsupported feature', strict=%s)
|
||||
def test_foo():
|
||||
pass
|
||||
""" % strict)
|
||||
result = testdir.runpytest(p, '-rxX')
|
||||
result.stdout.fnmatch_lines('*1 passed*')
|
||||
assert result.ret == 0
|
||||
|
||||
@pytest.mark.parametrize('strict_val', ['true', 'false'])
|
||||
def test_strict_xfail_default_from_file(self, testdir, strict_val):
|
||||
testdir.makeini('''
|
||||
|
|
Loading…
Reference in New Issue