|
| 1 | +from typing import TYPE_CHECKING |
| 2 | + |
| 3 | +from docker_python_nodejs.versions import _latest_patch |
| 4 | + |
| 5 | +if TYPE_CHECKING: |
| 6 | + from docker_python_nodejs.docker_hub import DockerTagDict |
| 7 | + |
| 8 | + |
| 9 | +def _docker_tag(name: str) -> DockerTagDict: |
| 10 | + return { |
| 11 | + "name": name, |
| 12 | + "images": [ |
| 13 | + { |
| 14 | + "architecture": "amd64", |
| 15 | + "features": "", |
| 16 | + "variant": None, |
| 17 | + "digest": "sha256:abc123", |
| 18 | + "os": "linux", |
| 19 | + "os_features": "", |
| 20 | + "os_version": None, |
| 21 | + "size": 123456, |
| 22 | + "status": "active", |
| 23 | + "last_pulled": "2024-01-01T00:00:00Z", |
| 24 | + "last_pushed": "2024-01-01T00:00:00Z", |
| 25 | + }, |
| 26 | + { |
| 27 | + "architecture": "arm64", |
| 28 | + "features": "", |
| 29 | + "variant": None, |
| 30 | + "digest": "sha256:abc123", |
| 31 | + "os": "linux", |
| 32 | + "os_features": "", |
| 33 | + "os_version": None, |
| 34 | + "size": 123456, |
| 35 | + "status": "active", |
| 36 | + "last_pulled": "2024-01-01T00:00:00Z", |
| 37 | + "last_pushed": "2024-01-01T00:00:00Z", |
| 38 | + }, |
| 39 | + ], |
| 40 | + "creator": 123456, |
| 41 | + "id": 1, |
| 42 | + "last_updated": "2024-01-01T00:00:00Z", |
| 43 | + "last_updater": 123456, |
| 44 | + "last_updater_username": "user", |
| 45 | + "repository": 123456, |
| 46 | + "full_size": 123456, |
| 47 | + "v2": True, |
| 48 | + "tag_status": "active", |
| 49 | + "tag_last_pulled": "2024-01-01T00:00:00Z", |
| 50 | + "tag_last_pushed": "2024-01-01T00:00:00Z", |
| 51 | + "media_type": "application/vnd.docker.distribution.manifest.v2+json", |
| 52 | + "content_type": "application/vnd.docker.distribution.manifest.v2+json", |
| 53 | + "digest": "sha256:abc123", |
| 54 | + } |
| 55 | + |
| 56 | + |
| 57 | +def test_latest_patch() -> None: |
| 58 | + tags: list[DockerTagDict] = [ |
| 59 | + _docker_tag("3.19.2-trixie"), |
| 60 | + _docker_tag("3.19.3-trixie"), |
| 61 | + _docker_tag("3.19.0-trixie"), |
| 62 | + ] |
| 63 | + ver = "3.19" |
| 64 | + distro = "trixie" |
| 65 | + assert _latest_patch(tags, ver, distro) == "3.19.3-trixie" |
0 commit comments