mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-09-30 20:12:21 +02:00
Squash Odysseus development history
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
"""Regression tests for polling endpoints and foreground task interruption."""
|
||||
|
||||
import asyncio
|
||||
import importlib
|
||||
|
||||
|
||||
def _reload_gate():
|
||||
import src.interactive_gate as ig
|
||||
|
||||
importlib.reload(ig)
|
||||
return ig
|
||||
|
||||
|
||||
def test_tasks_runs_recent_is_passive():
|
||||
ig = _reload_gate()
|
||||
|
||||
assert not ig.should_track_interactive_request(
|
||||
"/api/tasks/runs/recent", "GET"
|
||||
)
|
||||
|
||||
|
||||
def test_tasks_runs_recent_does_not_affect_other_task_paths():
|
||||
ig = _reload_gate()
|
||||
|
||||
# A neighboring mutating path must remain interactive.
|
||||
assert ig.should_track_interactive_request(
|
||||
"/api/tasks/runs/recent/something", "POST"
|
||||
)
|
||||
|
||||
|
||||
def test_heartbeat_does_not_stop_background_tasks_when_gate_disabled(monkeypatch):
|
||||
ig = _reload_gate()
|
||||
monkeypatch.setenv("BACKGROUND_TASK_FOREGROUND_GATE", "false")
|
||||
|
||||
stop_calls = []
|
||||
|
||||
async def fake_stop_background_tasks_for_foreground(*, reason):
|
||||
stop_calls.append(reason)
|
||||
|
||||
result = asyncio.run(
|
||||
ig.maybe_stop_background_tasks_for_heartbeat(
|
||||
fake_stop_background_tasks_for_foreground
|
||||
)
|
||||
)
|
||||
|
||||
assert result is False
|
||||
assert stop_calls == []
|
||||
|
||||
|
||||
def test_heartbeat_stops_background_tasks_when_gate_enabled(monkeypatch):
|
||||
ig = _reload_gate()
|
||||
monkeypatch.delenv("BACKGROUND_TASK_FOREGROUND_GATE", raising=False)
|
||||
|
||||
stop_calls = []
|
||||
|
||||
async def fake_stop_background_tasks_for_foreground(*, reason):
|
||||
stop_calls.append(reason)
|
||||
|
||||
result = asyncio.run(
|
||||
ig.maybe_stop_background_tasks_for_heartbeat(
|
||||
fake_stop_background_tasks_for_foreground
|
||||
)
|
||||
)
|
||||
|
||||
assert result is True
|
||||
assert stop_calls == ["browser heartbeat"]
|
||||
Reference in New Issue
Block a user