{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/tests\/integration\/infrastructure\/test_crawl_repository.py",
"content": "from __future__ import annotations\n\nfrom datetime import datetime, timedelta\n\nfrom src.domain.entities.crawl import Crawl\nfrom src.domain.value_objects.enums import CrawlMode, CrawlStatus, TriggerSource\nfrom src.infrastructure.persistence.connection import MariaDbConnectionFactory\nfrom src.infrastructure.persistence.crawl_repository import CrawlRepository\n\n\ndef _make(started: datetime) -> Crawl:\n return Crawl(\n id=None,\n base_url=\"https:\/\/campus-am-see.de\/\",\n mode=CrawlMode.FAST,\n started_at=started,\n finished_at=None,\n status=CrawlStatus.RUNNING,\n trigger_source=TriggerSource.CLI,\n config={\"depth\": 0},\n )\n\n\ndef test_save_assigns_id_and_round_trips(\n connection_factory: MariaDbConnectionFactory,\n) -> None:\n repo = CrawlRepository(connection_factory)\n started = datetime(2026, 4, 21, 12, 0, 0)\n saved = repo.save(_make(started))\n assert saved.id is not None\n\n fetched = repo.get(saved.id)\n assert fetched is not None\n assert fetched.base_url == \"https:\/\/campus-am-see.de\/\"\n assert fetched.status is CrawlStatus.RUNNING\n assert fetched.config == {\"depth\": 0}\n\n\ndef test_list_recent_orders_by_started_desc(\n connection_factory: MariaDbConnectionFactory,\n) -> None:\n repo = CrawlRepository(connection_factory)\n t0 = datetime(2026, 4, 21, 12, 0, 0)\n repo.save(_make(t0))\n repo.save(_make(t0 + timedelta(hours=1)))\n\n result = repo.list_recent(limit=5)\n assert len(result) == 2\n assert result[0].started_at > result[1].started_at\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/tests\/integration\/infrastructure\/test_crawl_repository.py",
"content": "from __future__ import annotations\n\nfrom datetime import datetime, timedelta\n\nfrom src.domain.entities.crawl import Crawl\nfrom src.domain.value_objects.enums import CrawlMode, CrawlStatus, TriggerSource\nfrom src.infrastructure.persistence.connection import MariaDbConnectionFactory\nfrom src.infrastructure.persistence.crawl_repository import CrawlRepository\n\n\ndef _make(started: datetime) -> Crawl:\n return Crawl(\n id=None,\n base_url=\"https:\/\/campus-am-see.de\/\",\n mode=CrawlMode.FAST,\n started_at=started,\n finished_at=None,\n status=CrawlStatus.RUNNING,\n trigger_source=TriggerSource.CLI,\n config={\"depth\": 0},\n )\n\n\ndef test_save_assigns_id_and_round_trips(\n connection_factory: MariaDbConnectionFactory,\n) -> None:\n repo = CrawlRepository(connection_factory)\n started = datetime(2026, 4, 21, 12, 0, 0)\n saved = repo.save(_make(started))\n assert saved.id is not None\n\n fetched = repo.get(saved.id)\n assert fetched is not None\n assert fetched.base_url == \"https:\/\/campus-am-see.de\/\"\n assert fetched.status is CrawlStatus.RUNNING\n assert fetched.config == {\"depth\": 0}\n\n\ndef test_list_recent_orders_by_started_desc(\n connection_factory: MariaDbConnectionFactory,\n) -> None:\n repo = CrawlRepository(connection_factory)\n t0 = datetime(2026, 4, 21, 12, 0, 0)\n repo.save(_make(t0))\n repo.save(_make(t0 + timedelta(hours=1)))\n\n result = repo.list_recent(limit=5)\n assert len(result) == 2\n assert result[0].started_at > result[1].started_at\n",
"structuredPatch": [],
"originalFile": null,
"userModified": false
}
}