fix addmarker - extract mark from markdecorator
This commit is contained in:
parent
4d0297b413
commit
eb0c6a8287
|
@ -173,10 +173,12 @@ class Node(object):
|
|||
chain.reverse()
|
||||
return chain
|
||||
|
||||
def add_marker(self, marker):
|
||||
def add_marker(self, marker, append=True):
|
||||
"""dynamically add a marker object to the node.
|
||||
|
||||
:type marker: str or pytest.mark.*
|
||||
``append=True`` whether to append the marker,
|
||||
if false insert at position 0
|
||||
"""
|
||||
from _pytest.mark import MarkDecorator, MARK_GEN
|
||||
|
||||
|
@ -185,7 +187,10 @@ class Node(object):
|
|||
elif not isinstance(marker, MarkDecorator):
|
||||
raise ValueError("is not a string or pytest.mark.* Marker")
|
||||
self.keywords[marker.name] = marker
|
||||
self.own_markers.append(marker.mark)
|
||||
if append:
|
||||
self.own_markers.append(marker.mark)
|
||||
else:
|
||||
self.own_markers.insert(0, marker.mark)
|
||||
|
||||
def iter_markers(self, name=None):
|
||||
"""
|
||||
|
|
|
@ -1132,3 +1132,12 @@ def test_addmarker_getmarker():
|
|||
node.add_marker("b")
|
||||
node.get_marker("a").combined
|
||||
node.get_marker("b").combined
|
||||
|
||||
|
||||
def test_addmarker_order():
|
||||
node = Node("Test", config=mock.Mock(), session=mock.Mock(), nodeid="Test")
|
||||
node.add_marker("a")
|
||||
node.add_marker("b")
|
||||
node.add_marker("c", append=False)
|
||||
extracted = [x.name for x in node.iter_markers()]
|
||||
assert extracted == ["c", "a", "b"]
|
||||
|
|
Loading…
Reference in New Issue