{
"event": "PreToolUse",
"tool_name": "Bash",
"tool_input": {
"command": ".\/venv\/bin\/pytest tests\/unit\/domain -q --cov=src\/domain --cov-report=term-missing 2>&1 | tail -50",
"description": "Coverage report for domain layer"
}
}
{
"tool_response": {
"stdout": "src\/domain\/entities\/crawl.py 25 0 4 0 100%\nsrc\/domain\/entities\/crawl_error.py 11 0 0 0 100%\nsrc\/domain\/entities\/external_check.py 13 0 0 0 100%\nsrc\/domain\/entities\/image.py 18 0 0 0 100%\nsrc\/domain\/entities\/js_error.py 12 0 0 0 100%\nsrc\/domain\/entities\/link.py 22 0 2 0 100%\nsrc\/domain\/entities\/page.py 27 0 0 0 100%\nsrc\/domain\/entities\/resource.py 12 0 0 0 100%\nsrc\/domain\/entities\/structured_data_item.py 11 0 0 0 100%\nsrc\/domain\/entities\/url.py 14 2 2 0 75% 18-19\nsrc\/domain\/ports\/__init__.py 20 20 0 0 0% 1-21\nsrc\/domain\/ports\/browser_fetcher_port.py 20 20 0 0 0% 1-26\nsrc\/domain\/ports\/crawl_error_repository_port.py 4 4 0 0 0% 1-8\nsrc\/domain\/ports\/crawl_repository_port.py 4 4 0 0 0% 1-8\nsrc\/domain\/ports\/external_check_repository_port.py 4 4 0 0 0% 1-8\nsrc\/domain\/ports\/file_storage_port.py 3 3 0 0 0% 1-6\nsrc\/domain\/ports\/hreflang_repository_port.py 5 5 0 0 0% 1-9\nsrc\/domain\/ports\/html_parser_port.py 19 19 0 0 0% 1-25\nsrc\/domain\/ports\/http_fetcher_port.py 16 16 0 0 0% 1-22\nsrc\/domain\/ports\/image_repository_port.py 5 5 0 0 0% 1-9\nsrc\/domain\/ports\/js_error_repository_port.py 5 5 0 0 0% 1-9\nsrc\/domain\/ports\/link_repository_port.py 5 5 0 0 0% 1-9\nsrc\/domain\/ports\/logger_port.py 3 3 0 0 0% 1-6\nsrc\/domain\/ports\/page_header_repository_port.py 4 4 0 0 0% 1-7\nsrc\/domain\/ports\/page_repository_port.py 4 4 0 0 0% 1-8\nsrc\/domain\/ports\/resource_repository_port.py 5 5 0 0 0% 1-9\nsrc\/domain\/ports\/structured_data_parser_port.py 6 6 0 0 0% 1-11\nsrc\/domain\/ports\/structured_data_repository_port.py 5 5 0 0 0% 1-9\nsrc\/domain\/ports\/url_queue_port.py 4 4 0 0 0% 1-8\nsrc\/domain\/ports\/url_repository_port.py 5 5 0 0 0% 1-9\nsrc\/domain\/services\/__init__.py 4 0 0 0 100%\nsrc\/domain\/services\/link_classifier.py 16 1 4 1 90% 16\nsrc\/domain\/services\/quality_flag_calculator.py 62 3 26 3 93% 48, 56, 86\nsrc\/domain\/services\/url_normalizer.py 8 1 0 0 88% 13\nsrc\/domain\/value_objects\/__init__.py 14 0 0 0 100%\nsrc\/domain\/value_objects\/body_stats.py 18 2 0 0 89% 19, 23\nsrc\/domain\/value_objects\/enums.py 32 0 0 0 100%\nsrc\/domain\/value_objects\/head_meta.py 19 2 0 0 89% 21, 25\nsrc\/domain\/value_objects\/hreflang.py 11 4 4 0 47% 12-15\nsrc\/domain\/value_objects\/http_response.py 13 0 0 0 100%\nsrc\/domain\/value_objects\/http_status.py 28 0 2 0 100%\nsrc\/domain\/value_objects\/meta_robots.py 20 0 2 0 100%\nsrc\/domain\/value_objects\/normalized_url.py 50 0 8 0 100%\nsrc\/domain\/value_objects\/open_graph_meta.py 11 0 0 0 100%\nsrc\/domain\/value_objects\/performance_metrics.py 9 0 0 0 100%\nsrc\/domain\/value_objects\/quality_flag.py 28 0 0 0 100%\nsrc\/domain\/value_objects\/storage_paths.py 6 0 0 0 100%\nsrc\/domain\/value_objects\/twitter_meta.py 8 0 0 0 100%\n-------------------------------------------------------------------------------------------------\nTOTAL 679 161 54 4 77%",
"stderr": "",
"interrupted": false,
"isImage": false,
"noOutputExpected": false
}
}