We should provide function scoped by default for correctness, and we can offer fixtures with a different scope if needed. Ideally, it'd look something like this: ```python def s3_server_impl(): yield MockedS3Server() @pytest.fixture(): def s3_server(): yield s3_server_impl() @pytest.fixture(scope="session"): def session_s3_server(): yield s3_server_impl() ... ```