mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-08 23:38:49 +00:00
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:
@@ -687,9 +687,13 @@ class PasswordManager:
|
|||||||
password,
|
password,
|
||||||
self.encryption_mode,
|
self.encryption_mode,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Re-initialize EncryptionManager with the new key and fingerprint_dir
|
# Re-initialize EncryptionManager with the new key and fingerprint_dir
|
||||||
self.encryption_manager = EncryptionManager(key, 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
|
# Store the hashed password
|
||||||
self.store_hashed_password(password)
|
self.store_hashed_password(password)
|
||||||
logging.info("User password hashed and stored successfully.")
|
logging.info("User password hashed and stored successfully.")
|
||||||
|
33
src/tests/test_vault_initialization.py
Normal file
33
src/tests/test_vault_initialization.py
Normal 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
|
Reference in New Issue
Block a user