{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/tests\/unit\/application\/test_list_crawls.py",
"content": "from __future__ import annotations\n\nfrom datetime import datetime, timedelta\n\nimport pytest\n\nfrom src.application.use_cases.list_crawls import ListCrawlsUseCase\nfrom src.domain.entities.crawl import Crawl\nfrom src.domain.value_objects.enums import CrawlMode, CrawlStatus, TriggerSource\nfrom tests.unit.application.fakes import FakeCrawlRepo\n\n\ndef _make_crawl(repo: FakeCrawlRepo, started: datetime) -> None:\n repo.save(\n Crawl(\n id=None,\n base_url=\"https:\/\/x\/\",\n mode=CrawlMode.FAST,\n started_at=started,\n finished_at=None,\n status=CrawlStatus.COMPLETED,\n trigger_source=TriggerSource.CLI,\n config={},\n ),\n )\n\n\ndef test_list_returns_newest_first() -> None:\n repo = FakeCrawlRepo()\n t0 = datetime(2026, 1, 1, 0, 0, 0)\n _make_crawl(repo, t0)\n _make_crawl(repo, t0 + timedelta(days=1))\n _make_crawl(repo, t0 + timedelta(days=2))\n\n result = ListCrawlsUseCase(crawls=repo).execute(limit=2)\n\n assert len(result) == 2\n assert result[0].started_at > result[1].started_at\n\n\ndef test_zero_limit_raises() -> None:\n with pytest.raises(ValueError, match=\"limit\"):\n ListCrawlsUseCase(crawls=FakeCrawlRepo()).execute(limit=0)\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/tests\/unit\/application\/test_list_crawls.py",
"content": "from __future__ import annotations\n\nfrom datetime import datetime, timedelta\n\nimport pytest\n\nfrom src.application.use_cases.list_crawls import ListCrawlsUseCase\nfrom src.domain.entities.crawl import Crawl\nfrom src.domain.value_objects.enums import CrawlMode, CrawlStatus, TriggerSource\nfrom tests.unit.application.fakes import FakeCrawlRepo\n\n\ndef _make_crawl(repo: FakeCrawlRepo, started: datetime) -> None:\n repo.save(\n Crawl(\n id=None,\n base_url=\"https:\/\/x\/\",\n mode=CrawlMode.FAST,\n started_at=started,\n finished_at=None,\n status=CrawlStatus.COMPLETED,\n trigger_source=TriggerSource.CLI,\n config={},\n ),\n )\n\n\ndef test_list_returns_newest_first() -> None:\n repo = FakeCrawlRepo()\n t0 = datetime(2026, 1, 1, 0, 0, 0)\n _make_crawl(repo, t0)\n _make_crawl(repo, t0 + timedelta(days=1))\n _make_crawl(repo, t0 + timedelta(days=2))\n\n result = ListCrawlsUseCase(crawls=repo).execute(limit=2)\n\n assert len(result) == 2\n assert result[0].started_at > result[1].started_at\n\n\ndef test_zero_limit_raises() -> None:\n with pytest.raises(ValueError, match=\"limit\"):\n ListCrawlsUseCase(crawls=FakeCrawlRepo()).execute(limit=0)\n",
"structuredPatch": [],
"originalFile": null,
"userModified": false
}
}