@pkw The similarity I see is that Click "magically" uses the option-name to pass the value to the correct arg; pytest "magically" uses the arg-name to call the correct fixture (it's not just for the side-effect: it passes the value returned into your function). Click also depends on "side effects" of the decorators...
Certainly I still agree that pytest's is "more magic", but they're both about convenience (e.g. you could implement Click's to be strictly explicit passing too)