I very much agree with Floris that if you need fixture A to run before fixture B and otherwise things break, this is called "dependency" and it's better if it's explicitly declared. I can't easily imagine a situation where declaring dependencies would be too much work or not desirable for some other reason but maybe it's just my imagination not being good enough :).
Outer scopes running before inner scopes does sound kind of logical but everything running lazily on demand (as it does now) also makes sense. If asked to choose, I'd probably leave the order unspecified to help people not forget to declare their dependencies and to have more flexibility of implementation. Maybe this should be addressed with documentation instead. Cheers, Vasily On Fri, Mar 16, 2018 at 9:46 AM Floris Bruynooghe <f...@devork.be> wrote: > Brian Okken <variedthoug...@gmail.com> writes: > > I get numerous questions about it, and I always tell people to create > > artificial dependencies between fixtures that need to run in a certain > > order. > > I'm not sure I follow why you consider them to be *artificial* > dependencies. If a function-scoped fixture depends on anything of a > session-scoped fixture, surely you'd rather have the dependency > explicitly in your face rather then it slipping past by luck? > > > The general mental model that people have for fixtures is that they are > run > > in scope order. > > I think the current behavior of file order overriding scope order is > insane > > and a bug. > > My general mental model of fixtures is that they are as lazy as > possible. This is probably also somewhat incorrect. > _______________________________________________ > pytest-dev mailing list > pytest-dev@python.org > https://mail.python.org/mailman/listinfo/pytest-dev >
_______________________________________________ pytest-dev mailing list pytest-dev@python.org https://mail.python.org/mailman/listinfo/pytest-dev