mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-04 02:00:11 +02:00
add some basic tests for scanner.main
This commit is contained in:
parent
42d9ac446c
commit
ab579be6b5
@ -550,7 +550,7 @@ def main():
|
||||
appids = []
|
||||
for apk in options.appid:
|
||||
if os.path.isfile(apk):
|
||||
count = scan_binary(apk, exodus)
|
||||
count = scanner.scan_binary(apk, exodus)
|
||||
if count > 0:
|
||||
logging.warning(
|
||||
_('Scanner found {count} problems in {apk}:').format(
|
||||
@ -565,6 +565,7 @@ def main():
|
||||
return
|
||||
|
||||
# Read all app and srclib metadata
|
||||
|
||||
allapps = metadata.read_metadata()
|
||||
apps = common.read_app_args(appids, allapps, True)
|
||||
|
||||
|
@ -13,6 +13,8 @@ import textwrap
|
||||
import unittest
|
||||
import uuid
|
||||
import yaml
|
||||
import collections
|
||||
import pathlib
|
||||
from unittest import mock
|
||||
|
||||
localmodule = os.path.realpath(
|
||||
@ -26,6 +28,7 @@ import fdroidserver.build
|
||||
import fdroidserver.common
|
||||
import fdroidserver.metadata
|
||||
import fdroidserver.scanner
|
||||
from testcommon import TmpCwd
|
||||
|
||||
|
||||
class ScannerTest(unittest.TestCase):
|
||||
@ -431,6 +434,52 @@ class Test_load_exodus_trackers_signatures(unittest.TestCase):
|
||||
self.assertEqual(result_regex, "mocked return value")
|
||||
|
||||
|
||||
class Test_main(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.args = ["com.example.app", "local/additional.apk", "another.apk"]
|
||||
self.exit_func = mock.Mock()
|
||||
self.read_app_args_func = mock.Mock(return_value={})
|
||||
self.scan_binary_func = mock.Mock(return_value=0)
|
||||
|
||||
def test_parsing_appid(self):
|
||||
"""
|
||||
This test verifies that app id get parsed correctly
|
||||
(doesn't test how they get processed)
|
||||
"""
|
||||
self.args = ["com.example.app"]
|
||||
with tempfile.TemporaryDirectory() as tmpdir, TmpCwd(tmpdir), mock.patch(
|
||||
"sys.exit", self.exit_func
|
||||
), mock.patch("sys.argv", ["fdroid scanner", *self.args]), mock.patch(
|
||||
"fdroidserver.common.read_app_args", self.read_app_args_func
|
||||
), mock.patch("fdroidserver.scanner.scan_binary", self.scan_binary_func):
|
||||
fdroidserver.scanner.main()
|
||||
|
||||
self.exit_func.assert_not_called()
|
||||
self.read_app_args_func.assert_called_once_with(
|
||||
['com.example.app'], collections.OrderedDict(), True
|
||||
)
|
||||
self.scan_binary_func.assert_not_called()
|
||||
|
||||
def test_parsing_apkpath(self):
|
||||
"""
|
||||
This test verifies that apk paths get parsed correctly
|
||||
(doesn't test how they get processed)
|
||||
"""
|
||||
self.args = ["local.application.apk"]
|
||||
with tempfile.TemporaryDirectory() as tmpdir, TmpCwd(tmpdir), mock.patch(
|
||||
"sys.exit", self.exit_func
|
||||
), mock.patch("sys.argv", ["fdroid scanner", *self.args]), mock.patch(
|
||||
"fdroidserver.common.read_app_args", self.read_app_args_func
|
||||
), mock.patch("fdroidserver.scanner.scan_binary", self.scan_binary_func):
|
||||
pathlib.Path(self.args[0]).touch()
|
||||
fdroidserver.scanner.main()
|
||||
|
||||
self.exit_func.assert_not_called()
|
||||
self.read_app_args_func.assert_not_called()
|
||||
self.scan_binary_func.assert_called_once_with('local.application.apk', [])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
os.chdir(os.path.dirname(__file__))
|
||||
|
||||
@ -450,5 +499,6 @@ if __name__ == "__main__":
|
||||
unittest.makeSuite(Test_scan_binary),
|
||||
unittest.makeSuite(Test__exodus_compile_signatures),
|
||||
unittest.makeSuite(Test_load_exodus_trackers_signatures),
|
||||
unittest.makeSuite(Test_main),
|
||||
])
|
||||
unittest.main(failfast=False)
|
||||
|
Loading…
Reference in New Issue
Block a user