releasetools: Factor out the check for (compressed) APK file.
Test: Run sign_target_files.py to sign a target_files.zip. Test: `python -m unittest test_sign_target_files_apks` Change-Id: Ie795d1bce7bae6af427832283e3d10bfecad80c5
This commit is contained in:
@@ -24,7 +24,8 @@ import zipfile
|
||||
import common
|
||||
import test_utils
|
||||
from sign_target_files_apks import (
|
||||
EditTags, ReplaceCerts, ReplaceVerityKeyId, RewriteProps)
|
||||
CheckAllApksSigned, EditTags, GetApkFileInfo, ReplaceCerts,
|
||||
ReplaceVerityKeyId, RewriteProps)
|
||||
|
||||
|
||||
class SignTargetFilesApksTest(unittest.TestCase):
|
||||
@@ -211,3 +212,50 @@ class SignTargetFilesApksTest(unittest.TestCase):
|
||||
cert2_path[:-9] : 'non-existent',
|
||||
}
|
||||
self.assertEqual(output_xml, ReplaceCerts(input_xml))
|
||||
|
||||
def test_CheckAllApksSigned(self):
|
||||
input_file = common.MakeTempFile(suffix='.zip')
|
||||
with zipfile.ZipFile(input_file, 'w') as input_zip:
|
||||
input_zip.writestr('SYSTEM/app/App1.apk', "App1-content")
|
||||
input_zip.writestr('SYSTEM/app/App2.apk.gz', "App2-content")
|
||||
|
||||
apk_key_map = {
|
||||
'App1.apk' : 'key1',
|
||||
'App2.apk' : 'key2',
|
||||
'App3.apk' : 'key3',
|
||||
}
|
||||
with zipfile.ZipFile(input_file) as input_zip:
|
||||
CheckAllApksSigned(input_zip, apk_key_map, None)
|
||||
CheckAllApksSigned(input_zip, apk_key_map, '.gz')
|
||||
|
||||
# 'App2.apk.gz' won't be considered as an APK.
|
||||
CheckAllApksSigned(input_zip, apk_key_map, None)
|
||||
CheckAllApksSigned(input_zip, apk_key_map, '.xz')
|
||||
|
||||
del apk_key_map['App2.apk']
|
||||
self.assertRaises(
|
||||
AssertionError, CheckAllApksSigned, input_zip, apk_key_map, '.gz')
|
||||
|
||||
def test_GetApkFileInfo(self):
|
||||
(is_apk, is_compressed) = GetApkFileInfo("PRODUCT/apps/Chats.apk", None)
|
||||
self.assertTrue(is_apk)
|
||||
self.assertFalse(is_compressed)
|
||||
|
||||
(is_apk, is_compressed) = GetApkFileInfo("PRODUCT/apps/Chats.dat", None)
|
||||
self.assertFalse(is_apk)
|
||||
self.assertFalse(is_compressed)
|
||||
|
||||
def test_GetApkFileInfo_withCompressedApks(self):
|
||||
(is_apk, is_compressed) = GetApkFileInfo("PRODUCT/apps/Chats.apk.gz", ".gz")
|
||||
self.assertTrue(is_apk)
|
||||
self.assertTrue(is_compressed)
|
||||
|
||||
(is_apk, is_compressed) = GetApkFileInfo("PRODUCT/apps/Chats.apk.gz", ".xz")
|
||||
self.assertFalse(is_apk)
|
||||
self.assertFalse(is_compressed)
|
||||
|
||||
self.assertRaises(
|
||||
AssertionError, GetApkFileInfo, "PRODUCT/apps/Chats.apk", "")
|
||||
|
||||
self.assertRaises(
|
||||
AssertionError, GetApkFileInfo, "PRODUCT/apps/Chats.apk", "apk")
|
||||
|
Reference in New Issue
Block a user