Skip to content

Commit

Permalink
Check for missing versions
Browse files Browse the repository at this point in the history
  • Loading branch information
eivindjahren committed May 3, 2024
1 parent 5418439 commit 50dc1ee
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 0 deletions.
11 changes: 11 additions & 0 deletions komodo/release_cleanup.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,16 @@ def find_unused_versions(used_versions, repository):
return unused_versions


def check_missing_versions(used_versions, repository):
unused_versions = {}
for lib, versions in used_versions.items():
for version in versions:
if lib not in repository or version not in repository[lib]:
raise ValueError(f"Missing used version {lib}=={version}")

return unused_versions


def remove_unused_versions(repository, unused_versions):
for lib, versions in unused_versions.items():
for version in versions:
Expand Down Expand Up @@ -155,6 +165,7 @@ def run_cleanup(args, parser):
release_files = [filename for sublist in args.releases for filename in sublist]
used_versions = load_all_releases(release_files)
unused_versions = find_unused_versions(used_versions, repository)
check_missing_versions(used_versions, repository)

if args.check:
if not unused_versions:
Expand Down
3 changes: 3 additions & 0 deletions tests/data/test_repository.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ lib1:
1.2.3:
source: pypi
make: pip
1.2.4:
source: pypi
make: pip
0.1.2:
source: pypi
make: pip
Expand Down
4 changes: 4 additions & 0 deletions tests/data/test_repository_missing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
lib1:
1.2.4+builtin:
source: pypi
make: sh
16 changes: 16 additions & 0 deletions tests/test_release_cleanup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

from komodo.prettier import prettier
from komodo.release_cleanup import (
check_missing_versions,
find_unused_versions,
load_all_releases,
main,
Expand Down Expand Up @@ -83,6 +84,21 @@ def test_unused_versions():
assert "1.2.3" in unused_versions["lib5"]


def test_missing_versions():
files = [
os.path.join(_get_test_root(), "data/test_releases/2020.01.a1-py27.yml"),
os.path.join(_get_test_root(), "data/test_releases/2020.01.a1-py36.yml"),
os.path.join(_get_test_root(), "data/test_releases/2020.01.a1-py38.yml"),
]
used_versions = load_all_releases(files)

repository = _load_yaml(
os.path.join(_get_test_root(), "data/test_repository_missing.yml")
)
with pytest.raises(ValueError, match="Missing used version"):
check_missing_versions(used_versions, repository)


def test_remove_unused_versions():
files = [
os.path.join(_get_test_root(), "data/test_releases/2020.01.a1-py27.yml"),
Expand Down

0 comments on commit 50dc1ee

Please sign in to comment.