def test_extract_version_ignores_uncommon_names(self):
     """Unknown file extension is not included in version."""
     # Bug #412015. If there is no filename extension that Launchpad
     # understands after the version number, we have a dud match.
     version = extract_version('bzr-1.15_beta1.tar.gz.asc')
     self.assertEqual(version, None)
     version = extract_version('bzr-1.15_beta1.tar.7z')
     self.assertEqual(version, None)
     version = extract_version('bzr-1.15_beta1.bckup')
     self.assertEqual(version, None)
 def test_extract_version_name_with_supported_types(self):
     """Verify that the file's mimetype is supported."""
     version = extract_version('emacs-21.10.tar.gz')
     self.assertEqual(version, '21.10')
     version = extract_version('emacs-21.10.tar')
     self.assertEqual(version, '21.10')
     version = extract_version('emacs-21.10.gz')
     self.assertEqual(version, '21.10')
     version = extract_version('emacs-21.10.tar.Z')
     self.assertEqual(version, '21.10')
     version = extract_version('emacs-21.10.tar.bz2')
     self.assertEqual(version, '21.10')
     version = extract_version('emacs-21.10.zip')
     self.assertEqual(version, '21.10')
 def test_extract_version_common_name(self):
     """Verify the common file names."""
     version = extract_version('emacs-21.10.tar.gz')
     self.assertEqual(version, '21.10')
     version = extract_version('emacs-21.10.01.tar.gz')
     self.assertEqual(version, '21.10.01')
     version = extract_version('emacs-21.10.01.2.tar.gz')
     self.assertEqual(version, '21.10.01.2')
     version = extract_version('bzr-1.15rc1.tar.gz')
     self.assertEqual(version, '1.15rc1')
     version = extract_version('bzr-1.15_rc1.tar.gz')
     self.assertEqual(version, '1.15-rc1')
     version = extract_version('bzr-1.15_beta1.tar.gz')
     self.assertEqual(version, '1.15-beta1')
 def test_extract_version_name_with_bad_characters(self):
     """Verify that the file's version is lowercases."""
     version = extract_version('vpnc-0.2-rm+zomb-pre1.tar.gz')
     self.assertEqual(version, '0.2-rm-zomb-pre1')
     version = extract_version('warzone2100-2.0.5_rc1.tar.bz2')
     self.assertEqual(version, '2.0.5-rc1')
 def test_extract_version_name_with_uppercase(self):
     """Verify that the file's version is lowercases."""
     version = extract_version('client-2.4p1A.tar.gz')
     self.assertEqual(version, '2.4p1a')
 def test_extract_version_name_with_flavors(self):
     """Verify that language, processor, and packaging are removed."""
     version = extract_version('furiusisomount-0.8.1.0_de_DE.tar.gz')
     self.assertEqual(version, '0.8.1.0')
     version = extract_version('glow-0.2.0_all.deb')
     self.assertEqual(version, '0.2.0')
     version = extract_version('glow-0.2.1_i386.deb')
     self.assertEqual(version, '0.2.1')
     version = extract_version('ipython-0.8.4.win32-setup.exe')
     self.assertEqual(version, '0.8.4')
     version = extract_version('Bazaar-1.16.1.win32-py2.5.exe')
     self.assertEqual(version, '1.16.1')
     version = extract_version(' Bazaar-1.16.0-OSX10.5.dmg')
     self.assertEqual(version, '1.16.0')
     version = extract_version('Bazaar-1.16.2-OSX10.4-universal-py25.dmg')
     self.assertEqual(version, '1.16.2')
     version = extract_version('Bazaar-1.16.3.exe')
     self.assertEqual(version, '1.16.3')
     version = extract_version('partitionmanager-21-2.noarch.rpm')
     self.assertEqual(version, '21-2')
     version = extract_version('php-fpm-0.6~5.3.1.tar.gz')
     self.assertEqual(version, '0.6')
     version = extract_version('u1f-google-1.2.4.apk')
     self.assertEqual(version, '1.2.4')
 def test_extract_version_debian_name(self):
     """Verify that the debian-style .orig suffix is handled."""
     version = extract_version('emacs-21.10.orig.tar.gz')
     self.assertEqual(version, '21.10')