Merge pull request #90 from PR0M3TH3AN/codex/fix-password-generation-error-and-add-test

Fix vault initialization when creating new seed
This commit is contained in:
thePR0M3TH3AN
2025-07-01 12:40:24 -04:00
committed by GitHub
2 changed files with 37 additions and 0 deletions

View File

@@ -687,9 +687,13 @@ class PasswordManager:
password,
self.encryption_mode,
)
# Re-initialize EncryptionManager with the new key and fingerprint_dir
self.encryption_manager = EncryptionManager(key, fingerprint_dir)
# Initialize the vault now that encryption manager is available
self.vault = Vault(self.encryption_manager, fingerprint_dir)
# Store the hashed password
self.store_hashed_password(password)
logging.info("User password hashed and stored successfully.")

View File

@@ -0,0 +1,33 @@
import sys
from pathlib import Path
from tempfile import TemporaryDirectory
from unittest.mock import patch
sys.path.append(str(Path(__file__).resolve().parents[1]))
from password_manager.manager import PasswordManager, EncryptionMode
from password_manager.vault import Vault
VALID_SEED = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
def test_save_and_encrypt_seed_initializes_vault(monkeypatch):
with TemporaryDirectory() as tmpdir:
tmp_path = Path(tmpdir)
pm = PasswordManager.__new__(PasswordManager)
pm.encryption_mode = EncryptionMode.SEED_ONLY
pm.vault = None
pm.config_manager = None
pm.current_fingerprint = "fp"
monkeypatch.setattr(
"password_manager.manager.prompt_for_password", lambda: "pw"
)
monkeypatch.setattr(
"password_manager.manager.NostrClient", lambda *a, **kw: object()
)
pm.save_and_encrypt_seed(VALID_SEED, tmp_path)
assert isinstance(pm.vault, Vault)
assert pm.entry_manager is not None