mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-06 21:44:16 +02:00
[arch] fix -> AUR: not checking updates correctly when there are epoch numbers present
This commit is contained in:
@@ -49,6 +49,20 @@ class ArchDataMapper:
|
||||
def check_update(version: str, latest_version: str) -> bool:
|
||||
if version and latest_version:
|
||||
try:
|
||||
ver_epoch, latest_epoch = version.split(':'), latest_version.split(':')
|
||||
|
||||
if len(ver_epoch) > 1 and len(latest_epoch) > 1:
|
||||
parsed_ver_epoch, parsed_latest_epoch = parse_version(ver_epoch[0]), parse_version(latest_epoch[0])
|
||||
|
||||
if parsed_ver_epoch == parsed_latest_epoch:
|
||||
return parse_version(''.join(ver_epoch[1:])) < parse_version(''.join(latest_epoch[1:]))
|
||||
else:
|
||||
return parsed_ver_epoch < parsed_latest_epoch
|
||||
elif len(ver_epoch) > 1 and len(latest_epoch) == 1:
|
||||
return False
|
||||
elif len(ver_epoch) == 1 and len(latest_epoch) > 1:
|
||||
return True
|
||||
else:
|
||||
return parse_version(version) < parse_version(latest_version)
|
||||
except:
|
||||
print('{}Version: {}. Latest version: {}{}'.format(Fore.RED, version, latest_version, Fore.RESET))
|
||||
|
||||
@@ -28,3 +28,18 @@ class ArchDataMapperTest(TestCase):
|
||||
self.assertTrue(ArchDataMapper.check_update('0.9.7.RC-9', '0.9.7.RC-10'))
|
||||
self.assertFalse(ArchDataMapper.check_update('1.1.0.r11.caacf30-1', 'r65.4c7144a-1'))
|
||||
self.assertFalse(ArchDataMapper.check_update('1.2.16.r688.8b2c199-1', 'r2105.e91f0e9-3'))
|
||||
|
||||
def test_check_update__versions_with_epics(self):
|
||||
self.assertTrue(ArchDataMapper.check_update('1.2-1', '1:1.1-1'))
|
||||
self.assertFalse(ArchDataMapper.check_update('1:1.1-1', '1.2-1'))
|
||||
|
||||
self.assertTrue(ArchDataMapper.check_update('1:1.2-1', '2:0.1-1'))
|
||||
self.assertFalse(ArchDataMapper.check_update('2:0.1-1', '1:1.2-1'))
|
||||
|
||||
self.assertTrue(ArchDataMapper.check_update('10:1.1-1', '10:1.2-1'))
|
||||
self.assertFalse(ArchDataMapper.check_update('10:1.2-1', '10:1.2-1'))
|
||||
|
||||
self.assertTrue(ArchDataMapper.check_update('9:1.2-1', '10:0.1-1'))
|
||||
|
||||
self.assertTrue(ArchDataMapper.check_update('9:1.1.1.1-2', '10:0.0'))
|
||||
self.assertFalse(ArchDataMapper.check_update('10:0.0', '9:1.1.1.1-2'))
|
||||
|
||||
Reference in New Issue
Block a user