[checkupdates] UpdateCheckData warn if file was not found

Instead of throwing an exception.
This commit is contained in:
Jochen Sprickerhof 2021-06-09 08:19:53 +02:00
parent 2bdd569eb0
commit 69a0a7da39
2 changed files with 18 additions and 7 deletions

View File

@ -162,17 +162,25 @@ def check_tags(app, pattern):
if app.UpdateCheckData:
filecode, codeex, filever, verex = app.UpdateCheckData.split('|')
vercode = None
if filecode:
filecontent = (build_dir / filecode).read_text()
filecode = build_dir / filecode
if not filecode.is_file():
logging.debug("UpdateCheckData file {0} not found in tag {1}".format(filecode, tag))
continue
m = re.search(codeex, filecontent)
if m:
vercode = m.group(1).strip()
filecontent = filecode.read_text()
m = re.search(codeex, filecontent)
if m:
vercode = m.group(1).strip()
version = "??"
if filever:
if filever != '.':
filecontent = (build_dir / filever).read_text()
filever = build_dir / filever
if filever.is_file():
filecontent = filever.read_text()
else:
logging.debug("UpdateCheckData file {0} not found in tag {1}".format(filever, tag))
m = re.search(verex, filecontent)
if m:

View File

@ -212,8 +212,11 @@ class CheckupdatesTest(unittest.TestCase):
vcs.latesttags.return_value = ['1.1.8', '1.1.9']
with mock.patch(
'pathlib.Path.read_text', lambda a: 'v1.1.9\nc10109'
) as _ignored, mock.patch('fdroidserver.common.getvcs', return_value=vcs):
) as _ignored, mock.patch.object(
Path, 'is_file'
) as mock_path, mock.patch('fdroidserver.common.getvcs', return_value=vcs):
_ignored # silence the linters
mock_path.is_file.return_falue = True
vername, vercode, _tag = fdroidserver.checkupdates.check_tags(app, None)
self.assertEqual(vername, '1.1.9')
self.assertEqual(vercode, '10109')