|
1 | 1 | """ Testing package info |
2 | 2 | """ |
3 | 3 |
|
| 4 | +from packaging.version import Version |
| 5 | + |
4 | 6 | import nibabel as nib |
5 | 7 | from nibabel.pkg_info import cmp_pkg_version |
6 | 8 | from ..info import VERSION |
@@ -30,12 +32,14 @@ def test_fallback_version(): |
30 | 32 | This should only fail if we fail to bump nibabel.info.VERSION immediately |
31 | 33 | after release |
32 | 34 | """ |
| 35 | + ver = Version(nib.__version__) |
| 36 | + fallback = Version(VERSION) |
33 | 37 | assert ( |
| 38 | + # Releases have no local information, archive matches versioneer |
| 39 | + ver.local is None or |
34 | 40 | # dev version should be larger than tag+commit-githash |
35 | | - cmp_pkg_version(VERSION) >= 0 or |
36 | | - # Allow VERSION bump to lag releases by one commit |
37 | | - VERSION == nib.__version__ + 'dev'), \ |
38 | | - "nibabel.info.VERSION does not match current tag information" |
| 41 | + fallback >= ver), \ |
| 42 | + "nibabel.info.VERSION does not match latest tag information" |
39 | 43 |
|
40 | 44 |
|
41 | 45 | def test_cmp_pkg_version(): |
@@ -68,6 +72,10 @@ def test_cmp_pkg_version(): |
68 | 72 | assert_raises(ValueError, cmp_pkg_version, 'foo.2') |
69 | 73 | assert_raises(ValueError, cmp_pkg_version, 'foo.2', '1.0') |
70 | 74 | assert_raises(ValueError, cmp_pkg_version, '1.0', 'foo.2') |
71 | | - assert_raises(ValueError, cmp_pkg_version, '1') |
72 | 75 | assert_raises(ValueError, cmp_pkg_version, 'foo') |
73 | 76 |
|
| 77 | + # Check dev/RC sequence |
| 78 | + seq = ('3.0.0dev', '3.0.0rc1', '3.0.0rc1.post.dev', '3.0.0rc2', '3.0.0rc2.post.dev', '3.0.0') |
| 79 | + for stage1, stage2 in zip(seq[:-1], seq[1:]): |
| 80 | + assert_equal(cmp_pkg_version(stage1, stage2), -1) |
| 81 | + assert_equal(cmp_pkg_version(stage2, stage1), 1) |
0 commit comments