1313from univers .version_constraint import VersionConstraint
1414from univers .version_range import PURL_TYPE_BY_GITLAB_SCHEME
1515from univers .version_range import RANGE_CLASS_BY_SCHEMES
16+ from univers .version_range import AlpineLinuxVersionRange
1617from univers .version_range import DatetimeVersionRange
1718from univers .version_range import IntdotVersionRange
1819from univers .version_range import InvalidVersionRange
2223from univers .version_range import VersionRange
2324from univers .version_range import build_range_from_snyk_advisory_string
2425from univers .version_range import from_gitlab_native
26+ from univers .versions import AlpineLinuxVersion
2527from univers .versions import DatetimeVersion
2628from univers .versions import IntdotVersion
2729from 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+
208233VERSION_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