Fixtures follow these rules to determine the execution order:
When fixture A depends on fixture B: B is always set up before A and torn down after A. Non-automatic fixtures are executed lazily, only when the test/hook needs them. Test-scoped fixtures are torn down after each test, while worker-scoped fixtures are only torn down when the worker process executing tests is shutdown.