On Fri, Mar 16, 2018 at 2:36 PM Floris Bruynooghe <f...@devork.be> wrote:
> Bruno Oliveira <nicodde...@gmail.com> writes: > > > So the order is important here, and leaving it undefined will require > > people to write this instead: > > > > @pytest.fixture(scope='session', autouse=True) > > def my_setup_logging(log_setup): pass > > > > @pytest.fixture(scope='session', autouse=True) > > def my_db_setup(my_setup_logging ): pass > > > > While it works, it feels like unnecessary boilerplate. > > I'm not sure you finished your example there. I'm actually curious what > you'd do. > I did finish it :) Because `my_db_setup` depends on `my_setup_logging`, this guarantees that they will execute in the correct order. It is a great example, it really stretches the composability of > fixtures. If someone where to ask me this though I think the only thing > I'd come up with is this: > > import db > > @pytest.fixture(scope='session', autouse=True) > def my_db(log_setup): > return db.db_setup() # This needs to do the right thing. > > This is fine if `db_setup` is a fixture which doesn't depend on others, but if `db_setup` depends on other fixtures (say `tmpdir`) then this won't work so well. Cheers, Bruno.
_______________________________________________ pytest-dev mailing list pytest-dev@python.org https://mail.python.org/mailman/listinfo/pytest-dev