@@ -30,8 +30,7 @@ def test_validate_ci_success(ddev, helpers):
3030 )
3131
3232
33- def test_code_coverage_missing_services (ddev , repository , helpers ):
34- config_path = repository .path / 'code-coverage.datadog.yml'
33+ def _remove_service (config_path ):
3534 with config_path .open (encoding = 'utf-8' ) as f :
3635 config = yaml .safe_load (f )
3736
@@ -40,14 +39,8 @@ def test_code_coverage_missing_services(ddev, repository, helpers):
4039 with config_path .open (mode = 'w' , encoding = 'utf-8' ) as f :
4140 yaml .safe_dump (config , f , default_flow_style = False , sort_keys = False )
4241
43- result = ddev ("validate" , "ci" )
44- assert result .exit_code == 1 , result .output
45- error = "missing service"
46- assert error in helpers .remove_trailing_spaces (result .output )
47-
4842
49- def test_code_coverage_incorrect_paths (ddev , repository , helpers ):
50- config_path = repository .path / 'code-coverage.datadog.yml'
43+ def _set_wrong_paths (config_path ):
5144 with config_path .open (encoding = 'utf-8' ) as f :
5245 config = yaml .safe_load (f )
5346
@@ -59,10 +52,34 @@ def test_code_coverage_incorrect_paths(ddev, repository, helpers):
5952 with config_path .open (mode = 'w' , encoding = 'utf-8' ) as f :
6053 yaml .safe_dump (config , f , default_flow_style = False , sort_keys = False )
6154
55+
56+ @pytest .mark .parametrize (
57+ 'corrupt_config, expected_error' ,
58+ [
59+ pytest .param (_remove_service , "missing service" , id = 'missing_services' ),
60+ pytest .param (
61+ _set_wrong_paths ,
62+ "Service `active_directory` has incorrect coverage source paths" ,
63+ id = 'incorrect_paths' ,
64+ ),
65+ ],
66+ )
67+ def test_code_coverage_config (ddev , repository , helpers , corrupt_config , expected_error ):
68+ result = ddev ("validate" , "ci" , "--sync" )
69+ assert result .exit_code == 0 , result .output
70+
71+ config_path = repository .path / 'code-coverage.datadog.yml'
72+ corrupt_config (config_path )
73+
6274 result = ddev ("validate" , "ci" )
63- assert result .exit_code == 1 , result .output
64- error = "Service `active_directory` has incorrect coverage source paths"
65- assert error in helpers .remove_trailing_spaces (result .output )
75+ assert result .exit_code == 1 , f"Expected validation to detect corrupted config: { result .output } "
76+ assert expected_error in helpers .remove_trailing_spaces (result .output )
77+
78+ result = ddev ("validate" , "ci" , "--sync" )
79+ assert result .exit_code == 0 , f"Expected --sync to fix corrupted config: { result .output } "
80+
81+ result = ddev ("validate" , "ci" )
82+ assert result .exit_code == 0 , f"Expected validation to pass after sync: { result .output } "
6683
6784
6885def test_code_coverage_file_missing (ddev , repository , helpers , config_file ):
0 commit comments