mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-12-23 23:57:51 -05:00
Merge branch 'format' into 'master'
ruff: add exclude list See merge request fdroid/fdroidserver!1754
This commit is contained in:
@@ -19,7 +19,7 @@ ignore = "E123,E203,E402,E501,W503"
|
||||
|
||||
[tool.black]
|
||||
skip-string-normalization = true
|
||||
target-version = ["py38"]
|
||||
target-version = ["py39"]
|
||||
include = '(^fdroid|\.pyi?)$'
|
||||
# These files will never be included in black runs. To run black on
|
||||
# one of thes files, remove it from this list.
|
||||
@@ -125,3 +125,22 @@ max-line-length = 88
|
||||
|
||||
[tool.ruff.format]
|
||||
quote-style = "preserve"
|
||||
exclude = [
|
||||
"docs/source/conf.py",
|
||||
"examples/fdroid_export_keystore_to_nitrokey.py",
|
||||
"examples/fdroid_exportkeystore.py",
|
||||
"examples/fdroid_fetchsrclibs.py",
|
||||
"examples/fdroid_nitrokeyimport.py",
|
||||
"fdroidserver/__main__.py",
|
||||
"fdroidserver/apksigcopier.py",
|
||||
"fdroidserver/looseversion.py",
|
||||
"fdroidserver/build.py",
|
||||
"fdroidserver/checkupdates.py",
|
||||
"fdroidserver/vmtools.py",
|
||||
"tests/config.py",
|
||||
"tests/extra/manual-vmtools-test.py",
|
||||
"tests/openssl-version-check-test.py",
|
||||
"tests/valid-package-names/test.py",
|
||||
"tests/test_common.py",
|
||||
"tests/test_update.py",
|
||||
]
|
||||
|
||||
@@ -279,9 +279,11 @@ class BuildTest(unittest.TestCase):
|
||||
@mock.patch('sdkmanager.build_package_list', lambda use_net: None)
|
||||
def test_build_local_ndk(self):
|
||||
"""Test if `fdroid build` detects installed NDKs and auto-installs when missing"""
|
||||
with tempfile.TemporaryDirectory() as testdir, TmpCwd(
|
||||
testdir
|
||||
), tempfile.TemporaryDirectory() as sdk_path:
|
||||
with (
|
||||
tempfile.TemporaryDirectory() as testdir,
|
||||
TmpCwd(testdir),
|
||||
tempfile.TemporaryDirectory() as sdk_path,
|
||||
):
|
||||
config = {'ndk_paths': {}, 'sdk_path': sdk_path}
|
||||
fdroidserver.common.config = config
|
||||
fdroidserver.build.config = config
|
||||
@@ -315,26 +317,33 @@ class BuildTest(unittest.TestCase):
|
||||
fp.write('Pkg.Revision = %s\n' % ndk_version)
|
||||
|
||||
# use "as _ignored" just to make a pretty layout
|
||||
with mock.patch(
|
||||
'fdroidserver.common.replace_build_vars', wraps=make_fake_apk
|
||||
) as _ignored, mock.patch(
|
||||
'fdroidserver.common.get_native_code', return_value='x86'
|
||||
) as _ignored, mock.patch(
|
||||
'fdroidserver.common.get_apk_id',
|
||||
return_value=(app.id, build.versionCode, build.versionName),
|
||||
) as _ignored, mock.patch(
|
||||
'fdroidserver.common.sha256sum',
|
||||
return_value='ad7ce5467e18d40050dc51b8e7affc3e635c85bd8c59be62de32352328ed467e',
|
||||
) as _ignored, mock.patch(
|
||||
'fdroidserver.common.is_debuggable_or_testOnly',
|
||||
return_value=False,
|
||||
) as _ignored, mock.patch(
|
||||
'fdroidserver.build.FDroidPopen', FakeProcess
|
||||
) as _ignored, mock.patch(
|
||||
'sdkmanager.install', wraps=fake_sdkmanager_install
|
||||
) as _ignored, mock.patch(
|
||||
'fdroidserver.common.get_source_date_epoch', lambda f: '1234567890'
|
||||
) as _ignored:
|
||||
with (
|
||||
mock.patch(
|
||||
'fdroidserver.common.replace_build_vars', wraps=make_fake_apk
|
||||
) as _ignored,
|
||||
mock.patch(
|
||||
'fdroidserver.common.get_native_code', return_value='x86'
|
||||
) as _ignored,
|
||||
mock.patch(
|
||||
'fdroidserver.common.get_apk_id',
|
||||
return_value=(app.id, build.versionCode, build.versionName),
|
||||
) as _ignored,
|
||||
mock.patch(
|
||||
'fdroidserver.common.sha256sum',
|
||||
return_value='ad7ce5467e18d40050dc51b8e7affc3e635c85bd8c59be62de32352328ed467e',
|
||||
) as _ignored,
|
||||
mock.patch(
|
||||
'fdroidserver.common.is_debuggable_or_testOnly',
|
||||
return_value=False,
|
||||
) as _ignored,
|
||||
mock.patch('fdroidserver.build.FDroidPopen', FakeProcess) as _ignored,
|
||||
mock.patch(
|
||||
'sdkmanager.install', wraps=fake_sdkmanager_install
|
||||
) as _ignored,
|
||||
mock.patch(
|
||||
'fdroidserver.common.get_source_date_epoch', lambda f: '1234567890'
|
||||
) as _ignored,
|
||||
):
|
||||
_ignored # silence the linters
|
||||
with self.assertRaises(
|
||||
fdroidserver.exception.FDroidException,
|
||||
@@ -389,9 +398,11 @@ class BuildTest(unittest.TestCase):
|
||||
)
|
||||
def test_build_local_ndk_some_installed(self):
|
||||
"""Test if `fdroid build` detects installed NDKs and auto-installs when missing"""
|
||||
with tempfile.TemporaryDirectory() as testdir, TmpCwd(
|
||||
testdir
|
||||
), tempfile.TemporaryDirectory() as sdk_path:
|
||||
with (
|
||||
tempfile.TemporaryDirectory() as testdir,
|
||||
TmpCwd(testdir),
|
||||
tempfile.TemporaryDirectory() as sdk_path,
|
||||
):
|
||||
ndk_r24 = os.path.join(sdk_path, 'ndk', '24.0.8215888')
|
||||
os.makedirs(ndk_r24)
|
||||
with open(os.path.join(ndk_r24, 'source.properties'), 'w') as fp:
|
||||
@@ -429,14 +440,18 @@ class BuildTest(unittest.TestCase):
|
||||
fp.write('Pkg.Revision = %s\n' % ndk_version)
|
||||
|
||||
# use "as _ignored" just to make a pretty layout
|
||||
with mock.patch(
|
||||
'fdroidserver.common.replace_build_vars', wraps=make_fake_apk
|
||||
) as _ignored, mock.patch(
|
||||
'fdroidserver.common.get_apk_id',
|
||||
return_value=(app.id, build.versionCode, build.versionName),
|
||||
) as _ignored, mock.patch(
|
||||
'sdkmanager.install', wraps=fake_sdkmanager_install
|
||||
) as _ignored:
|
||||
with (
|
||||
mock.patch(
|
||||
'fdroidserver.common.replace_build_vars', wraps=make_fake_apk
|
||||
) as _ignored,
|
||||
mock.patch(
|
||||
'fdroidserver.common.get_apk_id',
|
||||
return_value=(app.id, build.versionCode, build.versionName),
|
||||
) as _ignored,
|
||||
mock.patch(
|
||||
'sdkmanager.install', wraps=fake_sdkmanager_install
|
||||
) as _ignored,
|
||||
):
|
||||
_ignored # silence the linters
|
||||
self.assertFalse(ndk_dir.exists())
|
||||
self.assertFalse('r21e' in config['ndk_paths'])
|
||||
@@ -639,19 +654,18 @@ class BuildTest(unittest.TestCase):
|
||||
test_compare_file = os.path.join(
|
||||
'tmp', 'binaries', '%s_%d.binary.apk' % (appid, build['versionCode'])
|
||||
)
|
||||
with mock.patch(
|
||||
'fdroidserver.common.force_exit', lambda *args: None
|
||||
) as a, mock.patch(
|
||||
'fdroidserver.common.get_android_tools_version_log', lambda: 'fake'
|
||||
) as b, mock.patch(
|
||||
'fdroidserver.common.FDroidPopen', FakeProcess
|
||||
) as c, mock.patch(
|
||||
'fdroidserver.build.FDroidPopen', FakeProcess
|
||||
) as d, mock.patch(
|
||||
'fdroidserver.build.trybuild', lambda *args: True
|
||||
) as e, mock.patch(
|
||||
'fdroidserver.net.download_file', lambda *args, **kwargs: None
|
||||
) as f:
|
||||
with (
|
||||
mock.patch('fdroidserver.common.force_exit', lambda *args: None) as a,
|
||||
mock.patch(
|
||||
'fdroidserver.common.get_android_tools_version_log', lambda: 'fake'
|
||||
) as b,
|
||||
mock.patch('fdroidserver.common.FDroidPopen', FakeProcess) as c,
|
||||
mock.patch('fdroidserver.build.FDroidPopen', FakeProcess) as d,
|
||||
mock.patch('fdroidserver.build.trybuild', lambda *args: True) as e,
|
||||
mock.patch(
|
||||
'fdroidserver.net.download_file', lambda *args, **kwargs: None
|
||||
) as f,
|
||||
):
|
||||
a, b, c, d, e, f # silence linters' "unused" warnings
|
||||
|
||||
with mock.patch('sys.argv', ['fdroid build', appid]):
|
||||
@@ -732,31 +746,33 @@ class BuildTest(unittest.TestCase):
|
||||
test_compare_file = os.path.join(
|
||||
'tmp', 'binaries', '%s_%d.binary.apk' % (appid, build['versionCode'])
|
||||
)
|
||||
with mock.patch(
|
||||
'fdroidserver.common.force_exit', lambda *args: None
|
||||
) as a, mock.patch(
|
||||
'fdroidserver.common.get_android_tools_version_log', lambda: 'fake'
|
||||
) as b, mock.patch(
|
||||
'fdroidserver.common.FDroidPopen', FakeProcess
|
||||
) as c, mock.patch(
|
||||
'fdroidserver.build.FDroidPopen', FakeProcess
|
||||
) as d, mock.patch(
|
||||
'fdroidserver.build.trybuild', lambda *args: True
|
||||
) as e, mock.patch(
|
||||
'fdroidserver.net.download_file', lambda *args, **kwargs: None
|
||||
) as f:
|
||||
with (
|
||||
mock.patch('fdroidserver.common.force_exit', lambda *args: None) as a,
|
||||
mock.patch(
|
||||
'fdroidserver.common.get_android_tools_version_log', lambda: 'fake'
|
||||
) as b,
|
||||
mock.patch('fdroidserver.common.FDroidPopen', FakeProcess) as c,
|
||||
mock.patch('fdroidserver.build.FDroidPopen', FakeProcess) as d,
|
||||
mock.patch('fdroidserver.build.trybuild', lambda *args: True) as e,
|
||||
mock.patch(
|
||||
'fdroidserver.net.download_file', lambda *args, **kwargs: None
|
||||
) as f,
|
||||
):
|
||||
a, b, c, d, e, f # silence linters' "unused" warnings
|
||||
|
||||
with mock.patch('sys.argv', ['fdroid build', appid]):
|
||||
# successful comparison, successful signer
|
||||
open(production_result, 'w').close()
|
||||
open(production_compare_file, 'w').close()
|
||||
with mock.patch(
|
||||
'fdroidserver.common.verify_apks', lambda *args: None
|
||||
) as g, mock.patch(
|
||||
'fdroidserver.common.apk_signer_fingerprint',
|
||||
lambda *args: expected_key,
|
||||
) as h:
|
||||
with (
|
||||
mock.patch(
|
||||
'fdroidserver.common.verify_apks', lambda *args: None
|
||||
) as g,
|
||||
mock.patch(
|
||||
'fdroidserver.common.apk_signer_fingerprint',
|
||||
lambda *args: expected_key,
|
||||
) as h,
|
||||
):
|
||||
g, h
|
||||
fdroidserver.build.main()
|
||||
self.assertTrue(os.path.exists(production_result))
|
||||
@@ -764,12 +780,15 @@ class BuildTest(unittest.TestCase):
|
||||
# successful comparison, failed signer
|
||||
open(production_result, 'w').close()
|
||||
open(production_compare_file, 'w').close()
|
||||
with mock.patch(
|
||||
'fdroidserver.common.verify_apks', lambda *args: None
|
||||
) as g, mock.patch(
|
||||
'fdroidserver.common.apk_signer_fingerprint',
|
||||
lambda *args: bogus_key,
|
||||
) as h:
|
||||
with (
|
||||
mock.patch(
|
||||
'fdroidserver.common.verify_apks', lambda *args: None
|
||||
) as g,
|
||||
mock.patch(
|
||||
'fdroidserver.common.apk_signer_fingerprint',
|
||||
lambda *args: bogus_key,
|
||||
) as h,
|
||||
):
|
||||
g, h
|
||||
fdroidserver.build.main()
|
||||
self.assertFalse(os.path.exists(production_result))
|
||||
@@ -788,12 +807,15 @@ class BuildTest(unittest.TestCase):
|
||||
# successful comparison, successful signer
|
||||
open(test_result, 'w').close()
|
||||
open(test_compare_file, 'w').close()
|
||||
with mock.patch(
|
||||
'fdroidserver.common.verify_apks', lambda *args: None
|
||||
) as g, mock.patch(
|
||||
'fdroidserver.common.apk_signer_fingerprint',
|
||||
lambda *args: expected_key,
|
||||
) as h:
|
||||
with (
|
||||
mock.patch(
|
||||
'fdroidserver.common.verify_apks', lambda *args: None
|
||||
) as g,
|
||||
mock.patch(
|
||||
'fdroidserver.common.apk_signer_fingerprint',
|
||||
lambda *args: expected_key,
|
||||
) as h,
|
||||
):
|
||||
g, h
|
||||
fdroidserver.build.main()
|
||||
self.assertTrue(os.path.exists(test_result))
|
||||
@@ -803,12 +825,15 @@ class BuildTest(unittest.TestCase):
|
||||
# successful comparison, failed signer
|
||||
open(test_result, 'w').close()
|
||||
open(test_compare_file, 'w').close()
|
||||
with mock.patch(
|
||||
'fdroidserver.common.verify_apks', lambda *args: None
|
||||
) as g, mock.patch(
|
||||
'fdroidserver.common.apk_signer_fingerprint',
|
||||
lambda *args: bogus_key,
|
||||
) as h:
|
||||
with (
|
||||
mock.patch(
|
||||
'fdroidserver.common.verify_apks', lambda *args: None
|
||||
) as g,
|
||||
mock.patch(
|
||||
'fdroidserver.common.apk_signer_fingerprint',
|
||||
lambda *args: bogus_key,
|
||||
) as h,
|
||||
):
|
||||
g, h
|
||||
fdroidserver.build.main()
|
||||
self.assertTrue(os.path.exists(test_result))
|
||||
|
||||
@@ -249,10 +249,12 @@ class CheckupdatesTest(unittest.TestCase):
|
||||
|
||||
vcs = mock.Mock()
|
||||
vcs.latesttags.return_value = ['1.1.9', '1.1.8']
|
||||
with mock.patch(
|
||||
'pathlib.Path.read_text', lambda a: 'v1.1.9\nc10109'
|
||||
) as _ignored, mock.patch.object(Path, 'is_file') as mock_path, mock.patch(
|
||||
'fdroidserver.common.getvcs', return_value=vcs
|
||||
with (
|
||||
mock.patch(
|
||||
'pathlib.Path.read_text', lambda a: 'v1.1.9\nc10109'
|
||||
) as _ignored,
|
||||
mock.patch.object(Path, 'is_file') as mock_path,
|
||||
mock.patch('fdroidserver.common.getvcs', return_value=vcs),
|
||||
):
|
||||
_ignored # silence the linters
|
||||
mock_path.is_file.return_falue = True
|
||||
@@ -261,10 +263,12 @@ class CheckupdatesTest(unittest.TestCase):
|
||||
self.assertEqual(vercode, 10109)
|
||||
|
||||
app.UpdateCheckData = r'b.txt|c(.*)|.|v(.*)'
|
||||
with mock.patch(
|
||||
'pathlib.Path.read_text', lambda a: 'v1.1.0\nc10109'
|
||||
) as _ignored, mock.patch.object(Path, 'is_file') as mock_path, mock.patch(
|
||||
'fdroidserver.common.getvcs', return_value=vcs
|
||||
with (
|
||||
mock.patch(
|
||||
'pathlib.Path.read_text', lambda a: 'v1.1.0\nc10109'
|
||||
) as _ignored,
|
||||
mock.patch.object(Path, 'is_file') as mock_path,
|
||||
mock.patch('fdroidserver.common.getvcs', return_value=vcs),
|
||||
):
|
||||
_ignored # silence the linters
|
||||
mock_path.is_file.return_falue = True
|
||||
@@ -273,10 +277,12 @@ class CheckupdatesTest(unittest.TestCase):
|
||||
self.assertEqual(vercode, 10109)
|
||||
|
||||
app.UpdateCheckData = r'b.txt|c(.*)||'
|
||||
with mock.patch(
|
||||
'pathlib.Path.read_text', lambda a: 'v1.1.9\nc10109'
|
||||
) as _ignored, mock.patch.object(Path, 'is_file') as mock_path, mock.patch(
|
||||
'fdroidserver.common.getvcs', return_value=vcs
|
||||
with (
|
||||
mock.patch(
|
||||
'pathlib.Path.read_text', lambda a: 'v1.1.9\nc10109'
|
||||
) as _ignored,
|
||||
mock.patch.object(Path, 'is_file') as mock_path,
|
||||
mock.patch('fdroidserver.common.getvcs', return_value=vcs),
|
||||
):
|
||||
_ignored # silence the linters
|
||||
mock_path.is_file.return_falue = True
|
||||
@@ -286,10 +292,12 @@ class CheckupdatesTest(unittest.TestCase):
|
||||
|
||||
vcs.latesttags.return_value = ['Android-1.1.0', '1.1.8']
|
||||
app.UpdateCheckData = r'b.txt|c(.*)||Android-([\d.]+)'
|
||||
with mock.patch(
|
||||
'pathlib.Path.read_text', lambda a: 'v1.1.9\nc10109'
|
||||
) as _ignored, mock.patch.object(Path, 'is_file') as mock_path, mock.patch(
|
||||
'fdroidserver.common.getvcs', return_value=vcs
|
||||
with (
|
||||
mock.patch(
|
||||
'pathlib.Path.read_text', lambda a: 'v1.1.9\nc10109'
|
||||
) as _ignored,
|
||||
mock.patch.object(Path, 'is_file') as mock_path,
|
||||
mock.patch('fdroidserver.common.getvcs', return_value=vcs),
|
||||
):
|
||||
_ignored # silence the linters
|
||||
mock_path.is_file.return_falue = True
|
||||
|
||||
@@ -1085,11 +1085,13 @@ class GitHubReleasesTest(unittest.TestCase):
|
||||
|
||||
fri_mock = unittest.mock.Mock(return_value="fri_result")
|
||||
urr_mock = unittest.mock.Mock()
|
||||
with unittest.mock.patch(
|
||||
"fdroidserver.deploy.find_release_infos", fri_mock
|
||||
), unittest.mock.patch(
|
||||
"fdroidserver.deploy.upload_to_github_releases_repo", urr_mock
|
||||
), tempfile.TemporaryDirectory() as tmpdir:
|
||||
with (
|
||||
unittest.mock.patch("fdroidserver.deploy.find_release_infos", fri_mock),
|
||||
unittest.mock.patch(
|
||||
"fdroidserver.deploy.upload_to_github_releases_repo", urr_mock
|
||||
),
|
||||
tempfile.TemporaryDirectory() as tmpdir,
|
||||
):
|
||||
with open(Path(tmpdir) / "index-v2.json", "w") as f:
|
||||
f.write("")
|
||||
|
||||
|
||||
@@ -108,10 +108,13 @@ class GithubApiTest(unittest.TestCase):
|
||||
api = fdroidserver.github.GithubApi('faketoken', 'fakerepopath')
|
||||
uomock = mock_urlopen()
|
||||
|
||||
with unittest.mock.patch(
|
||||
'fdroidserver.github.open',
|
||||
unittest.mock.mock_open(read_data=b"fake_content"),
|
||||
), unittest.mock.patch("urllib.request.urlopen", uomock):
|
||||
with (
|
||||
unittest.mock.patch(
|
||||
'fdroidserver.github.open',
|
||||
unittest.mock.mock_open(read_data=b"fake_content"),
|
||||
),
|
||||
unittest.mock.patch("urllib.request.urlopen", uomock),
|
||||
):
|
||||
success = api._create_release_asset('fake_id', 'fake_file')
|
||||
|
||||
self.assertTrue(success)
|
||||
|
||||
@@ -130,13 +130,15 @@ class ImportTest(unittest.TestCase):
|
||||
shutil.copytree(basedir / 'source-files' / appid, tmp_importer)
|
||||
|
||||
app = fdroidserver.import_subcommand.get_app_from_url(url)
|
||||
with mock.patch(
|
||||
'fdroidserver.common.getvcs',
|
||||
lambda a, b, c: fdroidserver.common.vcs(url, testdir),
|
||||
), mock.patch(
|
||||
'fdroidserver.common.vcs.gotorevision', lambda s, rev: None
|
||||
), mock.patch(
|
||||
'shutil.rmtree', lambda a, onerror=None: None
|
||||
with (
|
||||
mock.patch(
|
||||
'fdroidserver.common.getvcs',
|
||||
lambda a, b, c: fdroidserver.common.vcs(url, testdir),
|
||||
),
|
||||
mock.patch(
|
||||
'fdroidserver.common.vcs.gotorevision', lambda s, rev: None
|
||||
),
|
||||
mock.patch('shutil.rmtree', lambda a, onerror=None: None),
|
||||
):
|
||||
build_dir = fdroidserver.import_subcommand.clone_to_tmp_dir(app)
|
||||
self.assertEqual('git', app.RepoType)
|
||||
|
||||
Reference in New Issue
Block a user