test__pep440.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from pytest import raises as assert_raises
  2. from scipy._lib._pep440 import Version, parse
  3. def test_main_versions():
  4. assert Version('1.8.0') == Version('1.8.0')
  5. for ver in ['1.9.0', '2.0.0', '1.8.1']:
  6. assert Version('1.8.0') < Version(ver)
  7. for ver in ['1.7.0', '1.7.1', '0.9.9']:
  8. assert Version('1.8.0') > Version(ver)
  9. def test_version_1_point_10():
  10. # regression test for gh-2998.
  11. assert Version('1.9.0') < Version('1.10.0')
  12. assert Version('1.11.0') < Version('1.11.1')
  13. assert Version('1.11.0') == Version('1.11.0')
  14. assert Version('1.99.11') < Version('1.99.12')
  15. def test_alpha_beta_rc():
  16. assert Version('1.8.0rc1') == Version('1.8.0rc1')
  17. for ver in ['1.8.0', '1.8.0rc2']:
  18. assert Version('1.8.0rc1') < Version(ver)
  19. for ver in ['1.8.0a2', '1.8.0b3', '1.7.2rc4']:
  20. assert Version('1.8.0rc1') > Version(ver)
  21. assert Version('1.8.0b1') > Version('1.8.0a2')
  22. def test_dev_version():
  23. assert Version('1.9.0.dev+Unknown') < Version('1.9.0')
  24. for ver in ['1.9.0', '1.9.0a1', '1.9.0b2', '1.9.0b2.dev+ffffffff', '1.9.0.dev1']:
  25. assert Version('1.9.0.dev+f16acvda') < Version(ver)
  26. assert Version('1.9.0.dev+f16acvda') == Version('1.9.0.dev+f16acvda')
  27. def test_dev_a_b_rc_mixed():
  28. assert Version('1.9.0a2.dev+f16acvda') == Version('1.9.0a2.dev+f16acvda')
  29. assert Version('1.9.0a2.dev+6acvda54') < Version('1.9.0a2')
  30. def test_dev0_version():
  31. assert Version('1.9.0.dev0+Unknown') < Version('1.9.0')
  32. for ver in ['1.9.0', '1.9.0a1', '1.9.0b2', '1.9.0b2.dev0+ffffffff']:
  33. assert Version('1.9.0.dev0+f16acvda') < Version(ver)
  34. assert Version('1.9.0.dev0+f16acvda') == Version('1.9.0.dev0+f16acvda')
  35. def test_dev0_a_b_rc_mixed():
  36. assert Version('1.9.0a2.dev0+f16acvda') == Version('1.9.0a2.dev0+f16acvda')
  37. assert Version('1.9.0a2.dev0+6acvda54') < Version('1.9.0a2')
  38. def test_raises():
  39. for ver in ['1,9.0', '1.7.x']:
  40. assert_raises(ValueError, Version, ver)
  41. def test_legacy_version():
  42. # Non-PEP-440 version identifiers always compare less. For NumPy this only
  43. # occurs on dev builds prior to 1.10.0 which are unsupported anyway.
  44. assert parse('invalid') < Version('0.0.0')
  45. assert parse('1.9.0-f16acvda') < Version('1.0.0')