mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2026-11-04 11:52:03 +00:00
Merge pull request #958 from PR0M3TH3AN/test-audit-agent-daily-run-15521316835403864428
refactor: improve test determinism by removing time.sleep
This commit is contained in:
9 files changed
+104
-20
No files matched your search
@@ -21,7 +21,7 @@ def test_background_relay_check_runs_async(monkeypatch):
|
||||
)
|
||||
|
||||
pm.start_background_relay_check()
|
||||
time.sleep(0.05)
|
||||
pm._relay_thread.join(timeout=1.0)
|
||||
|
||||
assert called["args"] == MIN_HEALTHY_RELAYS
|
||||
|
||||
@@ -34,7 +34,7 @@ def test_background_relay_check_warns_when_unhealthy(monkeypatch):
|
||||
pm.nostr_client = SimpleNamespace(check_relay_health=lambda mr: mr - 1)
|
||||
|
||||
pm.start_background_relay_check()
|
||||
time.sleep(0.05)
|
||||
pm._relay_thread.join(timeout=1.0)
|
||||
|
||||
note = pm.notifications.get_nowait()
|
||||
assert note.level == "WARNING"
|
||||
|
||||
@@ -84,25 +84,37 @@ def test_nostr_index_size_limits(pytestconfig: pytest.Config):
|
||||
encrypted = vault.get_encrypted_index()
|
||||
payload_size = len(encrypted) if encrypted else 0
|
||||
asyncio.run(client.publish_snapshot(encrypted or b""))
|
||||
time.sleep(delay)
|
||||
result = asyncio.run(client.fetch_latest_snapshot())
|
||||
retrieved = gzip.decompress(b"".join(result[1])) if result else None
|
||||
retrieved_ok = retrieved == encrypted
|
||||
|
||||
async def fetch_with_retry(
|
||||
client, expected_data, timeout, interval=1.0
|
||||
):
|
||||
start_time = time.time()
|
||||
while time.time() - start_time < timeout:
|
||||
result = await client.fetch_latest_snapshot()
|
||||
retrieved = (
|
||||
gzip.decompress(b"".join(result[1])) if result else None
|
||||
)
|
||||
if retrieved == expected_data:
|
||||
return True
|
||||
await asyncio.sleep(interval)
|
||||
return False
|
||||
|
||||
retrieved_ok = asyncio.run(
|
||||
fetch_with_retry(client, encrypted, delay)
|
||||
)
|
||||
|
||||
if not retrieved_ok:
|
||||
print(f"Initial retrieve failed: {client.last_error}")
|
||||
result = asyncio.run(client.fetch_latest_snapshot())
|
||||
retrieved = (
|
||||
gzip.decompress(b"".join(result[1])) if result else None
|
||||
retrieved_ok = asyncio.run(
|
||||
fetch_with_retry(client, encrypted, delay)
|
||||
)
|
||||
retrieved_ok = retrieved == encrypted
|
||||
|
||||
if not retrieved_ok:
|
||||
print("Trying alternate relay")
|
||||
client.update_relays(["wss://relay.damus.io"])
|
||||
result = asyncio.run(client.fetch_latest_snapshot())
|
||||
retrieved = (
|
||||
gzip.decompress(b"".join(result[1])) if result else None
|
||||
retrieved_ok = asyncio.run(
|
||||
fetch_with_retry(client, encrypted, delay)
|
||||
)
|
||||
retrieved_ok = retrieved == encrypted
|
||||
results.append((entry_count, payload_size, True, retrieved_ok))
|
||||
if max_entries is not None:
|
||||
if entry_count >= max_entries:
|
||||
@@ -127,3 +139,5 @@ def test_nostr_index_size_limits(pytestconfig: pytest.Config):
|
||||
|
||||
synced = sum(1 for _, _, pub, ret in results if pub and ret)
|
||||
print(f"Successfully synced entries: {synced}")
|
||||
|
||||
assert len(results) > 0
|
||||
@@ -40,13 +40,21 @@ def test_nostr_sdk_send_receive(tmp_path):
|
||||
thread = threading.Thread(target=run_relay, args=(relay,), daemon=True)
|
||||
thread.start()
|
||||
|
||||
time.sleep(0.5)
|
||||
|
||||
seed = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
|
||||
fingerprint = "test"
|
||||
km = KeyManager(seed, fingerprint)
|
||||
|
||||
ws = create_connection("ws://localhost:8765")
|
||||
# Wait for the relay to be ready
|
||||
ws = None
|
||||
for _ in range(40):
|
||||
try:
|
||||
ws = create_connection("ws://localhost:8765")
|
||||
break
|
||||
except ConnectionRefusedError:
|
||||
time.sleep(0.05)
|
||||
|
||||
if ws is None:
|
||||
raise RuntimeError("Fake relay did not start in time")
|
||||
|
||||
keys = sdk.Keys.parse(km.get_private_key_hex())
|
||||
event = (
|
||||
|
||||
@@ -23,5 +23,4 @@ def test_start_background_sync_offline(monkeypatch):
|
||||
called = {"sync": False}
|
||||
pm.sync_index_from_nostr = lambda: called.__setitem__("sync", True)
|
||||
PasswordManager.start_background_sync(pm)
|
||||
time.sleep(0.05)
|
||||
assert called["sync"] is False
|
||||
@@ -27,7 +27,7 @@ def test_unlock_triggers_sync(monkeypatch, tmp_path):
|
||||
|
||||
pm.unlock_vault("pw")
|
||||
pm.start_background_sync()
|
||||
time.sleep(0.05)
|
||||
pm._sync_task.join(timeout=1.0)
|
||||
pm.cleanup()
|
||||
|
||||
assert called["sync"]
|
||||
|
||||
Reference in new issue
Block a user