mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-09-14 15:02:51 +03:00

This allows a source repo to include a complete metadata file so that it can be built directly in place using `fdroid build`. If that app is then included in fdroiddata, it will first load the source repo type and URL from fdroiddata, then read .fdroid.yml if it exists, then include the rest of the metadata as specified in fdroiddata, so that fdroiddata has precedence over the metadata in the source code. This lets `fdroid build` apps without having a whole fdroiddata setup, but instead just directly in place in the source code. This also lets devs optionallu maintain the fdroid metadata as part of their app, rather than in fdroiddata without loosing any control. This should make it easier to spread around the maintenance load.
57 lines
1.8 KiB
Python
Executable file
57 lines
1.8 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
# http://www.drdobbs.com/testing/unit-testing-with-python/240165163
|
|
|
|
import inspect
|
|
import optparse
|
|
import os
|
|
import requests
|
|
import sys
|
|
import unittest
|
|
|
|
localmodule = os.path.realpath(
|
|
os.path.join(os.path.dirname(inspect.getfile(inspect.currentframe())), '..'))
|
|
print('localmodule: ' + localmodule)
|
|
if localmodule not in sys.path:
|
|
sys.path.insert(0, localmodule)
|
|
|
|
import fdroidserver.common
|
|
import fdroidserver.metadata
|
|
# work around the syntax error from: import fdroidserver.import
|
|
import import_proxy
|
|
|
|
|
|
class ImportTest(unittest.TestCase):
|
|
'''fdroid import'''
|
|
|
|
def test_import_gitlab(self):
|
|
os.chdir(os.path.dirname(__file__))
|
|
# FDroidPopen needs some config to work
|
|
config = dict()
|
|
fdroidserver.common.fill_config_defaults(config)
|
|
fdroidserver.common.config = config
|
|
|
|
url = 'https://gitlab.com/eighthave/ci-test-app'
|
|
r = requests.head(url)
|
|
if r.status_code != 200:
|
|
print("ERROR", url, 'unreachable (', r.status_code, ')')
|
|
print('Skipping ImportTest!')
|
|
return
|
|
|
|
app = fdroidserver.metadata.get_default_app_info()
|
|
app.UpdateCheckMode = "Tags"
|
|
root_dir, src_dir = import_proxy.get_metadata_from_url(app, url)
|
|
self.assertEqual(app.RepoType, 'git')
|
|
self.assertEqual(app.WebSite, 'https://gitlab.com/eighthave/ci-test-app')
|
|
self.assertEqual(app.Repo, 'https://gitlab.com/eighthave/ci-test-app.git')
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = optparse.OptionParser()
|
|
parser.add_option("-v", "--verbose", action="store_true", default=False,
|
|
help="Spew out even more information than normal")
|
|
(fdroidserver.common.options, args) = parser.parse_args(['--verbose'])
|
|
|
|
newSuite = unittest.TestSuite()
|
|
newSuite.addTest(unittest.makeSuite(ImportTest))
|
|
unittest.main()
|