File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -192,17 +192,15 @@ line-ending = "auto"
192192[tool .pytest .ini_options ]
193193pythonpath = [" src" ]
194194markers = [
195- <<<<<<< HEAD
196195 " integration: requires a live Agentspan-compatible server" ,
197196 " e2e: requires a live server and AGENTSPAN_SERVER_URL" ,
198197 " sse: requires SSE streaming (AGENTSPAN_STREAMING_ENABLED=true)" ,
199198 " agent_correctness: marks tests as agent correctness tests" ,
200199 " semantic: marks tests that use an LLM judge for semantic assertions" ,
201- =======
202200 " slow_sync: long-running sync lease-extension tests (~90s)" ,
203201 " slow_async: long-running async lease-extension tests (~90s)" ,
204202 " slow_test_all: long-running aggregate workflow-client test_all (~83s)" ,
205- >>>>>>> 973 c79cf (wip, testing/fixes)
203+ " server_timeout_unreliable: depends on server-side task timeout firing in a bounded window; excluded from CI " ,
206204]
207205
208206[tool .coverage .run ]
Original file line number Diff line number Diff line change 3333# test-all aggregate workflow-client test_all (test_workflow_client_intg.py, ~83s)
3434# all the full suite (no bucket filtering) — for a complete local run
3535#
36+ # The long-* buckets deselect the no-heartbeat test_02 cases (marker
37+ # server_timeout_unreliable): those assert a server-side task timeout that the
38+ # sdkdev server doesn't reliably fire on a CI-bounded timeline. Use --bucket=all
39+ # (or target the test directly) to run them anyway.
40+ #
3641# ./scripts/run_integration_tests.sh # fast: skips slow buckets
3742# ./scripts/run_integration_tests.sh --bucket=long-sync
3843# ./scripts/run_integration_tests.sh --bucket=all # run everything
@@ -113,13 +118,17 @@ case "$bucket" in
113118 # never in scope and perf_ignore is unnecessary here. This also means
114119 # --with-perf has no effect on these buckets; the perf test is only reachable
115120 # via the core/all buckets.
121+ # The no-heartbeat "server should time the task out" cases (test_02) are
122+ # deselected here: the sdkdev server does not reliably time a task out on a
123+ # CI-bounded timeline, so they flake for reasons unrelated to the SDK. They
124+ # carry the server_timeout_unreliable marker and still run under --bucket=all.
116125 long-sync)
117126 targets=(" $LEASE_SYNC " )
118- select=(-m slow_sync)
127+ select=(-m " slow_sync and not server_timeout_unreliable " )
119128 ;;
120129 long-async)
121130 targets=(" $LEASE_ASYNC " )
122- select=(-m slow_async)
131+ select=(-m " slow_async and not server_timeout_unreliable " )
123132 ;;
124133 test-all)
125134 targets=(" $TEST_ALL_FILE " )
Original file line number Diff line number Diff line change @@ -377,6 +377,15 @@ def test_01_async_with_heartbeat_completes(self):
377377 self .assertEqual (task .output_data .get ('slept' ), TASK_SLEEP_SECONDS )
378378 print ("\n PASS: Async task completed with heartbeat keeping lease alive" )
379379
380+ # NOTE: excluded from the long-* CI buckets. This scenario asserts a purely
381+ # server-side mechanic — the server timing out the task's expired lease on
382+ # its own. The sdkdev server does not seem to consistently/reliably time out
383+ # the task by itself on a timeline that works with integration testing, so
384+ # gating CI on it produces flakes unrelated to the SDK. The SDK behaviour
385+ # (heartbeats keeping a task alive) is still covered by test_01.
386+ # Deselected via `-m "... and not server_timeout_unreliable"`; still runs
387+ # under --bucket=all or when targeted directly.
388+ @pytest .mark .server_timeout_unreliable
380389 def test_02_async_without_heartbeat_times_out (self ):
381390 """Async task WITHOUT lease_extend_enabled times out when sleep > responseTimeout."""
382391 print ("\n " + "=" * 80 )
Original file line number Diff line number Diff line change @@ -318,6 +318,15 @@ def test_01_with_heartbeat_completes(self):
318318 finally :
319319 stop_workers ()
320320
321+ # NOTE: excluded from the long-* CI buckets. This scenario asserts a purely
322+ # server-side mechanic — the server timing out the task's expired lease on
323+ # its own. The sdkdev server does not seem to consistently/reliably time out
324+ # the task by itself on a timeline that works with integration testing, so
325+ # gating CI on it produces flakes unrelated to the SDK. The SDK behaviour
326+ # (heartbeats keeping a task alive) is still covered by test_01.
327+ # Deselected via `-m "... and not server_timeout_unreliable"`; still runs
328+ # under --bucket=all or when targeted directly.
329+ @pytest .mark .server_timeout_unreliable
321330 def test_02_without_heartbeat_times_out (self ):
322331 """Task WITHOUT lease_extend_enabled times out when sleep > responseTimeout."""
323332 print ("\n " + "=" * 80 )
You can’t perform that action at this time.
0 commit comments