Skip to content

Commit fc6ed66

Browse files
test: assert provider proof without mutating page objects
1 parent c4cb344 commit fc6ed66

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

tests/test_completeness_engine.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ def test_structural_lower_boundary_requires_observation_coverage(self):
109109

110110
def test_provider_structure_ignores_pinned_boundary_and_proves_ordered_normal_boundary(self):
111111
from app.phase3_recovery import _provider_page
112+
from app.completeness_provider_proof import _timeline_structure
112113

113114
payload = {
114115
"data": {
@@ -152,10 +153,11 @@ async def stream(*args, **kwargs):
152153
finally:
153154
active_evidence.reset(token)
154155

156+
_, ordered_ids, pinned_ids, _ = _timeline_structure(payload)
155157
self.assertTrue(page.valid_response)
156158
self.assertFalse(page.exhausted)
157-
self.assertEqual(page.ordered_tweet_ids, ("30", "20"))
158-
self.assertEqual(page.pinned_tweet_ids, frozenset({"10"}))
159+
self.assertEqual(ordered_ids, ["30", "20"])
160+
self.assertEqual(pinned_ids, {"10"})
159161
self.assertTrue(evidence.lower_boundary_proven)
160162
self.assertEqual(evidence.expected_window_ids, {"30"})
161163

@@ -263,6 +265,7 @@ def test_provider_error_or_missing_response_is_not_terminal_proof(self):
263265
(None, False),
264266
({"errors": [{"message": "unavailable"}]}, False),
265267
({"data": {}}, False),
268+
({"data": {"timeline": {"instructions": [{"type": "TimelinePinEntry", "entry": {"entryId": "tweet-1"}}]}}}, False),
266269
({"data": {"timeline": {"instructions": [{"type": "TimelineAddEntries", "entries": []}]}}}, True),
267270
({"data": {"timeline": {"instructions": [{"type": "TimelineTerminateTimeline", "direction": "Bottom"}]}}}, True),
268271
]:

0 commit comments

Comments
 (0)