{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/tests\/unit\/application\/test_start_crawl.py",
"content": "from __future__ import annotations\n\nfrom datetime import datetime\n\nfrom src.application.use_cases.start_crawl import StartCrawlInput, StartCrawlUseCase\nfrom src.domain.services.url_normalizer import UrlNormalizer\nfrom src.domain.value_objects.enums import CrawlMode, CrawlStatus, TriggerSource\nfrom tests.unit.application.fakes import (\n FakeClock,\n FakeCrawlRepo,\n FakeUrlQueue,\n FakeUrlRepo,\n)\n\n\ndef test_start_crawl_persists_running_crawl_and_seeds_queue() -> None:\n crawls = FakeCrawlRepo()\n urls = FakeUrlRepo()\n queue = FakeUrlQueue()\n now = datetime(2026, 4, 21, 12, 0, 0)\n uc = StartCrawlUseCase(\n crawls=crawls,\n urls=urls,\n queue=queue,\n normalizer=UrlNormalizer(),\n clock=FakeClock(now),\n )\n\n crawl = uc.execute(\n StartCrawlInput(\n base_url=\"https:\/\/example.com\/\",\n mode=CrawlMode.FAST,\n trigger_source=TriggerSource.CLI,\n config={\"depth\": 0},\n ),\n )\n\n assert crawl.id == 1\n assert crawl.status is CrawlStatus.RUNNING\n assert crawl.started_at == now\n assert queue.pending_count(crawl.id) == 1\n assert len(urls.by_hash) == 1\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/tests\/unit\/application\/test_start_crawl.py",
"content": "from __future__ import annotations\n\nfrom datetime import datetime\n\nfrom src.application.use_cases.start_crawl import StartCrawlInput, StartCrawlUseCase\nfrom src.domain.services.url_normalizer import UrlNormalizer\nfrom src.domain.value_objects.enums import CrawlMode, CrawlStatus, TriggerSource\nfrom tests.unit.application.fakes import (\n FakeClock,\n FakeCrawlRepo,\n FakeUrlQueue,\n FakeUrlRepo,\n)\n\n\ndef test_start_crawl_persists_running_crawl_and_seeds_queue() -> None:\n crawls = FakeCrawlRepo()\n urls = FakeUrlRepo()\n queue = FakeUrlQueue()\n now = datetime(2026, 4, 21, 12, 0, 0)\n uc = StartCrawlUseCase(\n crawls=crawls,\n urls=urls,\n queue=queue,\n normalizer=UrlNormalizer(),\n clock=FakeClock(now),\n )\n\n crawl = uc.execute(\n StartCrawlInput(\n base_url=\"https:\/\/example.com\/\",\n mode=CrawlMode.FAST,\n trigger_source=TriggerSource.CLI,\n config={\"depth\": 0},\n ),\n )\n\n assert crawl.id == 1\n assert crawl.status is CrawlStatus.RUNNING\n assert crawl.started_at == now\n assert queue.pending_count(crawl.id) == 1\n assert len(urls.by_hash) == 1\n",
"structuredPatch": [],
"originalFile": null,
"userModified": false
}
}