chiark / gitweb /
Merge branch 'fix-icon-crash' into 'master'
authorHans-Christoph Steiner <hans@guardianproject.info>
Wed, 4 Apr 2018 17:04:24 +0000 (17:04 +0000)
committerHans-Christoph Steiner <hans@guardianproject.info>
Wed, 4 Apr 2018 17:04:24 +0000 (17:04 +0000)
Fix crash when icon_name is None

See merge request fdroid/fdroidserver!485

fdroidserver/update.py
tests/update.TestCase

index 9c6c21f39f13d92528c23db57ea2271686f4be49..83f069fa461817c0c2f46e9a6d740ee31d9c01f6 100644 (file)
@@ -1086,7 +1086,7 @@ def _get_apk_icons_src(apkfile, icon_name):
 
     """
     icons_src = dict()
-    density_re = re.compile('^res/(.*)/' + icon_name + '\.(png|xml)$')
+    density_re = re.compile('^res/(.*)/{}\.(png|xml)$'.format(icon_name))
     with zipfile.ZipFile(apkfile) as zf:
         for filename in zf.namelist():
             m = density_re.match(filename)
index 03391c181369ed50f3f132aba104ed957e1a4471..9c60adfdb1ef7a0106ee6f75194a47c0f6a979c7 100755 (executable)
@@ -647,6 +647,16 @@ class UpdateTest(unittest.TestCase):
         with self.assertRaises(fdroidserver.exception.FDroidException):
             fdroidserver.update.has_known_vulnerability('janus.apk')
 
+    def test_get_apk_icon_when_src_is_none(self):
+        config = dict()
+        fdroidserver.common.fill_config_defaults(config)
+        fdroidserver.common.config = config
+        fdroidserver.update.config = config
+
+        # pylint: disable=protected-access
+        icons_src = fdroidserver.update._get_apk_icons_src('urzip-release.apk', None)
+        assert icons_src == {}
+
 
 if __name__ == "__main__":
     parser = optparse.OptionParser()