|
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