diff --git a/src/univers/versions.py b/src/univers/versions.py index 1450d03a..eb63e58c 100644 --- a/src/univers/versions.py +++ b/src/univers/versions.py @@ -305,6 +305,9 @@ def is_valid(cls, string): except ValueError: return False + def __str__(self): + return str(self.string) + def __lt__(self, other): return nuget.Version.from_string(self.string) < nuget.Version.from_string(other.string) diff --git a/tests/test_nuget.py b/tests/test_nuget.py index 1d7bebd9..f4b9d2a9 100644 --- a/tests/test_nuget.py +++ b/tests/test_nuget.py @@ -18,7 +18,7 @@ # https://github.com/NuGet/NuGet.Client/blob/dev/test/NuGet.Core.Tests/NuGet.Versioning.Test/VersionComparerTests.cs import unittest -from univers import nuget +from univers.versions import NugetVersion class NuGetTest(unittest.TestCase): @@ -29,7 +29,7 @@ def setUp(self): def check_order(self, comparison, first, second): """Check order.""" - comparison(nuget.Version.from_string(first), nuget.Version.from_string(second)) + comparison(NugetVersion.build_value(first), NugetVersion.build_value(second)) def test_equals(self): """Test version equals.""" diff --git a/tests/test_version_range.py b/tests/test_version_range.py index 4e1b631c..b2a81048 100644 --- a/tests/test_version_range.py +++ b/tests/test_version_range.py @@ -9,6 +9,7 @@ from univers.version_constraint import VersionConstraint from univers.version_range import GemVersionRange +from univers.version_range import NugetVersionRange from univers.version_range import InvalidVersionRange from univers.version_range import PypiVersionRange from univers.version_range import VersionRange @@ -16,6 +17,7 @@ from univers.version_range import NpmVersionRange from univers.version_range import OpensslVersionRange from univers.versions import PypiVersion +from univers.versions import NugetVersion from univers.versions import RubygemsVersion from univers.versions import SemverVersion from univers.versions import OpensslVersion @@ -262,6 +264,18 @@ def test_OpensslVersionRange_from_versions(self): version_range = OpensslVersionRange.from_versions(sequence) assert version_range == expected + def test_nuget_version_range(self): + nuget_range = "[1.0.0, 2.0.0)" + expected = NugetVersionRange( + constraints=( + VersionConstraint(comparator=">=", version=NugetVersion(string="1.0.0")), + VersionConstraint(comparator="<", version=NugetVersion(string="2.0.0")), + ) + ) + version_range = NugetVersionRange.from_native(nuget_range) + assert version_range == expected + assert version_range.to_string() == "vers:nuget/>=1.0.0|<2.0.0" + VERSION_RANGE_TESTS_BY_SCHEME = { "nginx": ["0.8.40+", "0.7.52-0.8.39", "0.9.10", "1.5.0+, 1.4.1+"],