Merge branch 'scanner' into 'master'

scanner: fix gradle command match

Closes #1308

See merge request fdroid/fdroidserver!1757
This commit is contained in:
Hans-Christoph Steiner
2025-12-22 20:19:15 +00:00
3 changed files with 30 additions and 4 deletions

View File

@@ -20,8 +20,8 @@ import itertools
import json
import logging
import os
import stat
import re
import stat
import sys
import traceback
import urllib.parse
@@ -284,7 +284,7 @@ def get_gradle_compile_commands_without_catalog(build):
def get_gradle_compile_commands_with_catalog(build, prefix):
return [
re.compile(rf'\s*{c}.*\s*\(?{prefix}\.([a-z0-9.]+)', re.IGNORECASE)
re.compile(rf"""\s*\S*{c}\S*\s*\(?{prefix}\.([a-z0-9.]+)""", re.IGNORECASE)
for c in get_gradle_compile_commands(build)
]
@@ -1290,7 +1290,7 @@ def main():
)
continue
logging.info("...scanning versionCode " + build.versionCode)
logging.info(f"...scanning versionCode {build.versionCode}")
# Prepare the source code...
common.prepare_source(
vcs, app, build, build_dir, srclib_dir, extlib_dir, False

View File

@@ -6,4 +6,5 @@ plugins {
dependencies {
implementation(libs.plugins.androidApplication.asLibraryDependency)
"playImplementation"(libs.firebase.core)
}

View File

@@ -81,6 +81,31 @@ class ScannerTest(SetUpTearDownMixin, unittest.TestCase):
super().setUp()
fdroidserver.scanner.ScannerTool.refresh_allowed = False
def test_looping_through_builds(self):
"""Exercises some of main() to get some coverage."""
appid = "com.example"
with (
tempfile.TemporaryDirectory() as tmpdir,
TmpCwd(tmpdir),
mock.patch("sys.argv", ["fdroid scanner", appid]),
mock.patch(
"fdroidserver.common.prepare_source", lambda v, a, b, d, s, e, r: None
),
):
os.mkdir("metadata")
pathlib.Path(f"metadata/{appid}.yml").write_text(
textwrap.dedent(
"""
RepoType: git
Builds:
- versionCode: 1
commit: v1.0
"""
)
)
fdroidserver.scanner.main()
self.assertTrue(os.path.exists("build"))
def test_scan_source_files(self):
fdroidserver.common.options = mock.Mock()
fdroidserver.common.options.json = False
@@ -99,7 +124,7 @@ class ScannerTest(SetUpTearDownMixin, unittest.TestCase):
'se.manyver': 3,
'lockfile.test': 1,
'com.lolo.io.onelist': 6,
'catalog.test': 22,
'catalog.test': 23,
}
for d in (basedir / 'source-files').iterdir():
build = fdroidserver.metadata.Build()