1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-07-07 01:40:10 +02:00

checkupdates: split out vercode parsing into testable function

This commit is contained in:
Hans-Christoph Steiner 2019-12-03 23:51:48 +01:00
parent bbee2cf707
commit 7d40e89341
No known key found for this signature in database
GPG Key ID: 3E177817BA1B9BFA
3 changed files with 18 additions and 9 deletions

View File

@ -168,15 +168,8 @@ def check_tags(app, pattern):
if vercode:
logging.debug("Manifest exists in subdir '{0}'. Found version {1} ({2})"
.format(subdir, version, vercode))
try:
i_vercode = int(vercode, 0)
except ValueError:
i_vercode = int(vercode)
try:
i_hcode = int(hcode, 0)
except ValueError:
i_hcode = int(hcode)
if i_vercode > i_hcode:
i_vercode = common.version_code_string_to_int(vercode)
if i_vercode > common.version_code_string_to_int(hcode):
hpak = package
htag = tag
hcode = str(i_vercode)

View File

@ -3224,6 +3224,14 @@ def string_is_integer(string):
return False
def version_code_string_to_int(vercode):
"""Convert an version code string of any base into an int"""
try:
return int(vercode, 0)
except ValueError:
return int(vercode)
def local_rsync(options, fromdir, todir):
'''Rsync method for local to local copying of things

View File

@ -1084,6 +1084,14 @@ class CommonTest(unittest.TestCase):
self.assertFalse(fdroidserver.common.string_is_integer('01g'))
self.assertFalse(fdroidserver.common.string_is_integer('o123'))
def test_version_code_string_to_int(self):
self.assertEqual(16, fdroidserver.common.version_code_string_to_int('0x10'))
self.assertEqual(198712389, fdroidserver.common.version_code_string_to_int('198712389'))
self.assertEqual(8, fdroidserver.common.version_code_string_to_int('0o10'))
self.assertEqual(10, fdroidserver.common.version_code_string_to_int('010'))
self.assertEqual(123, fdroidserver.common.version_code_string_to_int('0000123'))
self.assertEqual(-42, fdroidserver.common.version_code_string_to_int('-42'))
if __name__ == "__main__":
os.chdir(os.path.dirname(__file__))