Skip to content

Commit 929ef49

Browse files
committed
RHAIENG-308, opendatahub-io#2242: tests(make): enforce version parity validation between imagestream manifests and pylock.toml (opendatahub-io#2254)
1 parent 8e0d33f commit 929ef49

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

tests/test_main.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44
import logging
55
import os
66
import pathlib
7+
import re
78
import shutil
89
import subprocess
910
import tomllib
1011
from typing import TYPE_CHECKING
1112

1213
import packaging.requirements
1314
import packaging.utils
15+
import packaging.version
1416
import pytest
1517
import yaml
1618

@@ -175,11 +177,25 @@ def test_image_pyprojects(subtests: pytest_subtests.plugin.SubTests):
175177
else:
176178
normalized_name = name
177179

180+
# assert on name
181+
178182
resolved = pylock_packages.get(normalized_name, None)
179183
if resolved is None:
180184
with subtests.test(name):
181185
pytest.fail(f"Dependency {name} ({normalized_name=}) is not in pylock.toml ({file=})")
182186

187+
# assert on version
188+
189+
manifest_version = d.get("version")
190+
locked_version = resolved.get("version")
191+
192+
split_manifest_version = re.fullmatch(r"^v?(\d+)\.(\d+)", manifest_version)
193+
assert split_manifest_version is not None, f"{name}: malformed {manifest_version=}"
194+
parsed_locked_version = packaging.version.Version(locked_version)
195+
assert (parsed_locked_version.major, parsed_locked_version.minor) == tuple(
196+
int(v) for v in split_manifest_version.groups()
197+
), f"{name}: manifest declares {manifest_version}, but pylock.toml pins {locked_version}"
198+
183199

184200
def test_files_that_should_be_same_are_same(subtests: pytest_subtests.plugin.SubTests):
185201
file_groups = {

0 commit comments

Comments
 (0)