mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-04 22:40:12 +01:00
Fix bug when scanning invalid APKs and add a test for it
This commit is contained in:
parent
159ca824b7
commit
8f6fa2955d
@ -819,7 +819,7 @@ def scan_apk(apkcache, apkfilename, repodir, knownapks, use_date_from_apk):
|
||||
logging.error("Could not find {0} to remove it".format(apkfile))
|
||||
else:
|
||||
logging.error("Failed to get apk information, skipping " + apkfile)
|
||||
return True
|
||||
return True, None, False
|
||||
for line in p.output.splitlines():
|
||||
if line.startswith("package:"):
|
||||
try:
|
||||
|
@ -130,6 +130,25 @@ class UpdateTest(unittest.TestCase):
|
||||
self.assertIsNone(apk.get('obbMainFile'))
|
||||
self.assertIsNone(apk.get('obbPatchFile'))
|
||||
|
||||
def test_scan_invalid_apk(self):
|
||||
os.chdir(os.path.dirname(__file__))
|
||||
if os.path.basename(os.getcwd()) != 'tests':
|
||||
raise Exception('This test must be run in the "tests/" subdir')
|
||||
|
||||
config = dict()
|
||||
fdroidserver.common.fill_config_defaults(config)
|
||||
fdroidserver.common.config = config
|
||||
fdroidserver.update.config = config
|
||||
fdroidserver.update.options.delete_unknown = False
|
||||
|
||||
knownapks = fdroidserver.common.KnownApks()
|
||||
apk = 'fake.ota.update_1234.zip' # this is not an APK, scanning should fail
|
||||
(skip, apk, cachechanged) = fdroidserver.update.scan_apk({}, apk, 'repo', knownapks, False)
|
||||
|
||||
self.assertTrue(skip)
|
||||
self.assertIsNone(apk)
|
||||
self.assertFalse(cachechanged)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = optparse.OptionParser()
|
||||
|
Loading…
Reference in New Issue
Block a user