Loading .gitlab-ci.yml +1 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ include: - component: "gitlab.com/$TBC_NAMESPACE/python/gitlab-ci-python@7" inputs: image: "registry.hub.docker.com/library/python:3.12-slim" pytest-enabled: true ruff-enabled: true package-enabled: true release-enabled: true Loading sbom_scanner/scan.py +4 −2 Original line number Diff line number Diff line Loading @@ -158,6 +158,7 @@ class Version: for i in range(min(len(self_prerelease), len(other_prerelease))): if self_prerelease[i] != other_prerelease[i]: return 1 if self_prerelease[i] > other_prerelease[i] else -1 if len(self_prerelease) != len(other_prerelease): return 1 if len(self_prerelease) > len(other_prerelease) else -1 elif self.prerelease: return -1 Loading @@ -171,6 +172,7 @@ class Version: for i in range(min(len(self_build), len(other_build))): if self_build[i] != other_build[i]: return 1 if self_build[i] > other_build[i] else -1 if len(self_build) != len(other_build): return 1 if len(self_build) > len(other_build) else -1 elif self.build: return 1 Loading tests/test_version.py 0 → 100644 +78 −0 Original line number Diff line number Diff line import pytest from sbom_scanner.scan import Version def test_parse_simple(): v = Version("1.2.3") assert v.major == 1 assert v.minor == 2 assert v.patch == 3 def test_parse_w_prerelease(): v = Version("1.2.3-beta4") assert v.major == 1 assert v.minor == 2 assert v.patch == 3 assert v.prerelease == "beta4" def test_parse_w_build(): v = Version("1.2.3+linux") assert v.major == 1 assert v.minor == 2 assert v.patch == 3 assert v.build == "linux" def test_parse_w_prerelease_and_build(): v = Version("1.2.3-beta4+linux") assert v.major == 1 assert v.minor == 2 assert v.patch == 3 assert v.prerelease == "beta4" assert v.build == "linux" def test_parse_fail(): with pytest.raises(ValueError): # bad version string Version("not.a.version") def test_lt_1(): v1 = Version("1.2.3") v2 = Version("1.2.4") assert v1 < v2 def test_lt_2(): v1 = Version("1.2.3") v2 = Version("1.3.0") assert v1 < v2 def test_lt_3(): v1 = Version("1.2.3") v2 = Version("2.0.0") assert v1 < v2 def test_lt_4(): v1 = Version("1.2.3-beta1") v2 = Version("1.2.3-beta2") assert v1 < v2 def test_lt_5(): v1 = Version("1.2.3-alpha1") v2 = Version("1.2.3-beta1") assert v1 < v2 def test_eq(): v1 = Version("1.2.3-beta1") v2 = Version("1.2.3-beta1") assert v1._compare(v2) == 0 assert v1 == v2 Loading
.gitlab-ci.yml +1 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ include: - component: "gitlab.com/$TBC_NAMESPACE/python/gitlab-ci-python@7" inputs: image: "registry.hub.docker.com/library/python:3.12-slim" pytest-enabled: true ruff-enabled: true package-enabled: true release-enabled: true Loading
sbom_scanner/scan.py +4 −2 Original line number Diff line number Diff line Loading @@ -158,6 +158,7 @@ class Version: for i in range(min(len(self_prerelease), len(other_prerelease))): if self_prerelease[i] != other_prerelease[i]: return 1 if self_prerelease[i] > other_prerelease[i] else -1 if len(self_prerelease) != len(other_prerelease): return 1 if len(self_prerelease) > len(other_prerelease) else -1 elif self.prerelease: return -1 Loading @@ -171,6 +172,7 @@ class Version: for i in range(min(len(self_build), len(other_build))): if self_build[i] != other_build[i]: return 1 if self_build[i] > other_build[i] else -1 if len(self_build) != len(other_build): return 1 if len(self_build) > len(other_build) else -1 elif self.build: return 1 Loading
tests/test_version.py 0 → 100644 +78 −0 Original line number Diff line number Diff line import pytest from sbom_scanner.scan import Version def test_parse_simple(): v = Version("1.2.3") assert v.major == 1 assert v.minor == 2 assert v.patch == 3 def test_parse_w_prerelease(): v = Version("1.2.3-beta4") assert v.major == 1 assert v.minor == 2 assert v.patch == 3 assert v.prerelease == "beta4" def test_parse_w_build(): v = Version("1.2.3+linux") assert v.major == 1 assert v.minor == 2 assert v.patch == 3 assert v.build == "linux" def test_parse_w_prerelease_and_build(): v = Version("1.2.3-beta4+linux") assert v.major == 1 assert v.minor == 2 assert v.patch == 3 assert v.prerelease == "beta4" assert v.build == "linux" def test_parse_fail(): with pytest.raises(ValueError): # bad version string Version("not.a.version") def test_lt_1(): v1 = Version("1.2.3") v2 = Version("1.2.4") assert v1 < v2 def test_lt_2(): v1 = Version("1.2.3") v2 = Version("1.3.0") assert v1 < v2 def test_lt_3(): v1 = Version("1.2.3") v2 = Version("2.0.0") assert v1 < v2 def test_lt_4(): v1 = Version("1.2.3-beta1") v2 = Version("1.2.3-beta2") assert v1 < v2 def test_lt_5(): v1 = Version("1.2.3-alpha1") v2 = Version("1.2.3-beta1") assert v1 < v2 def test_eq(): v1 = Version("1.2.3-beta1") v2 = Version("1.2.3-beta1") assert v1._compare(v2) == 0 assert v1 == v2