Files
seedPass/src/tests/test_password_prompt.py
2025-07-17 10:04:06 -04:00

36 lines
1.2 KiB
Python

import builtins
from itertools import cycle
import pytest
import logging
from utils import password_prompt
def test_prompt_new_password(monkeypatch):
responses = cycle(["goodpass", "goodpass"])
monkeypatch.setattr(password_prompt, "masked_input", lambda prompt: next(responses))
result = password_prompt.prompt_new_password()
assert result == "goodpass"
def test_prompt_new_password_retry(monkeypatch, caplog):
seq = iter(["pass1", "pass2", "passgood", "passgood"])
monkeypatch.setattr(password_prompt, "masked_input", lambda prompt: next(seq))
caplog.set_level(logging.WARNING)
result = password_prompt.prompt_new_password()
assert "User entered a password shorter" in caplog.text
assert result == "passgood"
def test_prompt_existing_password(monkeypatch):
monkeypatch.setattr(password_prompt, "masked_input", lambda prompt: "mypassword")
assert password_prompt.prompt_existing_password() == "mypassword"
def test_confirm_action_yes_no(monkeypatch):
monkeypatch.setattr(builtins, "input", lambda _: "Y")
assert password_prompt.confirm_action()
monkeypatch.setattr(builtins, "input", lambda _: "n")
assert not password_prompt.confirm_action()