From 69a0a7da393920df0a5829d8afe5193afeb63dd9 Mon Sep 17 00:00:00 2001 From: Jochen Sprickerhof Date: Wed, 9 Jun 2021 08:19:53 +0200 Subject: [PATCH] [checkupdates] UpdateCheckData warn if file was not found Instead of throwing an exception. --- fdroidserver/checkupdates.py | 20 ++++++++++++++------ tests/checkupdates.TestCase | 5 ++++- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/fdroidserver/checkupdates.py b/fdroidserver/checkupdates.py index cc844ea1..f6e70aae 100644 --- a/fdroidserver/checkupdates.py +++ b/fdroidserver/checkupdates.py @@ -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: diff --git a/tests/checkupdates.TestCase b/tests/checkupdates.TestCase index d8cd1f64..5c5380db 100755 --- a/tests/checkupdates.TestCase +++ b/tests/checkupdates.TestCase @@ -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')