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:
thePR0M3TH3AN
2025-07-13 20:41:22 -04:00
committed by GitHub

View 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