informed-decision/tests/test_dependency_pins.py

16 lines
645 B
Python
Raw Normal View History

"""Prevent a tested dependency and its shipped container pin from diverging."""
from pathlib import Path
import re
import tomllib
def test_container_dependencies_match_project_lock():
root = Path(__file__).resolve().parents[1]
lock = tomllib.loads((root/'uv.lock').read_text())
locked = {p['name'].lower(): p['version'] for p in lock['package']}
requirements = dict(re.findall(r'^([a-zA-Z0-9_-]+)==([^ ;\\\n]+)',
(root/'requirements.lock').read_text(), re.MULTILINE))
assert requirements
for name, version in requirements.items():
assert locked[name.lower()] == version, name