Skip to content

Commit f94ff10

Browse files
authored
Merge pull request #185 from Samk1710/alpine
Add alpine in RANGE_CLASS_BY_SCHEME
2 parents 8fc9f84 + 0c3e200 commit f94ff10

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

src/univers/version_range.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1449,6 +1449,7 @@ def build_range_from_snyk_advisory_string(scheme: str, string: Union[str, List])
14491449
"github": GitHubVersionRange,
14501450
"ebuild": EbuildVersionRange,
14511451
"alpm": ArchLinuxVersionRange,
1452+
"apk": AlpineLinuxVersionRange,
14521453
"nginx": NginxVersionRange,
14531454
"openssl": OpensslVersionRange,
14541455
"mattermost": MattermostVersionRange,

tests/test_version_range.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from univers.version_constraint import VersionConstraint
1414
from univers.version_range import PURL_TYPE_BY_GITLAB_SCHEME
1515
from univers.version_range import RANGE_CLASS_BY_SCHEMES
16+
from univers.version_range import AlpineLinuxVersionRange
1617
from univers.version_range import DatetimeVersionRange
1718
from univers.version_range import IntdotVersionRange
1819
from univers.version_range import InvalidVersionRange
@@ -22,6 +23,7 @@
2223
from univers.version_range import VersionRange
2324
from univers.version_range import build_range_from_snyk_advisory_string
2425
from univers.version_range import from_gitlab_native
26+
from univers.versions import AlpineLinuxVersion
2527
from univers.versions import DatetimeVersion
2628
from univers.versions import IntdotVersion
2729
from univers.versions import LexicographicVersion
@@ -205,6 +207,29 @@ def test_OpensslVersionRange_from_versions():
205207
assert version_range == expected
206208

207209

210+
def test_AlpineLinuxVersionRange_from_versions():
211+
sequence = ["3.18.0", "2.14.9-r1", "3.0.0"]
212+
expected = AlpineLinuxVersionRange(
213+
constraints=(
214+
VersionConstraint(comparator="=", version=AlpineLinuxVersion(string="2.14.9-r1")),
215+
VersionConstraint(comparator="=", version=AlpineLinuxVersion(string="3.0.0")),
216+
VersionConstraint(comparator="=", version=AlpineLinuxVersion(string="3.18.0")),
217+
)
218+
)
219+
version_range = AlpineLinuxVersionRange.from_versions(sequence)
220+
assert version_range == expected
221+
222+
223+
def test_apk_in_RANGE_CLASS_BY_SCHEMES():
224+
assert RANGE_CLASS_BY_SCHEMES["apk"] is AlpineLinuxVersionRange
225+
226+
227+
def test_alpine_version_range_containment():
228+
vr = AlpineLinuxVersionRange.from_string("vers:apk/>=2.14.9-r1|<3.19.0")
229+
assert AlpineLinuxVersion("3.18.0") in vr
230+
assert AlpineLinuxVersion("3.19.0") not in vr
231+
232+
208233
VERSION_RANGE_TESTS_BY_SCHEME = {
209234
"nginx": ["0.8.40+", "0.7.52-0.8.39", "0.9.10", "1.5.0+, 1.4.1+"],
210235
"npm": [
@@ -218,6 +243,7 @@ def test_OpensslVersionRange_from_versions():
218243
],
219244
"openssl": ["1.1.1ak", "1.1.0", "3.0.2", "3.0.1, 0.9.7a", "1.0.2ck, 3.1.2"],
220245
"pypi": [">= 1.0", "<2.1.0", "!=5"],
246+
"apk": ["3.18.0", ">=2.14.9-r1", "<3.19.0"],
221247
}
222248

223249

0 commit comments

Comments
 (0)