File tree Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Original file line number Diff line number Diff line change 44import logging
55import os
66import pathlib
7+ import re
78import shutil
89import subprocess
910import tomllib
1011from typing import TYPE_CHECKING
1112
1213import packaging .requirements
1314import packaging .utils
15+ import packaging .version
1416import pytest
1517import 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
184200def test_files_that_should_be_same_are_same (subtests : pytest_subtests .plugin .SubTests ):
185201 file_groups = {
You can’t perform that action at this time.
0 commit comments