{
"event": "PreToolUse",
"tool_name": "Bash",
"tool_input": {
"command": ".\/venv\/bin\/pytest tests\/unit -q --cov=src --cov-fail-under=85 2>&1 | tail -30",
"description": "Run unit tests with 85% coverage threshold"
}
}
{
"tool_response": {
"stdout": "src\/domain\/services\/__init__.py 4 0 0 0 100%\nsrc\/domain\/services\/link_classifier.py 16 1 4 1 90%\nsrc\/domain\/services\/quality_flag_calculator.py 53 3 26 3 92%\nsrc\/domain\/services\/url_normalizer.py 8 0 0 0 100%\nsrc\/domain\/value_objects\/__init__.py 14 0 0 0 100%\nsrc\/domain\/value_objects\/body_stats.py 16 0 0 0 100%\nsrc\/domain\/value_objects\/enums.py 32 0 0 0 100%\nsrc\/domain\/value_objects\/head_meta.py 19 0 0 0 100%\nsrc\/domain\/value_objects\/hreflang.py 11 0 4 0 100%\nsrc\/domain\/value_objects\/http_response.py 12 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%\nsrc\/infrastructure\/__init__.py 0 0 0 0 100%\nsrc\/infrastructure\/fetchers\/__init__.py 0 0 0 0 100%\nsrc\/infrastructure\/logging\/__init__.py 0 0 0 0 100%\nsrc\/infrastructure\/parsers\/__init__.py 0 0 0 0 100%\nsrc\/infrastructure\/persistence\/__init__.py 0 0 0 0 100%\nsrc\/infrastructure\/queue\/__init__.py 0 0 0 0 100%\nsrc\/infrastructure\/storage\/__init__.py 0 0 0 0 100%\nsrc\/interfaces\/__init__.py 0 0 0 0 100%\nsrc\/interfaces\/cli\/__init__.py 0 0 0 0 100%\n-----------------------------------------------------------------------------------\nTOTAL 520 4 54 4 99%\nRequired test coverage of 85% reached. Total coverage: 98.61%",
"stderr": "",
"interrupted": false,
"isImage": false,
"noOutputExpected": false
}
}