Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from distutils.version import LooseVersion
- from pkg_resources import parse_version
- import unittest
- class TestVersions(unittest.TestCase):
- def test(self):
- messed_versions = [
- '0.3.0',
- '0.2.1',
- '0.2.0',
- '0.0.1',
- '0.2.1-1-gcc85840',
- '0.2.0-1-gffd8d2d',
- '0.0.1-2-g584b83e',
- '0.0.1-1-g24410a9',
- ]
- result = sorted(messed_versions, key=parse_version, reverse=True)
- print("n".join(result))
- sorted_versions = [
- '0.3.0',
- '0.2.1-1-gcc85840',
- '0.2.1',
- '0.2.0-1-gffd8d2d',
- '0.2.0',
- '0.0.1-2-g584b83e',
- '0.0.1-1-g24410a9',
- '0.0.1',
- ]
- self.assertEqual(
- messed_versions,
- sorted_versions
- )
- if __name__ == "__main__":
- unittest.main()
- another_messy_lst = [
- '0.2.1-1-gcc85840',
- '0.2.0',
- '0.3.0',
- 'release-companyC',
- '0.2.0-1-gffd8d2d',
- '0.0.1-2-g584b83e',
- 'release-companyA',
- '0.2.1',
- 'prototype-FooBar',
- '0.0.1',
- '0.0.1-1-g24410a9',
- 'release-companyB',
- ]
- another_sorted_lst = [
- '0.3.0',
- '0.2.1-1-gcc85840',
- '0.2.1',
- '0.2.0-1-gffd8d2d',
- '0.2.0',
- '0.0.1-2-g584b83e',
- '0.0.1-1-g24410a9',
- '0.0.1',
- 'prototype-FooBar',
- 'release-companyA',
- 'release-companyB',
- 'release-companyC',
- ]
Add Comment
Please, Sign In to add comment