Another reason in support of a well defined order is because some library authors will create function scoped fixtures that depend on the objects in a session scoped fixture. If those tests do run out of order, tests will break.
On Fri, Mar 16, 2018 at 8:18 AM, Vasily Kuznetsov <[email protected]> wrote: > Hi Bruno, > > Your example is a good argument, I haven't considered third party fixtures > over which the developer of the test suite has less control. I agree that > requiring users to jumps through extra hoops to give third-party fixtures > the desired order is too high of a price to pay for the nudge towards good > style (explicitly declaring dependencies) that we get from undefined order. > > Once we decide to give some guarantees about the order of fixture > execution your new approach certainly makes sense. > > Cheers, > Vasily > > > On Fri, Mar 16, 2018 at 12:34 PM Bruno Oliveira <[email protected]> > wrote: > >> Hi Vasily! >> >> On Fri, Mar 16, 2018 at 7:17 AM Vasily Kuznetsov <[email protected]> >> wrote: >> >>> 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. >>> >> >> Definitely, if a fixture requires something that is done by another >> fixture, then that dependency should be explicitly defined; but the issue >> is more that people expect higher level scoped fixtures to be executed >> first, and when you mix autouse fixtures and usefixtures markers, the order >> is non-intuitive. >> >> >> >>> 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 :). >>> >> >> I wrote an example which demonstrates this in a separate reply to Floris. >> >> Outer scopes running before inner scopes does sound kind of logical but >>> everything running lazily on demand (as it does now) also makes sense. >>> >> >> Just to be clear, in my PR fixtures are still created lazily, it is just >> that we sort them by scope (preserving order) first. >> >> Cheers, >> Bruno. >> > > _______________________________________________ > pytest-dev mailing list > [email protected] > https://mail.python.org/mailman/listinfo/pytest-dev > >
_______________________________________________ pytest-dev mailing list [email protected] https://mail.python.org/mailman/listinfo/pytest-dev
