3 ms·
If for some reason a fixture is misbehaving, it's hard to find what package provides it because I don't explicitly import it. I have to use `pytest --fixtures
by progval 4y ago
If for some reason a fixture is misbehaving, it's hard to find what package provides it because I don't explicitly import it.
I have to use `pytest --fixtures | less` and search for the fixture's name (or `pytest --fixtures | grep -C 50`)
> If you're instantiating the same fixture name across a bunch of different tests
It means I cannot name my fixture `database`, I have to call it `myplugin_database` instead to make sure it won't conflict with other plugins. And tests using this fixture have the long `myplugin_database` as argument.
Python already had namespaces as first-class citizens, it's a shame we have to go back to name prefixes.
- Aperocky 4y ago> I cannot name my fixture `database`, I have to call it `myplugin_database` instead On the subject of implicit vs explicit, `myplugin_database` is unquestionably more explicit.
- Timon3 4y agoI just ran into the fixture problem myself, maybe you can help me understand how I could find this myself. I wanted to integrate pytest-benchmark[1]. Their docs mention fixtures a couple of times, but the examples only show that test functions receive a magic untyped parameter called "benchmark". How would I make my usage more explicit? Can I somehow explicitly import the fixture, or at least type it? [1] https://pytest-benchmark.readthedocs.io/en/latest/index.html https://pytest-benchmark.readthedocs.io/en/latest/index.html
- progval 4y agoI don't think you can do better than make pytest-benchmark a dependency