Skip to content

Commit 63ac40b

Browse files
add tests for mark extraction and fix rep of markdecorator
1 parent 9803119 commit 63ac40b

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

_pytest/mark.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ def istestfunc(func):
264264
return hasattr(func, "__call__") and \
265265
getattr(func, "__name__", "<lambda>") != "<lambda>"
266266

267+
267268
class MarkDecorator(object):
268269
""" A decorator for test functions and test classes. When applied
269270
it will create :class:`MarkInfo` objects which may be
@@ -309,8 +310,11 @@ def __init__(self, mark):
309310
def markname(self):
310311
return self.name # for backward-compat (2.4.1 had this attr)
311312

313+
def __eq__(self, other):
314+
return self.mark == other.mark
315+
312316
def __repr__(self):
313-
return "<MarkDecorator %r>" % self.mark
317+
return "<MarkDecorator %r>" % (self.mark,)
314318

315319
def __call__(self, *args, **kwargs):
316320
""" if passed a single callable argument: decorate it with mark info.

testing/test_mark.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import sys
44

55
import pytest
6-
from _pytest.mark import MarkGenerator as Mark
6+
from _pytest.mark import MarkGenerator as Mark, ParameterSet
77

88
class TestMark(object):
99
def test_markinfo_repr(self):
@@ -742,3 +742,16 @@ def assert_test_is_not_selected(keyword):
742742

743743
assert_test_is_not_selected("__")
744744
assert_test_is_not_selected("()")
745+
746+
747+
@pytest.mark.parametrize('argval, expected', [
748+
(pytest.mark.skip()((1, 2)),
749+
ParameterSet(values=(1, 2), marks=[pytest.mark.skip], id=None)),
750+
(pytest.mark.xfail(pytest.mark.skip()((1, 2))),
751+
ParameterSet(values=(1, 2),
752+
marks=[pytest.mark.xfail, pytest.mark.skip], id=None)),
753+
754+
])
755+
def test_parameterset_extractfrom(argval, expected):
756+
extracted = ParameterSet.extract_from(argval)
757+
assert extracted == expected

0 commit comments

Comments
 (0)