releasetools: Add a testcase for common.ParseCertificate().

Also minor clean up to the function, to suppress the following lint
warning.
R:1813, 2: Redefinition of cert type from list to unicode (redefined-variable-type)

Test: python -m unittest -v test_common.CommonApkUtilsTest
Change-Id: Ib4b1dfa8b19e505fc70684b648efc36171c73bbf
This commit is contained in:
Tao Bao
2018-02-16 17:12:54 -08:00
parent 9452d84b97
commit 17e4e61691
2 changed files with 30 additions and 9 deletions

View File

@@ -13,7 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
import os
import subprocess
import tempfile
import time
import unittest
@@ -400,6 +402,9 @@ class CommonApkUtilsTest(unittest.TestCase):
'Compressed4.apk' : 'certs/compressed4',
}
def setUp(self):
self.testdata_dir = test_utils.get_testdata_dir()
def tearDown(self):
common.Cleanup()
@@ -477,17 +482,27 @@ class CommonApkUtilsTest(unittest.TestCase):
self.assertRaises(ValueError, common.ReadApkCerts, input_zip)
def test_ExtractPublicKey(self):
testdata_dir = test_utils.get_testdata_dir()
cert = os.path.join(testdata_dir, 'testkey.x509.pem')
pubkey = os.path.join(testdata_dir, 'testkey.pubkey.pem')
cert = os.path.join(self.testdata_dir, 'testkey.x509.pem')
pubkey = os.path.join(self.testdata_dir, 'testkey.pubkey.pem')
with open(pubkey, 'rb') as pubkey_fp:
self.assertEqual(pubkey_fp.read(), common.ExtractPublicKey(cert))
def test_ExtractPublicKey_invalidInput(self):
testdata_dir = test_utils.get_testdata_dir()
wrong_input = os.path.join(testdata_dir, 'testkey.pk8')
wrong_input = os.path.join(self.testdata_dir, 'testkey.pk8')
self.assertRaises(AssertionError, common.ExtractPublicKey, wrong_input)
def test_ParseCertificate(self):
cert = os.path.join(self.testdata_dir, 'testkey.x509.pem')
cmd = ['openssl', 'x509', '-in', cert, '-outform', 'DER']
proc = common.Run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
expected, _ = proc.communicate()
self.assertEqual(0, proc.returncode)
with open(cert) as cert_fp:
actual = common.ParseCertificate(cert_fp.read())
self.assertEqual(expected, actual)
class InstallRecoveryScriptFormatTest(unittest.TestCase):
"""Checks the format of install-recovery.sh.