diff --git a/tests/conftest.py b/tests/conftest.py index 33c4af9..22eb2bc 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -20,3 +20,25 @@ def load_hate_crack_module(monkeypatch): @pytest.fixture def hc_module(monkeypatch): return load_hate_crack_module(monkeypatch) + + +@pytest.fixture(autouse=True) +def _isolate_notify_state(): + """Reset notify module state between tests. + + ``hate_crack.main`` calls ``notify.init()`` at import time with whatever + ``config.json`` is resolved from the user's environment (e.g. + ``~/.hate_crack/config.json``). If that config has + ``notify_enabled: true``, the per-attack prompt in ``attacks.py`` fires + ``input()`` during tests and blows up capture. Forcing the notify + package back to its disabled-by-default state before every test keeps + the suite hermetic regardless of the developer's local config. + """ + try: + from hate_crack import notify + except ImportError: + yield + return + notify.clear_state_for_tests() + yield + notify.clear_state_for_tests()