Skip to content

Commit b26cdf5

Browse files
committed
Allow for data coming through bit by bit
1 parent 47e1283 commit b26cdf5

3 files changed

Lines changed: 5 additions & 9 deletions

File tree

tests/e2e-tests/api/data/test_get_letter_data.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from lib.fixtures import * # NOSONAR
55
from lib.constants import LETTERS_ENDPOINT
66
from lib.generators import Generators
7+
from lib.letters import get_pending_letter_ids
78
from lib.errorhandler import ErrorHandler
89

910
@pytest.mark.test
@@ -12,10 +13,9 @@
1213
@pytest.mark.prodtest
1314
def test_200_get_letter_status(url, authentication_secret):
1415
headers = Generators.generate_valid_headers(authentication_secret)
15-
get_letter_id = requests.get(f"{url}/{LETTERS_ENDPOINT}/", headers=headers)
16+
ids = get_pending_letter_ids(url, headers, LETTERS_ENDPOINT, limit=1)
1617

17-
letter_id = get_letter_id.json().get("data")[0].get("id")
18-
get_letter_data = requests.get(f"{url}/{LETTERS_ENDPOINT}/{letter_id}/data", headers=headers)
18+
get_letter_data = requests.get(f"{url}/{LETTERS_ENDPOINT}/{ids[0]}/data", headers=headers)
1919

2020
ErrorHandler.handle_retry(get_letter_data)
2121
assert get_letter_data.status_code == 200, f"Response: {get_letter_data.status_code}: {get_letter_data.text}"

tests/e2e-tests/api/letters/conftest.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,5 @@ def seed_letter_test_data():
1010
createTestData() used by the component tests
1111
(tests/config/global-setup.ts). Session-scoped so it runs once per
1212
test session. autouse=True means no test needs to reference it explicitly.
13-
14-
Note: we do not poll the API after seeding here because GET /letters
15-
applies a visibility timeout to every letter it returns, which would
16-
consume letters before the tests can use them. Retry logic for empty
17-
responses is handled within each test instead.
1813
"""
1914
create_test_data(count=10)

tests/e2e-tests/lib/letters.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,13 @@ def get_pending_letter_ids(
6565
for _ in range(retries):
6666
create_test_data(limit)
6767
deadline = time.monotonic() + timeout_s
68+
data = []
6869
while time.monotonic() < deadline:
6970
response = requests.get(
7071
f"{url}/{letters_endpoint}?limit={limit}", headers=headers
7172
)
7273
response.raise_for_status()
73-
data = response.json().get("data", [])
74+
data.extend(response.json().get("data", []))
7475
if len(data) >= limit:
7576
return [item.get("id") for item in data]
7677
time.sleep(interval_s)

0 commit comments

Comments
 (0)