mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-02 09:10:11 +02:00
Merge androguard_test into update.TestCase
This commit is contained in:
parent
e82888837e
commit
08e3e445fb
@ -1,124 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import inspect
|
||||
import logging
|
||||
import optparse
|
||||
import os
|
||||
import sys
|
||||
import unittest
|
||||
|
||||
localmodule = os.path.realpath(
|
||||
os.path.join(os.path.dirname(inspect.getfile(inspect.currentframe())), '..'))
|
||||
print('localmodule: ' + localmodule)
|
||||
if localmodule not in sys.path:
|
||||
sys.path.insert(0, localmodule)
|
||||
|
||||
import fdroidserver.common
|
||||
import fdroidserver.metadata
|
||||
import fdroidserver.update
|
||||
|
||||
|
||||
class UpdateTest(unittest.TestCase):
|
||||
'''fdroid androguard manual tests'''
|
||||
|
||||
def testScanMetadataAndroguardAAPT(self):
|
||||
|
||||
def _create_apkmetadata_object(apkName):
|
||||
'''Create an empty apk metadata object'''
|
||||
apk = {}
|
||||
apk['apkName'] = apkName
|
||||
apk['uses-permission'] = []
|
||||
apk['uses-permission-sdk-23'] = []
|
||||
apk['features'] = []
|
||||
apk['icons_src'] = {}
|
||||
return apk
|
||||
|
||||
config = dict()
|
||||
fdroidserver.common.fill_config_defaults(config)
|
||||
fdroidserver.update.config = config
|
||||
os.chdir(os.path.dirname(__file__))
|
||||
if os.path.basename(os.getcwd()) != 'tests':
|
||||
raise Exception('This test must be run in the "tests/" subdir')
|
||||
|
||||
config['ndk_paths'] = dict()
|
||||
fdroidserver.common.config = config
|
||||
fdroidserver.update.config = config
|
||||
|
||||
fdroidserver.update.options = type('', (), {})()
|
||||
fdroidserver.update.options.clean = True
|
||||
fdroidserver.update.options.delete_unknown = True
|
||||
|
||||
self.assertTrue(fdroidserver.common.SdkToolsPopen(['aapt']))
|
||||
try:
|
||||
from androguard.core.bytecodes.apk import APK
|
||||
dir(APK)
|
||||
except ImportError:
|
||||
raise Exception("androguard not installed!")
|
||||
|
||||
apkList = [
|
||||
(
|
||||
'../org.dyndns.fules.ck_20.apk',
|
||||
{
|
||||
'apkName': '../org.dyndns.fules.ck_20.apk',
|
||||
'uses-permission': [
|
||||
fdroidserver.update.UsesPermission(
|
||||
name='android.permission.BIND_INPUT_METHOD',
|
||||
maxSdkVersion=None,
|
||||
),
|
||||
fdroidserver.update.UsesPermission(
|
||||
name='android.permission.READ_EXTERNAL_STORAGE',
|
||||
maxSdkVersion=None,
|
||||
),
|
||||
fdroidserver.update.UsesPermission(
|
||||
name='android.permission.VIBRATE', maxSdkVersion=None
|
||||
),
|
||||
],
|
||||
'uses-permission-sdk-23': [],
|
||||
'features': [],
|
||||
'icons_src': {
|
||||
'240': 'res/drawable-hdpi-v4/icon_launcher.png',
|
||||
'120': 'res/drawable-ldpi-v4/icon_launcher.png',
|
||||
'160': 'res/drawable-mdpi-v4/icon_launcher.png',
|
||||
'-1': 'res/drawable-mdpi-v4/icon_launcher.png',
|
||||
},
|
||||
'packageName': 'org.dyndns.fules.ck',
|
||||
'versionCode': 20,
|
||||
'versionName': 'v1.6pre2',
|
||||
'minSdkVersion': 7,
|
||||
'targetSdkVersion': 8,
|
||||
'nativecode': [
|
||||
'arm64-v8a',
|
||||
'armeabi',
|
||||
'armeabi-v7a',
|
||||
'mips',
|
||||
'mips64',
|
||||
'x86',
|
||||
'x86_64',
|
||||
],
|
||||
},
|
||||
)
|
||||
]
|
||||
|
||||
for apkName, apkaapt in apkList:
|
||||
logging.debug("Processing " + apkName)
|
||||
apkfile = os.path.join('repo', apkName)
|
||||
|
||||
apkandroguard = _create_apkmetadata_object(apkName)
|
||||
logging.debug("Using androguard for metadata")
|
||||
fdroidserver.update.scan_apk_androguard(apkandroguard, apkfile)
|
||||
# avoid AAPT application name bug
|
||||
del apkandroguard['name']
|
||||
|
||||
self.maxDiff = None
|
||||
self.assertEqual(apkaapt, apkandroguard)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = optparse.OptionParser()
|
||||
parser.add_option("-v", "--verbose", action="store_true", default=False,
|
||||
help="Spew out even more information than normal")
|
||||
(fdroidserver.common.options, args) = parser.parse_args(['--verbose'])
|
||||
|
||||
newSuite = unittest.TestSuite()
|
||||
newSuite.addTest(unittest.makeSuite(UpdateTest))
|
||||
unittest.main()
|
@ -1652,6 +1652,70 @@ class UpdateTest(unittest.TestCase):
|
||||
self.assertEqual(fdroidserver.update.config['jarsigner'], data['jarsigner'])
|
||||
self.assertEqual(fdroidserver.update.config['keytool'], data['keytool'])
|
||||
|
||||
def test_scan_metadata_androguard(self):
|
||||
|
||||
def _create_apkmetadata_object(apkName):
|
||||
"""Create an empty apk metadata object."""
|
||||
apk = {}
|
||||
apk['apkName'] = apkName
|
||||
apk['uses-permission'] = []
|
||||
apk['uses-permission-sdk-23'] = []
|
||||
apk['features'] = []
|
||||
apk['icons_src'] = {}
|
||||
return apk
|
||||
|
||||
apkList = [
|
||||
(
|
||||
'org.dyndns.fules.ck_20.apk',
|
||||
{
|
||||
'apkName': 'org.dyndns.fules.ck_20.apk',
|
||||
'uses-permission': [
|
||||
fdroidserver.update.UsesPermission(
|
||||
name='android.permission.BIND_INPUT_METHOD',
|
||||
maxSdkVersion=None,
|
||||
),
|
||||
fdroidserver.update.UsesPermission(
|
||||
name='android.permission.READ_EXTERNAL_STORAGE',
|
||||
maxSdkVersion=None,
|
||||
),
|
||||
fdroidserver.update.UsesPermission(
|
||||
name='android.permission.VIBRATE', maxSdkVersion=None
|
||||
),
|
||||
],
|
||||
'uses-permission-sdk-23': [],
|
||||
'features': [],
|
||||
'icons_src': {
|
||||
'240': 'res/drawable-hdpi-v4/icon_launcher.png',
|
||||
'120': 'res/drawable-ldpi-v4/icon_launcher.png',
|
||||
'160': 'res/drawable-mdpi-v4/icon_launcher.png',
|
||||
'-1': 'res/drawable-mdpi-v4/icon_launcher.png',
|
||||
},
|
||||
'packageName': 'org.dyndns.fules.ck',
|
||||
'versionCode': 20,
|
||||
'versionName': 'v1.6pre2',
|
||||
'minSdkVersion': 7,
|
||||
'name': 'Compass Keyboard',
|
||||
'targetSdkVersion': 8,
|
||||
'nativecode': [
|
||||
'arm64-v8a',
|
||||
'armeabi',
|
||||
'armeabi-v7a',
|
||||
'mips',
|
||||
'mips64',
|
||||
'x86',
|
||||
'x86_64',
|
||||
],
|
||||
},
|
||||
)
|
||||
]
|
||||
|
||||
for apkfile, apkaapt in apkList:
|
||||
apkandroguard = _create_apkmetadata_object(apkfile)
|
||||
fdroidserver.update.scan_apk_androguard(apkandroguard, apkfile)
|
||||
|
||||
self.maxDiff = None
|
||||
self.assertEqual(apkaapt, apkandroguard)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
os.chdir(os.path.dirname(__file__))
|
||||
|
Loading…
Reference in New Issue
Block a user