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 4
4
import logging
5
5
import os
6
6
import pathlib
7
+ import re
7
8
import shutil
8
9
import subprocess
9
10
import tomllib
10
11
from typing import TYPE_CHECKING
11
12
12
13
import packaging .requirements
13
14
import packaging .utils
15
+ import packaging .version
14
16
import pytest
15
17
import yaml
16
18
@@ -175,11 +177,25 @@ def test_image_pyprojects(subtests: pytest_subtests.plugin.SubTests):
175
177
else :
176
178
normalized_name = name
177
179
180
+ # assert on name
181
+
178
182
resolved = pylock_packages .get (normalized_name , None )
179
183
if resolved is None :
180
184
with subtests .test (name ):
181
185
pytest .fail (f"Dependency { name } ({ normalized_name = } ) is not in pylock.toml ({ file = } )" )
182
186
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
+
183
199
184
200
def test_files_that_should_be_same_are_same (subtests : pytest_subtests .plugin .SubTests ):
185
201
file_groups = {
You can’t perform that action at this time.
0 commit comments