Skip to content

Commit 83e4fa6

Browse files
authored
Merge pull request #28 from nexB/from_spec_native_test
Add tests to check from_string & from_spec equality
2 parents 26308b1 + 3b9988d commit 83e4fa6

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

tests/test_version_range.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
# Visit https://aboutcode.org and https://github.com/nexB/univers for support and download.
66

77
from unittest import TestCase
8+
import pytest
89

910
from univers.version_constraint import VersionConstraint
1011
from univers.version_range import GemVersionRange
1112
from univers.version_range import PypiVersionRange
1213
from univers.version_range import VersionRange
14+
from univers.version_range import RANGE_CLASS_BY_SCHEMES
1315
from univers.versions import PypiVersion
1416
from univers.versions import RubygemsVersion
1517

@@ -189,3 +191,30 @@ def test_VersionRange_contains_works_for_star_range(self):
189191
from univers.versions import SemverVersion
190192

191193
SemverVersion("1.0.0") in VersionRange.from_string("vers:nginx/*")
194+
195+
196+
VERSION_RANGE_TESTS_BY_SCHEME = {
197+
"nginx": ["0.8.40+", "0.7.52-0.8.39", "0.9.10", "1.5.0+, 1.4.1+"],
198+
}
199+
200+
201+
@pytest.mark.xfail(reason="Not all schemes are implemented yet")
202+
def test_all_schemes_are_tested_for_round_tripping():
203+
untested_schemes = []
204+
for scheme in RANGE_CLASS_BY_SCHEMES:
205+
if scheme not in VERSION_RANGE_TESTS_BY_SCHEME:
206+
untested_schemes.append(scheme)
207+
assert not untested_schemes
208+
209+
210+
@pytest.mark.parametrize(
211+
"scheme, native_ranges",
212+
VERSION_RANGE_TESTS_BY_SCHEME.items(),
213+
)
214+
def test_from_native_and_from_string_round_trip(scheme, native_ranges):
215+
216+
range_class = RANGE_CLASS_BY_SCHEMES[scheme]
217+
for rng in native_ranges:
218+
from_native = range_class.from_native(rng)
219+
from_string = range_class.from_string(from_native.to_string())
220+
assert from_native == from_string

0 commit comments

Comments
 (0)