From 1804edd0de2f6c0367a86c09dafc11031fa9cbc5 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Thu, 3 Jul 2025 22:05:56 -0400 Subject: [PATCH] Add max-entries option for nostr index size test --- src/tests/conftest.py | 6 ++++++ src/tests/test_nostr_index_size.py | 13 ++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/tests/conftest.py b/src/tests/conftest.py index 80dbacd..4aa4e0d 100644 --- a/src/tests/conftest.py +++ b/src/tests/conftest.py @@ -20,6 +20,12 @@ def pytest_addoption(parser: pytest.Parser) -> None: default=False, help="run desktop-only tests", ) + parser.addoption( + "--max-entries", + type=int, + default=None, + help="maximum entries for nostr index size test", + ) def pytest_configure(config: pytest.Config) -> None: diff --git a/src/tests/test_nostr_index_size.py b/src/tests/test_nostr_index_size.py index cb93229..6709a69 100644 --- a/src/tests/test_nostr_index_size.py +++ b/src/tests/test_nostr_index_size.py @@ -24,7 +24,7 @@ from nostr.client import NostrClient, Kind, KindStandard @pytest.mark.desktop @pytest.mark.network -def test_nostr_index_size_limits(): +def test_nostr_index_size_limits(pytestconfig: pytest.Config): """Manually explore maximum index size for Nostr backups.""" seed = ( "abandon abandon abandon abandon abandon abandon abandon " @@ -47,13 +47,16 @@ def test_nostr_index_size_limits(): entry_mgr = EntryManager(vault, backup_mgr) delay = float(os.getenv("NOSTR_TEST_DELAY", "5")) + max_entries = pytestconfig.getoption("--max-entries") size = 16 batch = 100 entry_count = 0 max_payload = 60 * 1024 try: - while True: + while max_entries is None or entry_count < max_entries: for _ in range(batch): + if max_entries is not None and entry_count >= max_entries: + break entry_mgr.add_entry( website_name=f"site-{entry_count + 1}", length=12, @@ -85,7 +88,11 @@ def test_nostr_index_size_limits(): ) retrieved_ok = retrieved == encrypted results.append((entry_count, payload_size, True, retrieved_ok)) - if not retrieved_ok or payload_size > max_payload: + if ( + not retrieved_ok + or payload_size > max_payload + or (max_entries is not None and entry_count >= max_entries) + ): break size *= 2 except Exception: