pytest-dev / pluggy

A minimalist production ready plugin system
https://pluggy.readthedocs.io/en/latest/
MIT License
1.27k stars 123 forks source link

hook call controller in hook specs #361

Open RonnyPfannschmidt opened 2 years ago

RonnyPfannschmidt commented 2 years ago

currently hook specs just provide the parameters

if it was allowed to have them provide more details, this could be a win

a very initial draft is something like

python

@hookspec
def pytest_something_with_paths(call_config: HookCallConfig, path: Path | None = None, oldpath: py.path.local |None = None ) -> ...
   if path is None and old_path is None:
    rasie TypeError(...)

   return call_config.set_parameters(....)  

i'd love to bikeshed apis a bit

its also a possible replacement to #151

cc @goodboy @nicoddemus @bluetech

nicoddemus commented 2 years ago

if it was allowed to have them provide more details, this could be a win

From the example, "more details" you mean some pre and post code that will be executed before/after the hookimpl?

RonnyPfannschmidt commented 2 years ago

@nicoddemus for now i would like to allow pre actions to enable backward compatible calls,

as for post actions, i'm not sure yet how to properly model those, in particular for historic hooks or different hook callers