16 lines
645 B
Python
16 lines
645 B
Python
|
|
"""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
|