()
| 21 | |
| 22 | @pytest.fixture(autouse=True) |
| 23 | def _clear_singleton_cache() -> Generator[None]: |
| 24 | ReadWriteLock._instances.clear() |
| 25 | yield |
| 26 | for ref in list(ReadWriteLock._instances.valuerefs()): |
| 27 | if (lock := ref()) is not None: # pragma: no cover # cache is normally emptied before teardown |
| 28 | lock.close() |
| 29 | ReadWriteLock._instances.clear() |
| 30 | |
| 31 | |
| 32 | @pytest.fixture |