# files generated by tests
tmp/
+tests/repo/icons*
logging.error(line.replace('sdkVersion:', '')
+ ' is not a valid minSdkVersion!')
else:
- apk['sdkversion'] = m.group(1)
+ apk['minSdkVersion'] = m.group(1)
+ # if target not set, default to min
+ if 'targetSdkVersion' not in apk:
+ apk['targetSdkVersion'] = m.group(1)
+ elif line.startswith("targetSdkVersion:"):
+ m = re.match(sdkversion_pat, line)
+ if m is None:
+ logging.error(line.replace('targetSdkVersion:', '')
+ + ' is not a valid targetSdkVersion!')
+ else:
+ apk['targetSdkVersion'] = m.group(1)
elif line.startswith("maxSdkVersion:"):
- apk['maxsdkversion'] = re.match(sdkversion_pat, line).group(1)
+ apk['maxSdkVersion'] = re.match(sdkversion_pat, line).group(1)
elif line.startswith("native-code:"):
apk['nativecode'] = []
for arch in line[13:].split(' '):
perm = perm[16:]
apk['features'].add(perm)
- if 'sdkversion' not in apk:
+ if 'minSdkVersion' not in apk:
logging.warn("No SDK version information found in {0}".format(apkfile))
- apk['sdkversion'] = 0
+ apk['minSdkVersion'] = 1
# Check for debuggable apks...
if common.isApkDebuggable(apkfile, config):
for mirror in config.get('mirrors', []):
addElement('mirror', urllib.parse.urljoin(mirror, urlbasepath), doc, repoel)
- repoel.setAttribute("version", "15")
+ repoel.setAttribute("version", "16")
repoel.setAttribute("timestamp", str(int(time.time())))
nosigningkey = False
apkel.appendChild(hashel)
addElement('sig', apk['sig'], doc, apkel)
addElement('size', str(apk['size']), doc, apkel)
- addElement('sdkver', str(apk['sdkversion']), doc, apkel)
- if 'maxsdkversion' in apk:
- addElement('maxsdkver', str(apk['maxsdkversion']), doc, apkel)
+ addElement('sdkver', str(apk['minSdkVersion']), doc, apkel)
+ if 'targetSdkVersion' in apk:
+ addElement('targetSdkVersion', str(apk['targetSdkVersion']), doc, apkel)
+ if 'maxSdkVersion' in apk:
+ addElement('maxsdkver', str(apk['maxSdkVersion']), doc, apkel)
if 'added' in apk:
addElement('added', time.strftime('%Y-%m-%d', apk['added']), doc, apkel)
addElementNonEmpty('permissions', ','.join(apk['permissions']), doc, apkel)
app = fdroidserver.metadata.get_default_app_info()
app.UpdateCheckMode = "Tags"
root_dir, src_dir = import_proxy.get_metadata_from_url(app, url)
- self.assertEquals(app.RepoType, 'git')
- self.assertEquals(app.WebSite, 'https://gitlab.com/fdroid/fdroidclient')
- self.assertEquals(app.Repo, 'https://gitlab.com/fdroid/fdroidclient.git')
+ self.assertEqual(app.RepoType, 'git')
+ self.assertEqual(app.WebSite, 'https://gitlab.com/fdroid/fdroidclient')
+ self.assertEqual(app.Repo, 'https://gitlab.com/fdroid/fdroidclient.git')
if __name__ == "__main__":
self.assertTrue(appid in apps)
with open(savepath, 'rb') as f:
frompickle = pickle.load(f)
- self.assertEquals(frommeta, frompickle)
+ self.assertEqual(frommeta, frompickle)
# Uncomment to overwrite
# with open(savepath, 'wb') as f:
# pickle.dump(frommeta, f)
self.assertIsNotNone(sig, "sig is None")
pysig = fdroidserver.update.getsig(apkfile)
self.assertIsNotNone(pysig, "pysig is None")
- self.assertEquals(sig, fdroidserver.update.getsig(apkfile),
- "python sig not equal to java sig!")
- self.assertEquals(len(sig), len(pysig),
- "the length of the two sigs are different!")
+ self.assertEqual(sig, fdroidserver.update.getsig(apkfile),
+ "python sig not equal to java sig!")
+ self.assertEqual(len(sig), len(pysig),
+ "the length of the two sigs are different!")
try:
- self.assertEquals(unhexlify(sig), unhexlify(pysig),
- "the length of the two sigs are different!")
+ self.assertEqual(unhexlify(sig), unhexlify(pysig),
+ "the length of the two sigs are different!")
except TypeError as e:
print(e)
self.assertTrue(False, 'TypeError!')
pysig = fdroidserver.update.getsig(apkfile)
self.assertIsNone(pysig, "python sig should be None: " + str(sig))
+ def testScanApks(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)
+ config['ndk_paths'] = dict()
+ config['accepted_formats'] = ['json', 'txt', 'xml', 'yml']
+ fdroidserver.common.config = config
+ fdroidserver.update.config = config
+
+ fdroidserver.update.options = type('', (), {})()
+ fdroidserver.update.options.clean = True
+
+ alltestapps = fdroidserver.metadata.read_metadata(xref=True)
+ apps = dict()
+ apps['info.guardianproject.urzip'] = alltestapps['info.guardianproject.urzip']
+ knownapks = fdroidserver.common.KnownApks()
+ apks, cachechanged = fdroidserver.update.scan_apks(apps, {}, 'repo', knownapks, False)
+ self.assertEqual(len(apks), 1)
+ apk = apks[0]
+ self.assertEqual(apk['minSdkVersion'], '4')
+ self.assertEqual(apk['targetSdkVersion'], '18')
+ self.assertFalse('maxSdkVersion' in apk)
+
if __name__ == "__main__":
parser = optparse.OptionParser()