| #!/usr/bin/env python |
| |
| # This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this file, |
| # You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| import mozfile |
| import unittest |
| import zipfile |
| from mozversion import get_version |
| |
| |
| class ApkTest(unittest.TestCase): |
| """test getting version information from an android .apk""" |
| |
| 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: |
| 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() |