add a basic test of `fdroid import`

This commit is contained in:
Hans-Christoph Steiner 2015-08-06 00:55:16 +02:00
parent 48397bfa3c
commit 707930ce0a
2 changed files with 76 additions and 0 deletions

50
tests/import.TestCase Executable file
View File

@ -0,0 +1,50 @@
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
# http://www.drdobbs.com/testing/unit-testing-with-python/240165163
import inspect
import optparse
import os
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):
# FDroidPopen needs some config to work
fdroidserver.common.config = dict()
fdroidserver.common.config['sdk_path'] = '/fake/path/to/android-sdk'
url = 'https://gitlab.com/fdroid/fdroidclient'
apps = dict()
appid, app = fdroidserver.metadata.get_default_app_info_list(apps)
app['Update Check Mode'] = "Tags"
root_dir, src_dir = import_proxy.get_metadata_from_url(app, url)
self.assertEquals(app['Repo Type'], 'git')
self.assertEquals(app['Web Site'], 'https://gitlab.com/fdroid/fdroidclient')
self.assertEquals(app['Repo'], 'https://gitlab.com/fdroid/fdroidclient.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()

26
tests/import_proxy.py Normal file
View File

@ -0,0 +1,26 @@
# workaround the syntax error from: import fdroidserver.import
import inspect
import os
import sys
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)
class Options:
def __init__(self):
self.rev = None
self.subdir = None
module = __import__('fdroidserver.import')
for name, obj in inspect.getmembers(module):
if name == 'import':
get_metadata_from_url = obj.get_metadata_from_url
obj.options = Options()
options = obj.options
break
globals().update(vars(module))