Skip to content

Commit b46bced

Browse files
committed
Add test for source repo validity
1 parent 0cdd86e commit b46bced

1 file changed

Lines changed: 18 additions & 4 deletions

File tree

scripts/validate-source-repos.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ def read_repos_data():
1515
'r') as file:
1616
data = yaml.safe_load(file)
1717
ansible_repositories = data['source_repositories']
18-
19-
return terraform_repositories, ansible_repositories
18+
maintained_releases = data['maintained_releases']
19+
return terraform_repositories, ansible_repositories, maintained_releases
2020

2121

2222
def get_repos_diff(tf_repos, ans_repos):
@@ -65,8 +65,16 @@ def get_mismatched_repos(tf_repos, ans_repos, repos_missing):
6565
return list(set(mismatched_repos).difference(set(repos_missing)))
6666

6767

68+
def validate_source_repositories(source_repos, maintained_releases):
69+
issues = []
70+
for reponame, repodata in source_repos.items():
71+
synced_releases = repodata.get('synced_releases', [])
72+
if not set(synced_releases) <= set(maintained_releases):
73+
issues.append(f"Repo \"{reponame}\" is trying to sync releases that are not maintained: {synced_releases} is not a subset of {maintained_releases}")
74+
return issues
75+
6876
def main():
69-
terraform_repos, ansible_repos = read_repos_data()
77+
terraform_repos, ansible_repos, maintained_releases = read_repos_data()
7078

7179
repos_missing = get_repos_diff(terraform_repos, ansible_repos)
7280

@@ -80,7 +88,13 @@ def main():
8088
'the Ansible source-repositories and the Terraform tfvars: '
8189
f'{mismatched_repos}')
8290

83-
return len(repos_missing) > 0 or len(mismatched_repos) > 0
91+
source_repos_issues = validate_source_repositories(ansible_repos, maintained_releases)
92+
for issue in source_repos_issues:
93+
print(issue)
94+
95+
assert len(repos_missing) == 0
96+
assert len(mismatched_repos) == 0
97+
assert len(source_repos_issues) == 0
8498

8599

86100
if __name__ == "__main__":

0 commit comments

Comments
 (0)