Skip to content

Commit cb48287

Browse files
committed
Add changelog and fix tests
1 parent 2aeeeaf commit cb48287

3 files changed

Lines changed: 33 additions & 12 deletions

File tree

code-coverage.datadog.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ gates:
44
- type: total_coverage_percentage
55
config:
66
threshold: 75
7+
notify_only: true
78
services:
89
- '*'
910
- '!openstack'
@@ -14,13 +15,15 @@ gates:
1415
- type: total_coverage_percentage
1516
config:
1617
threshold: 50
18+
notify_only: true
1719
services:
1820
- openstack
1921
- teradata
2022
- tokumx
2123
- type: total_coverage_percentage
2224
config:
2325
threshold: 30
26+
notify_only: true
2427
services:
2528
- snmp
2629
- sap_hana

ddev/changelog.d/23360.fixed

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Migrated 'ddev validate ci` from Codecov to Datadog Code Coverage

ddev/tests/cli/validate/test_ci.py

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

6885
def test_code_coverage_file_missing(ddev, repository, helpers, config_file):

0 commit comments

Comments
 (0)