From d6794bf892ceaaa39dd221269fad65dffa2b117f Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 08:56:53 +0000 Subject: [PATCH] Fix infinite loop in profile management test - Mock `utils.password_prompt.confirm_action` explicitly in `src/tests/test_profile_management.py` to prevent infinite recursion during `manager_module` reload. - Use an iterator for `builtins.input` mock to prevent infinite loops if logic fails. - Fixes CI timeout and crash on Windows caused by `confirm_action` repeatedly asking for input. Co-authored-by: PR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> --- src/tests/test_profile_management.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/tests/test_profile_management.py b/src/tests/test_profile_management.py index e5169a4a..52c7c0e0 100644 --- a/src/tests/test_profile_management.py +++ b/src/tests/test_profile_management.py @@ -10,6 +10,7 @@ sys.path.append(str(Path(__file__).resolve().parents[1])) from utils.fingerprint_manager import FingerprintManager +import utils.password_prompt import constants import seedpass.core.manager as manager_module from seedpass.core.vault import Vault @@ -40,8 +41,16 @@ def test_add_and_delete_entry(monkeypatch): monkeypatch.setattr( manager_module.PasswordManager, "generate_bip85_seed", lambda self: seed ) + # Mock confirm_action in both locations to be safe against reload issues monkeypatch.setattr(manager_module, "confirm_action", lambda *_a, **_k: True) - monkeypatch.setattr("builtins.input", lambda *_a, **_k: "3") + monkeypatch.setattr(utils.password_prompt, "confirm_action", lambda *_a, **_k: True) + + # Use an iterator for input to prevent infinite loops if logic fails + # Expectation: + # 1. "3" for add_new_fingerprint choice + # 2. (confirm_action shouldn't ask input if mocked) + input_values = iter(["3", "3", "3", "3", "3"]) # Buffer for safety + monkeypatch.setattr("builtins.input", lambda *_a, **_k: next(input_values)) pm.add_new_fingerprint()