mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-09 15:58:48 +00:00
Merge pull request #519 from PR0M3TH3AN/codex/add-test-for-generate_test_profile_sync
Add generate_test_profile sync test
This commit is contained in:
71
src/tests/test_generate_test_profile_sync.py
Normal file
71
src/tests/test_generate_test_profile_sync.py
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
import importlib
|
||||||
|
import importlib.util
|
||||||
|
from pathlib import Path
|
||||||
|
from tempfile import TemporaryDirectory
|
||||||
|
import asyncio
|
||||||
|
import gzip
|
||||||
|
|
||||||
|
from helpers import dummy_nostr_client
|
||||||
|
|
||||||
|
|
||||||
|
def load_script():
|
||||||
|
script_path = (
|
||||||
|
Path(__file__).resolve().parents[2] / "scripts" / "generate_test_profile.py"
|
||||||
|
)
|
||||||
|
spec = importlib.util.spec_from_file_location("generate_test_profile", script_path)
|
||||||
|
module = importlib.util.module_from_spec(spec)
|
||||||
|
assert spec.loader is not None
|
||||||
|
spec.loader.exec_module(module)
|
||||||
|
return module
|
||||||
|
|
||||||
|
|
||||||
|
def test_generate_test_profile_sync(monkeypatch, dummy_nostr_client):
|
||||||
|
client, _relay = dummy_nostr_client
|
||||||
|
with TemporaryDirectory() as tmpdir:
|
||||||
|
tmp_path = Path(tmpdir)
|
||||||
|
monkeypatch.setattr(Path, "home", lambda: tmp_path)
|
||||||
|
|
||||||
|
constants = importlib.import_module("constants")
|
||||||
|
importlib.reload(constants)
|
||||||
|
gtp = load_script()
|
||||||
|
|
||||||
|
monkeypatch.setattr(gtp, "NostrClient", lambda *a, **k: client)
|
||||||
|
|
||||||
|
seed, entry_mgr, dir_path, fingerprint, cfg_mgr = gtp.initialize_profile("test")
|
||||||
|
gtp.populate(entry_mgr, seed, 5)
|
||||||
|
|
||||||
|
encrypted = entry_mgr.vault.get_encrypted_index()
|
||||||
|
nc = gtp.NostrClient(
|
||||||
|
entry_mgr.vault.encryption_manager,
|
||||||
|
fingerprint,
|
||||||
|
parent_seed=seed,
|
||||||
|
config_manager=cfg_mgr,
|
||||||
|
)
|
||||||
|
asyncio.run(nc.publish_snapshot(encrypted))
|
||||||
|
|
||||||
|
from nostr.client import NostrClient as RealClient
|
||||||
|
|
||||||
|
class DummyKeys:
|
||||||
|
def private_key_hex(self):
|
||||||
|
return "1" * 64
|
||||||
|
|
||||||
|
def public_key_hex(self):
|
||||||
|
return "2" * 64
|
||||||
|
|
||||||
|
class DummyKeyManager:
|
||||||
|
def __init__(self, *a, **k):
|
||||||
|
self.keys = DummyKeys()
|
||||||
|
|
||||||
|
monkeypatch.setattr("nostr.client.KeyManager", DummyKeyManager)
|
||||||
|
client2 = RealClient(
|
||||||
|
entry_mgr.vault.encryption_manager,
|
||||||
|
fingerprint,
|
||||||
|
parent_seed=seed,
|
||||||
|
config_manager=cfg_mgr,
|
||||||
|
)
|
||||||
|
result = asyncio.run(client2.fetch_latest_snapshot())
|
||||||
|
|
||||||
|
assert result is not None
|
||||||
|
_manifest, chunks = result
|
||||||
|
retrieved = gzip.decompress(b"".join(chunks))
|
||||||
|
assert retrieved == encrypted
|
Reference in New Issue
Block a user