test_crawler_state_dto.py
716 Bytes
from __future__ import annotations
from services.shared.dto import CrawlerStateDTO
def test_crawler_state_dto_builds_response_payload():
dto = CrawlerStateDTO(
crawler={"status": "running", "platform": "xiaohongshu"},
login={"active_task": {"running": False}},
storage={"history": [{"id": "crawl-1"}]},
crawler_jobs={"current_job": {"id": "crawl-1"}, "jobs": [{"id": "crawl-1"}]},
)
payload = dto.to_response_payload()
assert payload["crawler"]["status"] == "running"
assert payload["login"]["active_task"]["running"] is False
assert payload["storage"]["history"][0]["id"] == "crawl-1"
assert payload["crawler_jobs"]["current_job"]["id"] == "crawl-1"