scanner: remove asLibraryDependency from catalog accessor

This commit is contained in:
linsui 2025-08-08 23:14:12 +08:00 committed by Michael Pöhn
parent 5f6e59c76d
commit 5ded08048b
4 changed files with 88 additions and 52 deletions

View file

@ -189,7 +189,9 @@ class GradleVersionCatalog:
def get_coordinate(self, accessor: str) -> list[str]:
"""Get the Gradle coordinate from the catalog with an accessor."""
if accessor.startswith("plugins."):
return [self.plugins.get(accessor[8:], "")]
return [
self.plugins.get(accessor[8:].removesuffix(".asLibraryDependency"), "")
]
if accessor.startswith("bundles."):
return self.bundles.get(accessor[8:], [])
return [self.libraries.get(accessor, "")]

View file

@ -3,3 +3,7 @@ plugins {
alias(libs.plugins.firebase.crashlytics)
alias(projectLibs.plugins.firebase.crashlytics)
}
dependencies {
implementation(libs.plugins.androidApplication.asLibraryDependency)
}

View file

@ -1,6 +1,7 @@
[versions]
firebase = "1.1.1"
gms = "1.2.1"
androidGradlePlugin = "8.12.0"
[libraries]
firebase-crash = { module = "com.google.firebase:firebase-crash", version.ref = "firebase" }
@ -11,6 +12,7 @@ jacoco = "org.jacoco:org.jacoco.core:0.8.7"
[plugins]
google-services = { id = "com.google.gms.google-services", version.ref = "gms" }
firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebase" }
androidApplication = { id = "com.android.application", version.ref = "androidGradlePlugin" }
[bundles]
firebase = ["firebase-crash", "firebase_core"]

View file

@ -165,6 +165,9 @@ class ScannerTest(unittest.TestCase):
'com.google.firebase:firebase-crash:1.1.1',
'com.google.firebase:firebase-core:2.2.2',
],
'plugins.androidApplication.asLibraryDependency': [
'com.android.application:8.12.0'
],
}
with open('source-files/catalog.test/gradle/libs.versions.toml', 'rb') as f:
catalog = fdroidserver.scanner.GradleVersionCatalog(tomllib.load(f))
@ -354,11 +357,15 @@ class ScannerTest(unittest.TestCase):
with mock.patch('fdroidserver.common.replace_build_vars', wraps=make_fake_apk):
with mock.patch('fdroidserver.common.get_native_code', return_value='x86'):
with mock.patch(
with (
mock.patch(
'fdroidserver.common.get_apk_id',
return_value=(app.id, build.versionCode, build.versionName),
), mock.patch(
'fdroidserver.common.get_source_date_epoch', lambda f: '1234567890'
),
mock.patch(
'fdroidserver.common.get_source_date_epoch',
lambda f: '1234567890',
),
):
with mock.patch(
'fdroidserver.common.is_debuggable_or_testOnly',
@ -672,15 +679,19 @@ class Test_SignatureDataController(unittest.TestCase):
func_lfc = mock.Mock()
func_vd = mock.Mock()
func_clu = mock.Mock()
with mock.patch(
with (
mock.patch(
'fdroidserver.scanner.SignatureDataController.load_from_cache',
func_lfc,
), mock.patch(
),
mock.patch(
'fdroidserver.scanner.SignatureDataController.verify_data',
func_vd,
), mock.patch(
),
mock.patch(
'fdroidserver.scanner.SignatureDataController.check_last_updated',
func_clu,
),
):
sdc.load()
func_lfc.assert_called_once_with()
@ -695,12 +706,15 @@ class Test_SignatureDataController(unittest.TestCase):
side_effect=fdroidserver.scanner.SignatureDataCacheMissException
)
func_lfd = mock.Mock()
with mock.patch(
with (
mock.patch(
'fdroidserver.scanner.SignatureDataController.load_from_cache',
func_lfc,
), mock.patch(
),
mock.patch(
'fdroidserver.scanner.SignatureDataController.load_from_defaults',
func_lfd,
),
):
sdc.load()
func_lfc.assert_called_once_with()
@ -717,21 +731,27 @@ class Test_SignatureDataController(unittest.TestCase):
)
func_fsfw = mock.Mock()
func_wtc = mock.Mock()
with mock.patch(
with (
mock.patch(
'fdroidserver.scanner.SignatureDataController.load_from_cache',
func_lfc,
), mock.patch(
),
mock.patch(
'fdroidserver.scanner.SignatureDataController.verify_data',
func_vd,
), mock.patch(
),
mock.patch(
'fdroidserver.scanner.SignatureDataController.check_last_updated',
func_clu,
), mock.patch(
),
mock.patch(
'fdroidserver.scanner.SignatureDataController.fetch_signatures_from_web',
func_fsfw,
), mock.patch(
),
mock.patch(
'fdroidserver.scanner.SignatureDataController.write_to_cache',
func_wtc,
),
):
sdc.load()
func_lfc.assert_called_once_with()
@ -752,18 +772,23 @@ class Test_SignatureDataController(unittest.TestCase):
)
func_fsfw = mock.Mock()
func_wtc = mock.Mock()
with mock.patch(
with (
mock.patch(
'fdroidserver.scanner.SignatureDataController.load_from_cache',
func_lfc,
), mock.patch(
),
mock.patch(
'fdroidserver.scanner.SignatureDataController.load_from_defaults',
func_lfd,
), mock.patch(
),
mock.patch(
'fdroidserver.scanner.SignatureDataController.fetch_signatures_from_web',
func_fsfw,
), mock.patch(
),
mock.patch(
'fdroidserver.scanner.SignatureDataController.write_to_cache',
func_wtc,
),
):
sdc.load()
func_lfc.assert_called_once_with()
@ -782,9 +807,12 @@ class Test_SignatureDataController(unittest.TestCase):
)
sdc.data = {"mocked": "data"}
with mock.patch("builtins.open", open_func), mock.patch(
with (
mock.patch("builtins.open", open_func),
mock.patch(
"fdroidserver.scanner._scanner_cachedir",
return_value=pathlib.Path('.'),
),
):
sdc.write_to_cache()