Bug 1132415 - [mozversion] Expose the package name for local fennec APK file. r=wlach

This commit is contained in:
Julien Pagès 2015-02-12 04:36:00 +01:00
parent 2bbb791200
commit 01eed9eda2
2 changed files with 22 additions and 6 deletions

View File

@ -64,14 +64,19 @@ class LocalFennecVersion(Version):
def get_gecko_info(self, path):
archive = zipfile.ZipFile(path, 'r')
archive_list = archive.namelist()
for type, section in INI_DATA_MAPPING:
filename = "%s.ini" % type
if filename in archive.namelist():
if filename in archive_list:
self._parse_ini_file(archive.open(filename), type,
section)
else:
self._logger.warning('Unable to find %s' % filename)
if "package-name.txt" in archive_list:
self._info["package_name"] = \
archive.open("package-name.txt").readlines()[0].strip()
class LocalVersion(Version):

View File

@ -16,17 +16,28 @@ class ApkTest(unittest.TestCase):
application_changeset = 'a'*40
platform_changeset = 'b'*40
def create_apk_zipfiles(self, zfile):
zfile.writestr('application.ini',
"""[App]\nSourceStamp=%s\n""" % self.application_changeset)
zfile.writestr('platform.ini',
"""[Build]\nSourceStamp=%s\n""" % self.platform_changeset)
zfile.writestr('AndroidManifest.xml', '')
def test_basic(self):
with mozfile.NamedTemporaryFile() as f:
with zipfile.ZipFile(f.name, 'w') as z:
z.writestr('application.ini',
"""[App]\nSourceStamp=%s\n""" % self.application_changeset)
z.writestr('platform.ini',
"""[Build]\nSourceStamp=%s\n""" % self.platform_changeset)
z.writestr('AndroidManifest.xml', '')
self.create_apk_zipfiles(z)
v = get_version(f.name)
self.assertEqual(v.get('application_changeset'), self.application_changeset)
self.assertEqual(v.get('platform_changeset'), self.platform_changeset)
def test_with_package_name(self):
with mozfile.NamedTemporaryFile() as f:
with zipfile.ZipFile(f.name, 'w') as z:
self.create_apk_zipfiles(z)
z.writestr('package-name.txt', "org.mozilla.fennec")
v = get_version(f.name)
self.assertEqual(v.get('package_name'), "org.mozilla.fennec")
if __name__ == '__main__':
unittest.main()