[pytest-dev] marks - proposals for a new api and a path forward

RonnyPfannschmidt opensource at ronnypfannschmidt.de
Fri Aug 25 10:13:16 EDT 2017

Hi everyone,

as far as i am concerned, we cant hope to safe the current mark api,

Node.get_marker is just a hack looking into keywords (which is a legacy
half broken concept and the base of marks on nodes and why they are so

Node.add_markers is just plain wrong, and by plain wrong i mean totally
plain wrong

so in order to move forward, i'd like to leave all those messy pieces in
place and just deprecate them, so we can remove them much later

going forward i'd like to introduce 2 things to nodes

1. a list of their *own* markers, as a subtype of list ensuring mark
decroators are correctly unpacked, that list would be the new per-node api

2. a function to iterate all marks of a node and its parents, optionally
filtered by name,

yielding tuples of (mark, node)

once that is done almost all incorrect mark usages can be fixed
relatively sanely

afterwards going forward i'd like to introduce class based marks,
where instead of using a string and random data, we get to use instances
of clearly defined classes as markers,

going for class based markers has various massive advantages

a) ability to use inheritance when searching
b) name-spacing is solved by python itself

-- Ronny

More information about the pytest-dev mailing list