fix addmarker - extract mark from markdecorator
This commit is contained in:
		
							parent
							
								
									4d0297b413
								
							
						
					
					
						commit
						eb0c6a8287
					
				|  | @ -173,10 +173,12 @@ class Node(object): | ||||||
|         chain.reverse() |         chain.reverse() | ||||||
|         return chain |         return chain | ||||||
| 
 | 
 | ||||||
|     def add_marker(self, marker): |     def add_marker(self, marker, append=True): | ||||||
|         """dynamically add a marker object to the node. |         """dynamically add a marker object to the node. | ||||||
| 
 | 
 | ||||||
|         :type marker: str or pytest.mark.* |         :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 |         from _pytest.mark import MarkDecorator, MARK_GEN | ||||||
| 
 | 
 | ||||||
|  | @ -185,7 +187,10 @@ class Node(object): | ||||||
|         elif not isinstance(marker, MarkDecorator): |         elif not isinstance(marker, MarkDecorator): | ||||||
|             raise ValueError("is not a string or pytest.mark.* Marker") |             raise ValueError("is not a string or pytest.mark.* Marker") | ||||||
|         self.keywords[marker.name] = marker |         self.keywords[marker.name] = marker | ||||||
|  |         if append: | ||||||
|             self.own_markers.append(marker.mark) |             self.own_markers.append(marker.mark) | ||||||
|  |         else: | ||||||
|  |             self.own_markers.insert(0, marker.mark) | ||||||
| 
 | 
 | ||||||
|     def iter_markers(self, name=None): |     def iter_markers(self, name=None): | ||||||
|         """ |         """ | ||||||
|  |  | ||||||
|  | @ -1132,3 +1132,12 @@ def test_addmarker_getmarker(): | ||||||
|     node.add_marker("b") |     node.add_marker("b") | ||||||
|     node.get_marker("a").combined |     node.get_marker("a").combined | ||||||
|     node.get_marker("b").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