Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
test_version.py81 linesDownload Raw Back to tests
1"""Tests for distutils.version."""2 3import distutils4from distutils.version import LooseVersion, StrictVersion5 6import pytest7 8 9@pytest.fixture(autouse=True)10def suppress_deprecation():11    with distutils.version.suppress_known_deprecation():12        yield13 14 15class TestVersion:16    def test_prerelease(self):17        version = StrictVersion('1.2.3a1')18        assert version.version == (1, 2, 3)19        assert version.prerelease == ('a', 1)20        assert str(version) == '1.2.3a1'21 22        version = StrictVersion('1.2.0')23        assert str(version) == '1.2'24 25    def test_cmp_strict(self):26        versions = (27            ('1.5.1', '1.5.2b2', -1),28            ('161', '3.10a', ValueError),29            ('8.02', '8.02', 0),30            ('3.4j', '1996.07.12', ValueError),31            ('3.2.pl0', '3.1.1.6', ValueError),32            ('2g6', '11g', ValueError),33            ('0.9', '2.2', -1),34            ('1.2.1', '1.2', 1),35            ('1.1', '1.2.2', -1),36            ('1.2', '1.1', 1),37            ('1.2.1', '1.2.2', -1),38            ('1.2.2', '1.2', 1),39            ('1.2', '1.2.2', -1),40            ('0.4.0', '0.4', 0),41            ('1.13++', '5.5.kw', ValueError),42        )43 44        for v1, v2, wanted in versions:45            try:46                res = StrictVersion(v1)._cmp(StrictVersion(v2))47            except ValueError:48                if wanted is ValueError:49                    continue50                else:51                    raise AssertionError(f"cmp({v1}, {v2}) shouldn't raise ValueError")52            assert res == wanted, f'cmp({v1}, {v2}) should be {wanted}, got {res}'53            res = StrictVersion(v1)._cmp(v2)54            assert res == wanted, f'cmp({v1}, {v2}) should be {wanted}, got {res}'55            res = StrictVersion(v1)._cmp(object())56            assert res is NotImplemented, (57                f'cmp({v1}, {v2}) should be NotImplemented, got {res}'58            )59 60    def test_cmp(self):61        versions = (62            ('1.5.1', '1.5.2b2', -1),63            ('161', '3.10a', 1),64            ('8.02', '8.02', 0),65            ('3.4j', '1996.07.12', -1),66            ('3.2.pl0', '3.1.1.6', 1),67            ('2g6', '11g', -1),68            ('0.960923', '2.2beta29', -1),69            ('1.13++', '5.5.kw', -1),70        )71 72        for v1, v2, wanted in versions:73            res = LooseVersion(v1)._cmp(LooseVersion(v2))74            assert res == wanted, f'cmp({v1}, {v2}) should be {wanted}, got {res}'75            res = LooseVersion(v1)._cmp(v2)76            assert res == wanted, f'cmp({v1}, {v2}) should be {wanted}, got {res}'77            res = LooseVersion(v1)._cmp(object())78            assert res is NotImplemented, (79                f'cmp({v1}, {v2}) should be NotImplemented, got {res}'80            )81 
codekingpro/portable-devtools · Team Ai