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]: def get_coordinate(self, accessor: str) -> list[str]:
"""Get the Gradle coordinate from the catalog with an accessor.""" """Get the Gradle coordinate from the catalog with an accessor."""
if accessor.startswith("plugins."): if accessor.startswith("plugins."):
return [self.plugins.get(accessor[8:], "")] return [
self.plugins.get(accessor[8:].removesuffix(".asLibraryDependency"), "")
]
if accessor.startswith("bundles."): if accessor.startswith("bundles."):
return self.bundles.get(accessor[8:], []) return self.bundles.get(accessor[8:], [])
return [self.libraries.get(accessor, "")] return [self.libraries.get(accessor, "")]

View file

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

View file

@ -1,16 +1,18 @@
[versions] [versions]
firebase = "1.1.1" firebase = "1.1.1"
gms = "1.2.1" gms = "1.2.1"
androidGradlePlugin = "8.12.0"
[libraries] [libraries]
firebase-crash = { module = "com.google.firebase:firebase-crash", version.ref = "firebase" } firebase-crash = { module = "com.google.firebase:firebase-crash", version.ref = "firebase" }
firebase_core = { module = "com.google.firebase:firebase-core", version = "2.2.2" } firebase_core = { module = "com.google.firebase:firebase-core", version = "2.2.2" }
"play.service.ads" = { module = "com.google.android.gms:play-services-ads", version.ref = "gms"} "play.service.ads" = { module = "com.google.android.gms:play-services-ads", version.ref = "gms" }
jacoco = "org.jacoco:org.jacoco.core:0.8.7" jacoco = "org.jacoco:org.jacoco.core:0.8.7"
[plugins] [plugins]
google-services = { id = "com.google.gms.google-services", version.ref = "gms" } google-services = { id = "com.google.gms.google-services", version.ref = "gms" }
firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebase" } firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebase" }
androidApplication = { id = "com.android.application", version.ref = "androidGradlePlugin" }
[bundles] [bundles]
firebase = ["firebase-crash", "firebase_core"] 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-crash:1.1.1',
'com.google.firebase:firebase-core:2.2.2', '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: with open('source-files/catalog.test/gradle/libs.versions.toml', 'rb') as f:
catalog = fdroidserver.scanner.GradleVersionCatalog(tomllib.load(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.replace_build_vars', wraps=make_fake_apk):
with mock.patch('fdroidserver.common.get_native_code', return_value='x86'): with mock.patch('fdroidserver.common.get_native_code', return_value='x86'):
with mock.patch( with (
'fdroidserver.common.get_apk_id', mock.patch(
return_value=(app.id, build.versionCode, build.versionName), 'fdroidserver.common.get_apk_id',
), mock.patch( return_value=(app.id, build.versionCode, build.versionName),
'fdroidserver.common.get_source_date_epoch', lambda f: '1234567890' ),
mock.patch(
'fdroidserver.common.get_source_date_epoch',
lambda f: '1234567890',
),
): ):
with mock.patch( with mock.patch(
'fdroidserver.common.is_debuggable_or_testOnly', 'fdroidserver.common.is_debuggable_or_testOnly',
@ -672,15 +679,19 @@ class Test_SignatureDataController(unittest.TestCase):
func_lfc = mock.Mock() func_lfc = mock.Mock()
func_vd = mock.Mock() func_vd = mock.Mock()
func_clu = mock.Mock() func_clu = mock.Mock()
with mock.patch( with (
'fdroidserver.scanner.SignatureDataController.load_from_cache', mock.patch(
func_lfc, 'fdroidserver.scanner.SignatureDataController.load_from_cache',
), mock.patch( func_lfc,
'fdroidserver.scanner.SignatureDataController.verify_data', ),
func_vd, mock.patch(
), mock.patch( 'fdroidserver.scanner.SignatureDataController.verify_data',
'fdroidserver.scanner.SignatureDataController.check_last_updated', func_vd,
func_clu, ),
mock.patch(
'fdroidserver.scanner.SignatureDataController.check_last_updated',
func_clu,
),
): ):
sdc.load() sdc.load()
func_lfc.assert_called_once_with() func_lfc.assert_called_once_with()
@ -695,12 +706,15 @@ class Test_SignatureDataController(unittest.TestCase):
side_effect=fdroidserver.scanner.SignatureDataCacheMissException side_effect=fdroidserver.scanner.SignatureDataCacheMissException
) )
func_lfd = mock.Mock() func_lfd = mock.Mock()
with mock.patch( with (
'fdroidserver.scanner.SignatureDataController.load_from_cache', mock.patch(
func_lfc, 'fdroidserver.scanner.SignatureDataController.load_from_cache',
), mock.patch( func_lfc,
'fdroidserver.scanner.SignatureDataController.load_from_defaults', ),
func_lfd, mock.patch(
'fdroidserver.scanner.SignatureDataController.load_from_defaults',
func_lfd,
),
): ):
sdc.load() sdc.load()
func_lfc.assert_called_once_with() func_lfc.assert_called_once_with()
@ -717,21 +731,27 @@ class Test_SignatureDataController(unittest.TestCase):
) )
func_fsfw = mock.Mock() func_fsfw = mock.Mock()
func_wtc = mock.Mock() func_wtc = mock.Mock()
with mock.patch( with (
'fdroidserver.scanner.SignatureDataController.load_from_cache', mock.patch(
func_lfc, 'fdroidserver.scanner.SignatureDataController.load_from_cache',
), mock.patch( func_lfc,
'fdroidserver.scanner.SignatureDataController.verify_data', ),
func_vd, mock.patch(
), mock.patch( 'fdroidserver.scanner.SignatureDataController.verify_data',
'fdroidserver.scanner.SignatureDataController.check_last_updated', func_vd,
func_clu, ),
), mock.patch( mock.patch(
'fdroidserver.scanner.SignatureDataController.fetch_signatures_from_web', 'fdroidserver.scanner.SignatureDataController.check_last_updated',
func_fsfw, func_clu,
), mock.patch( ),
'fdroidserver.scanner.SignatureDataController.write_to_cache', mock.patch(
func_wtc, 'fdroidserver.scanner.SignatureDataController.fetch_signatures_from_web',
func_fsfw,
),
mock.patch(
'fdroidserver.scanner.SignatureDataController.write_to_cache',
func_wtc,
),
): ):
sdc.load() sdc.load()
func_lfc.assert_called_once_with() func_lfc.assert_called_once_with()
@ -752,18 +772,23 @@ class Test_SignatureDataController(unittest.TestCase):
) )
func_fsfw = mock.Mock() func_fsfw = mock.Mock()
func_wtc = mock.Mock() func_wtc = mock.Mock()
with mock.patch( with (
'fdroidserver.scanner.SignatureDataController.load_from_cache', mock.patch(
func_lfc, 'fdroidserver.scanner.SignatureDataController.load_from_cache',
), mock.patch( func_lfc,
'fdroidserver.scanner.SignatureDataController.load_from_defaults', ),
func_lfd, mock.patch(
), mock.patch( 'fdroidserver.scanner.SignatureDataController.load_from_defaults',
'fdroidserver.scanner.SignatureDataController.fetch_signatures_from_web', func_lfd,
func_fsfw, ),
), mock.patch( mock.patch(
'fdroidserver.scanner.SignatureDataController.write_to_cache', 'fdroidserver.scanner.SignatureDataController.fetch_signatures_from_web',
func_wtc, func_fsfw,
),
mock.patch(
'fdroidserver.scanner.SignatureDataController.write_to_cache',
func_wtc,
),
): ):
sdc.load() sdc.load()
func_lfc.assert_called_once_with() func_lfc.assert_called_once_with()
@ -782,9 +807,12 @@ class Test_SignatureDataController(unittest.TestCase):
) )
sdc.data = {"mocked": "data"} sdc.data = {"mocked": "data"}
with mock.patch("builtins.open", open_func), mock.patch( with (
"fdroidserver.scanner._scanner_cachedir", mock.patch("builtins.open", open_func),
return_value=pathlib.Path('.'), mock.patch(
"fdroidserver.scanner._scanner_cachedir",
return_value=pathlib.Path('.'),
),
): ):
sdc.write_to_cache() sdc.write_to_cache()