if max_version is None:
max_version = "Unknown"
+ if not is_valid_package_name(max_package):
+ raise FDroidException("Invalid package name {0}".format(max_package))
+
return (max_version, max_vercode, max_package)
+def is_valid_package_name(name):
+ return re.match("[A-Za-z_][A-Za-z_0-9.]+$", name)
+
+
class FDroidException(Exception):
def __init__(self, value, detail=None):
self.assertFalse(debuggable,
"debuggable APK state was not properly parsed!")
+ def testPackageNameValidity(self):
+ for name in ["org.fdroid.fdroid",
+ "org.f_droid.fdr0ID"]:
+ self.assertTrue(fdroidserver.common.is_valid_package_name(name),
+ "{0} should be a valid package name".format(name))
+ for name in ["0rg.fdroid.fdroid",
+ ".f_droid.fdr0ID",
+ "org.fdroid/fdroid",
+ "/org.fdroid.fdroid"]:
+ self.assertFalse(fdroidserver.common.is_valid_package_name(name),
+ "{0} should not be a valid package name".format(name))
if __name__ == "__main__":
parser = optparse.OptionParser()