mirror of
https://github.com/esphome/esphome.git
synced 2026-06-24 12:17:23 +00:00
[tests] Mock determine_cpp_unit_tests in clang_tidy_mode tests (#16456)
This commit is contained in:
@@ -1518,6 +1518,7 @@ def test_clang_tidy_mode_full_scan(
|
||||
mock_should_run_clang_tidy: Mock,
|
||||
mock_should_run_clang_format: Mock,
|
||||
mock_should_run_python_linters: Mock,
|
||||
mock_determine_cpp_unit_tests: Mock,
|
||||
mock_changed_files: Mock,
|
||||
capsys: pytest.CaptureFixture[str],
|
||||
monkeypatch: pytest.MonkeyPatch,
|
||||
@@ -1529,6 +1530,9 @@ def test_clang_tidy_mode_full_scan(
|
||||
mock_should_run_clang_tidy.return_value = True
|
||||
mock_should_run_clang_format.return_value = False
|
||||
mock_should_run_python_linters.return_value = False
|
||||
# Without this mock, main() runs the real determine_cpp_unit_tests
|
||||
# which loads the full component graph (~5s import of every component).
|
||||
mock_determine_cpp_unit_tests.return_value = (False, [])
|
||||
|
||||
# Mock changed_files to return no component files
|
||||
mock_changed_files.return_value = []
|
||||
@@ -1584,6 +1588,7 @@ def test_clang_tidy_mode_targeted_scan(
|
||||
mock_should_run_clang_tidy: Mock,
|
||||
mock_should_run_clang_format: Mock,
|
||||
mock_should_run_python_linters: Mock,
|
||||
mock_determine_cpp_unit_tests: Mock,
|
||||
mock_changed_files: Mock,
|
||||
capsys: pytest.CaptureFixture[str],
|
||||
monkeypatch: pytest.MonkeyPatch,
|
||||
@@ -1595,6 +1600,9 @@ def test_clang_tidy_mode_targeted_scan(
|
||||
mock_should_run_clang_tidy.return_value = True
|
||||
mock_should_run_clang_format.return_value = False
|
||||
mock_should_run_python_linters.return_value = False
|
||||
# Without this mock, main() runs the real determine_cpp_unit_tests
|
||||
# which loads the full component graph (~5s import of every component).
|
||||
mock_determine_cpp_unit_tests.return_value = (False, [])
|
||||
|
||||
# Create component names
|
||||
components = [f"comp{i}" for i in range(component_count)]
|
||||
@@ -2651,6 +2659,15 @@ def test_main_force_all_overrides_detection(
|
||||
return_value={"should_run": "false"},
|
||||
),
|
||||
patch.object(determine_jobs, "should_run_benchmarks", return_value=False),
|
||||
# create_intelligent_batches scans every tests/components/<name>/*.yaml
|
||||
# under --force-all (~2500 YAML loads, ~10s in CI). This test only
|
||||
# asserts that main() routes to it and returns non-empty -- the
|
||||
# batching logic itself has its own dedicated tests.
|
||||
patch.object(
|
||||
determine_jobs,
|
||||
"create_intelligent_batches",
|
||||
return_value=([["fake_batch"]], None),
|
||||
),
|
||||
):
|
||||
determine_jobs.main()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user