From 45efb88f852146f9f5d88748450620af2378a268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20P=C3=B6hn?= Date: Thu, 4 Apr 2024 16:43:56 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=95=B4=EF=B8=8F=20add=20test=20for=20make?= =?UTF-8?q?=5Faltstore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fdroidserver/index.py | 2 +- tests/index.TestCase | 91 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 1 deletion(-) diff --git a/fdroidserver/index.py b/fdroidserver/index.py index a25c2926..601cd9ce 100644 --- a/fdroidserver/index.py +++ b/fdroidserver/index.py @@ -1847,5 +1847,5 @@ def make_altstore(apps, apks, config, repodir, indent=None): if len(a['versions']) > 0: idx['apps'].append(a) - with open(os.path.join(repodir, 'altstore-index.json'), "w", encoding="utf-8") as f: + with open(Path(repodir) / 'altstore-index.json', "w", encoding="utf-8") as f: json.dump(idx, f, indent=indent) diff --git a/tests/index.TestCase b/tests/index.TestCase index 8eccec76..04a35c4b 100755 --- a/tests/index.TestCase +++ b/tests/index.TestCase @@ -829,6 +829,96 @@ class IndexTest(unittest.TestCase): index.add_mirrors_to_repodict('repo', repodict) +class AltstoreIndexTest(unittest.TestCase): + def test_make_altstore(self): + self.maxDiff = None + + apps = { + "app.fake": { + "AutoName": "Fake App", + "AuthorName": "Fake Author", + "iconv2": {"en_US": "fake_icon.png"}, + } + } + apks = [ + { + "packageName": "app.fake", + "apkName": "app.fake_123.ipa", + "versionName": "v123", + "added": datetime.datetime(2000, 2, 2, 2, 2, 2), + "size": 123, + "ipa_MinimumOSVersion": "10.0", + "ipa_DTPlatformVersion": "12.0", + "ipa_permissions": [ + "NSCameraUsageDescription", + "NSDocumentsFolderUsageDescription", + ], + "ipa_entitlements": [ + "com.apple.developer.team-identifier", + "com.apple.developer.web-browser", + "keychain-access-groups", + ], + }, + ] + config = { + "repo_icon": "fake_repo_icon.png", + "repo_name": "fake_repo", + "repo_url": "gopher://fake-repo.com/fdroid/repo" + } + + with tempfile.TemporaryDirectory() as tmpdir, TmpCwd(tmpdir): + repodir = Path(tmpdir) / 'repo' + repodir.mkdir() + + fdroidserver.index.make_altstore( + apps, + apks, + config, + repodir, + 2, + ) + + with open(repodir / "altstore-index.json", 'r') as f: + self.assertDictEqual( + { + "apps": [ + { + "appPermissions": { + "entitlements": [ + 'com.apple.developer.team-identifier', + 'com.apple.developer.web-browser', + 'keychain-access-groups', + ], + 'privacy': [ + 'NSCameraUsageDescription', + 'NSDocumentsFolderUsageDescription', + ], + }, + 'bundleIdentifier': 'app.fake', + 'developerName': 'Fake Author', + 'iconURL': 'gopher://fake-repo.com/fdroid/repo', + 'localizedDescription': '', + 'name': 'Fake App', + 'screenshots': [], + 'versions': [ + { + 'date': '2000-02-02T02:02:02', + 'downloadURL': 'gopher://fake-repo.com/fdroid/repo/app.fake_123.ipa', + 'maxOSVersion': '12.0', + 'minOSVersion': '10.0', + 'size': 123, + 'version': 'v123', + } + ], + }, + ], + 'name': 'fake_repo', + 'news': [], + }, + json.load(f) + ) + + if __name__ == "__main__": os.chdir(os.path.dirname(__file__)) @@ -845,4 +935,5 @@ if __name__ == "__main__": newSuite = unittest.TestSuite() newSuite.addTest(unittest.makeSuite(IndexTest)) + newSuite.addTest(unittest.makeSuite(AltstoreIndexTest)) unittest.main(failfast=False)