From feeddb9882a64073fc20f64b2dccc8003bc57740 Mon Sep 17 00:00:00 2001 From: Gleb Nikonorov Date: Thu, 4 Jun 2020 00:02:18 -0400 Subject: [PATCH] proper solution --- src/_pytest/fixtures.py | 2 +- src/_pytest/mark/structures.py | 5 +---- testing/test_mark.py | 14 +++++--------- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/src/_pytest/fixtures.py b/src/_pytest/fixtures.py index 82a148127..d04a613a4 100644 --- a/src/_pytest/fixtures.py +++ b/src/_pytest/fixtures.py @@ -302,7 +302,7 @@ def fillfixtures(function): def get_direct_param_fixture_func(request): - return request.param + return request.param if hasattr(request, "param") else None @attr.s(slots=True) diff --git a/src/_pytest/mark/structures.py b/src/_pytest/mark/structures.py index 223f0381d..a34a0c28d 100644 --- a/src/_pytest/mark/structures.py +++ b/src/_pytest/mark/structures.py @@ -37,10 +37,7 @@ def get_empty_parameterset_mark(config, argnames, func): if requested_mark in ("", None, "skip"): mark = MARK_GEN.skip elif requested_mark == "xfail": - if config.getoption("runxfail", default=False): - mark = MARK_GEN.skip - else: - mark = MARK_GEN.xfail(run=False) + mark = MARK_GEN.xfail(run=False) elif requested_mark == "fail_at_collect": f_name = func.__name__ _, lineno = getfslineno(func) diff --git a/testing/test_mark.py b/testing/test_mark.py index 134b53e47..c14f770da 100644 --- a/testing/test_mark.py +++ b/testing/test_mark.py @@ -885,19 +885,15 @@ class TestMarkDecorator: assert md.kwargs == {"three": 3} -@pytest.mark.parametrize( - "mark, addopts", - [(None, ""), ("", ""), ("skip", ""), ("xfail", ""), ("xfail", "--runxfail")], -) -def test_parameterset_for_parametrize_marks(testdir, mark, addopts): +@pytest.mark.parametrize("mark", [None, "", "skip", "xfail"]) +def test_parameterset_for_parametrize_marks(testdir, mark): if mark is not None: testdir.makeini( """ [pytest] {}={} - addopts={} """.format( - EMPTY_PARAMETERSET_OPTION, mark, addopts + EMPTY_PARAMETERSET_OPTION, mark ) ) @@ -906,7 +902,7 @@ def test_parameterset_for_parametrize_marks(testdir, mark, addopts): pytest_configure(config) result_mark = get_empty_parameterset_mark(config, ["a"], all) - if mark in (None, "") or (mark == "xfail" and addopts == "--runxfail"): + if mark in (None, ""): # normalize to the requested name mark = "skip" assert result_mark.name == mark @@ -959,7 +955,7 @@ def test_parameterset_for_fail_at_collect(testdir): def test_parameterset_for_parametrize_bad_markname(testdir): with pytest.raises(pytest.UsageError): - test_parameterset_for_parametrize_marks(testdir, "bad", False) + test_parameterset_for_parametrize_marks(testdir, "bad") def test_mark_expressions_no_smear(testdir):