import pytest from pathlib import Path import sys sys.path.append(str(Path(__file__).resolve().parents[1])) from password_manager.password_generation import PasswordGenerator from constants import MIN_PASSWORD_LENGTH class DummyEnc: def derive_seed_from_mnemonic(self, mnemonic): return b"\x00" * 32 class DummyBIP85: def derive_entropy(self, index: int, bytes_len: int, app_no: int = 32) -> bytes: return bytes((index + i) % 256 for i in range(bytes_len)) def make_generator(): pg = PasswordGenerator.__new__(PasswordGenerator) pg.encryption_manager = DummyEnc() pg.bip85 = DummyBIP85() return pg def test_generate_password_too_short_raises(): pg = make_generator() with pytest.raises(ValueError): pg.generate_password(length=MIN_PASSWORD_LENGTH - 1)