# http://www.drdobbs.com/testing/unit-testing-with-python/240165163
import inspect
+import logging
import optparse
import os
import re
self.assertTrue(os.path.exists(path))
self.assertTrue(os.path.isfile(path))
+ def setUp(self):
+ logging.basicConfig(level=logging.DEBUG)
+ self.basedir = os.path.join(localmodule, 'tests')
+ self.tmpdir = os.path.abspath(os.path.join(self.basedir, '..', '.testfiles'))
+ if not os.path.exists(self.tmpdir):
+ os.makedirs(self.tmpdir)
+ os.chdir(self.basedir)
+
def test_force_gradle_build_tools(self):
- testsbase = os.path.join(os.path.dirname(__file__), '..', '.testfiles')
- if not os.path.exists(testsbase):
- os.makedirs(testsbase)
- testsdir = tempfile.mkdtemp(prefix='test_adapt_gradle', dir=testsbase)
+ testdir = tempfile.mkdtemp(prefix=inspect.currentframe().f_code.co_name, dir=self.tmpdir)
shutil.copytree(os.path.join(os.path.dirname(__file__), 'source-files'),
- os.path.join(testsdir, 'source-files'))
+ os.path.join(testdir, 'source-files'))
teststring = 'FAKE_VERSION_FOR_TESTING'
- fdroidserver.build.force_gradle_build_tools(testsdir, teststring)
+ fdroidserver.build.force_gradle_build_tools(testdir, teststring)
pattern = re.compile(bytes("buildToolsVersion[\s=]+'%s'\s+" % teststring, 'utf8'))
for p in ('source-files/fdroid/fdroidclient/build.gradle',
'source-files/Zillode/syncthing-silk/build.gradle',
'source-files/open-keychain/open-keychain/build.gradle',
'source-files/osmandapp/osmand/build.gradle',
'source-files/open-keychain/open-keychain/OpenKeychain/build.gradle'):
- with open(os.path.join(testsdir, p), 'rb') as f:
+ with open(os.path.join(testdir, p), 'rb') as f:
filedata = f.read()
self.assertIsNotNone(pattern.search(filedata))
testint = 99999999
teststr = 'FAKE_STR_FOR_TESTING'
- tmptestsdir = tempfile.mkdtemp(prefix='test_prepare_sources', dir=self.tmpdir)
+ testdir = tempfile.mkdtemp(prefix=inspect.currentframe().f_code.co_name, dir=self.tmpdir)
shutil.copytree(os.path.join(self.basedir, 'source-files'),
- os.path.join(tmptestsdir, 'source-files'))
+ os.path.join(testdir, 'source-files'))
- testdir = os.path.join(tmptestsdir, 'source-files', 'fdroid', 'fdroidclient')
+ fdroidclient_testdir = os.path.join(testdir, 'source-files', 'fdroid', 'fdroidclient')
config = dict()
config['sdk_path'] = os.getenv('ANDROID_HOME')
def getsrclib(self):
return None
- fdroidserver.common.prepare_source(FakeVcs(), app, build, testdir, testdir, testdir)
+ fdroidserver.common.prepare_source(FakeVcs(), app, build,
+ fdroidclient_testdir, fdroidclient_testdir, fdroidclient_testdir)
- with open(os.path.join(testdir, 'build.gradle'), 'r') as f:
+ with open(os.path.join(fdroidclient_testdir, 'build.gradle'), 'r') as f:
filedata = f.read()
self.assertIsNotNone(re.search("\s+compileSdkVersion %s\s+" % testint, filedata))
- with open(os.path.join(testdir, 'AndroidManifest.xml')) as f:
+ with open(os.path.join(fdroidclient_testdir, 'AndroidManifest.xml')) as f:
filedata = f.read()
self.assertIsNone(re.search('android:debuggable', filedata))
self.assertIsNotNone(re.search('android:versionName="%s"' % build.versionName, filedata))
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(CommonTest))
- unittest.main(failfast=True)
+ unittest.main(failfast=False)
# http://www.drdobbs.com/testing/unit-testing-with-python/240165163
import inspect
+import logging
import optparse
import os
import requests
class ImportTest(unittest.TestCase):
'''fdroid import'''
+ def setUp(self):
+ logging.basicConfig(level=logging.DEBUG)
+ self.basedir = os.path.join(localmodule, 'tests')
+ self.tmpdir = os.path.abspath(os.path.join(self.basedir, '..', '.testfiles'))
+ if not os.path.exists(self.tmpdir):
+ os.makedirs(self.tmpdir)
+ os.chdir(self.basedir)
+
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)
#!/usr/bin/env python3
import inspect
+import logging
import optparse
import os
import sys
class IndexTest(unittest.TestCase):
def setUp(self):
+ logging.basicConfig(level=logging.DEBUG)
+ self.basedir = os.path.join(localmodule, 'tests')
+ self.tmpdir = os.path.abspath(os.path.join(self.basedir, '..', '.testfiles'))
+ if not os.path.exists(self.tmpdir):
+ os.makedirs(self.tmpdir)
+ os.chdir(self.basedir)
+
fdroidserver.common.config = None
config = fdroidserver.common.read_config(fdroidserver.common.options)
config['jarsigner'] = fdroidserver.common.find_sdk_tools_cmd('jarsigner')
fdroidserver.common.config = config
fdroidserver.signindex.config = config
- @staticmethod
- def test_verify_jar_signature_succeeds():
- basedir = os.path.dirname(__file__)
- source_dir = os.path.join(basedir, 'signindex')
+ def test_verify_jar_signature_succeeds(self):
+ source_dir = os.path.join(self.basedir, 'signindex')
for f in ('testy.jar', 'guardianproject.jar'):
testfile = os.path.join(source_dir, f)
fdroidserver.common.verify_jar_signature(testfile)
def test_verify_jar_signature_fails(self):
- basedir = os.path.dirname(__file__)
- source_dir = os.path.join(basedir, 'signindex')
+ source_dir = os.path.join(self.basedir, 'signindex')
testfile = os.path.join(source_dir, 'unsigned.jar')
with self.assertRaises(fdroidserver.index.VerificationException):
fdroidserver.common.verify_jar_signature(testfile)
def test_get_public_key_from_jar_succeeds(self):
- basedir = os.path.dirname(__file__)
- source_dir = os.path.join(basedir, 'signindex')
+ source_dir = os.path.join(self.basedir, 'signindex')
for f in ('testy.jar', 'guardianproject.jar'):
testfile = os.path.join(source_dir, f)
jar = zipfile.ZipFile(testfile)
self.assertTrue(fingerprint == GP_FINGERPRINT)
def test_get_public_key_from_jar_fails(self):
- basedir = os.path.dirname(__file__)
- source_dir = os.path.join(basedir, 'signindex')
+ source_dir = os.path.join(self.basedir, 'signindex')
testfile = os.path.join(source_dir, 'unsigned.jar')
jar = zipfile.ZipFile(testfile)
with self.assertRaises(fdroidserver.index.VerificationException):
if __name__ == "__main__":
- if os.path.basename(os.getcwd()) != 'tests' and os.path.isdir('tests'):
- os.chdir('tests')
-
parser = optparse.OptionParser()
parser.add_option("-v", "--verbose", action="store_true", default=False,
help="Spew out even more information than normal")
import glob
import inspect
+import logging
import optparse
import os
import random
class MetadataTest(unittest.TestCase):
'''fdroidserver/metadata.py'''
+ def setUp(self):
+ logging.basicConfig(level=logging.DEBUG)
+ self.basedir = os.path.join(localmodule, 'tests')
+ self.tmpdir = os.path.abspath(os.path.join(self.basedir, '..', '.testfiles'))
+ if not os.path.exists(self.tmpdir):
+ os.makedirs(self.tmpdir)
+ os.chdir(self.basedir)
+
def test_read_metadata(self):
def _build_yaml_representer(dumper, data):
'''Creates a YAML representation of a Build instance'''
return dumper.represent_dict(data)
- testsdir = os.path.dirname(__file__)
- os.chdir(testsdir)
-
self.maxDiff = None
# these need to be set to prevent code running on None, only
# yaml.dump(frommeta, f, default_flow_style=False)
def test_rewrite_yaml_fakeotaupdate(self):
-
- # setup/reset test dir if necessary and setup params
- tmpdir = os.path.join(os.path.dirname(__file__), '..', '.testfiles')
- if not os.path.exists(tmpdir):
- os.makedirs(tmpdir)
- testdir = tempfile.mkdtemp(prefix='test_rewrite_metadata_', dir=tmpdir)
+ testdir = tempfile.mkdtemp(prefix=inspect.currentframe().f_code.co_name, dir=self.tmpdir)
fdroidserver.common.config = {'accepted_formats': ['txt', 'yml']}
# rewrite metadata
self.assertEqual(result.read(), orig.read())
def test_rewrite_yaml_fdroidclient(self):
-
- # setup/reset test dir if necessary and setup params
- tmpdir = os.path.join(os.path.dirname(__file__), '..', '.testfiles')
- if not os.path.exists(tmpdir):
- os.makedirs(tmpdir)
- testdir = tempfile.mkdtemp(prefix='test_rewrite_metadata_', dir=tmpdir)
+ testdir = tempfile.mkdtemp(prefix=inspect.currentframe().f_code.co_name, dir=self.tmpdir)
fdroidserver.common.config = {'accepted_formats': ['txt', 'yml']}
# rewrite metadata
self.assertEqual(result.read(), orig.read())
def test_rewrite_yaml_special_build_params(self):
-
- # setup/reset test dir if necessary and setup params
- tmpdir = os.path.join(os.path.dirname(__file__), '..', '.testfiles')
- if not os.path.exists(tmpdir):
- os.makedirs(tmpdir)
- testdir = tempfile.mkdtemp(prefix='test_rewrite_metadata_', dir=tmpdir)
+ testdir = tempfile.mkdtemp(prefix=inspect.currentframe().f_code.co_name, dir=self.tmpdir)
fdroidserver.common.config = {'accepted_formats': ['txt', 'yml']}
# rewrite metadata
self.assertEqual(result.read(), orig.read())
def test_read_metadata_sort_by_time(self):
- # setup/reset test dir if necessary and setup params
- testbasedir = os.path.dirname(__file__)
- tmpdir = os.path.join(testbasedir, '..', '.testfiles')
- if not os.path.exists(tmpdir):
- os.makedirs(tmpdir)
- testdir = tempfile.mkdtemp(prefix='test_read_metadata_sort_by_time_', dir=tmpdir)
+ testdir = tempfile.mkdtemp(prefix=inspect.currentframe().f_code.co_name, dir=self.tmpdir)
metadatadir = os.path.join(testdir, 'metadata')
os.makedirs(metadatadir)
fdroidserver.common.config = {'accepted_formats': ['txt']}
randomlist = []
- randomapps = glob.glob(os.path.join(testbasedir, 'metadata', '*.txt'))
+ randomapps = glob.glob(os.path.join(self.basedir, 'metadata', '*.txt'))
random.shuffle(randomapps)
i = 1
for f in randomapps:
#
import inspect
+import logging
import optparse
import os
import sys
class PublishTest(unittest.TestCase):
'''fdroidserver/publish.py'''
+ def setUp(self):
+ logging.basicConfig(level=logging.DEBUG)
+ self.basedir = os.path.join(localmodule, 'tests')
+ self.tmpdir = os.path.abspath(os.path.join(self.basedir, '..', '.testfiles'))
+ if not os.path.exists(self.tmpdir):
+ os.makedirs(self.tmpdir)
+ os.chdir(self.basedir)
+
def test_key_alias(self):
publish.config = {}
self.assertEqual('a163ec9b', publish.key_alias('com.example.app'))
'com.example.anotherapp',
'org.org.org']
- with tempfile.TemporaryDirectory() as tmpdir:
- orig_cwd = os.getcwd()
- try:
- os.chdir(tmpdir)
- with open('config.py', 'w') as f:
- pass
-
- publish.store_stats_fdroid_signing_key_fingerprints(appids, indent=2)
-
- self.maxDiff = None
- expected = {
- "com.example.anotherapp": {
- "signer": "fa3f6a017541ee7fe797be084b1bcfbf92418a7589ef1f7fdeb46741b6d2e9c3"
- },
- "com.example.app": {
- "signer": "d34f678afbaa8f2fa6cc0edd6f0c2d1d2e2e9eb08bea521b24c740806016bff4"
- },
- "org.org.org": {
- "signer": "277655a6235bc6b0ef2d824396c51ba947f5ebc738c293d887e7083ff338af82"
- },
- "org.test.testy": {
- "signer": "6ae5355157a47ddcc3834a71f57f6fb5a8c2621c8e0dc739e9ddf59f865e497c"
- }
- }
- self.assertEqual(expected, common.load_stats_fdroid_signing_key_fingerprints())
-
- with open('config.py', 'r') as f:
- self.assertEqual(textwrap.dedent('''\
-
- repo_key_sha256 = "c58460800c7b250a619c30c13b07b7359a43e5af71a4352d86c58ae18c9f6d41"
- '''), f.read())
- finally:
- os.chdir(orig_cwd)
+ testdir = tempfile.mkdtemp(prefix=inspect.currentframe().f_code.co_name, dir=self.tmpdir)
+ os.chdir(testdir)
+ with open('config.py', 'w') as f:
+ pass
+
+ publish.store_stats_fdroid_signing_key_fingerprints(appids, indent=2)
+
+ self.maxDiff = None
+ expected = {
+ "com.example.anotherapp": {
+ "signer": "fa3f6a017541ee7fe797be084b1bcfbf92418a7589ef1f7fdeb46741b6d2e9c3"
+ },
+ "com.example.app": {
+ "signer": "d34f678afbaa8f2fa6cc0edd6f0c2d1d2e2e9eb08bea521b24c740806016bff4"
+ },
+ "org.org.org": {
+ "signer": "277655a6235bc6b0ef2d824396c51ba947f5ebc738c293d887e7083ff338af82"
+ },
+ "org.test.testy": {
+ "signer": "6ae5355157a47ddcc3834a71f57f6fb5a8c2621c8e0dc739e9ddf59f865e497c"
+ }
+ }
+ self.assertEqual(expected, common.load_stats_fdroid_signing_key_fingerprints())
+
+ with open('config.py', 'r') as f:
+ self.assertEqual(textwrap.dedent('''\
+
+ repo_key_sha256 = "c58460800c7b250a619c30c13b07b7359a43e5af71a4352d86c58ae18c9f6d41"
+ '''), f.read())
def test_store_and_load_fdroid_signing_key_fingerprints_with_missmatch(self):
common.config = {}
publish.config['repo_keyalias'] = 'repokey'
publish.config['repo_key_sha256'] = 'bad bad bad bad bad bad bad bad bad bad bad bad'
- with tempfile.TemporaryDirectory() as tmpdir:
- orig_cwd = os.getcwd()
- try:
- os.chdir(tmpdir)
- publish.store_stats_fdroid_signing_key_fingerprints({}, indent=2)
- with self.assertRaises(FDroidException):
- common.load_stats_fdroid_signing_key_fingerprints()
- finally:
- os.chdir(orig_cwd)
+ testdir = tempfile.mkdtemp(prefix=inspect.currentframe().f_code.co_name, dir=self.tmpdir)
+ os.chdir(testdir)
+ publish.store_stats_fdroid_signing_key_fingerprints({}, indent=2)
+ with self.assertRaises(FDroidException):
+ common.load_stats_fdroid_signing_key_fingerprints()
if __name__ == "__main__":
- if os.path.basename(os.getcwd()) != 'tests' and os.path.isdir('tests'):
- os.chdir('tests')
-
parser = optparse.OptionParser()
parser.add_option("-v", "--verbose", action="store_true", default=False,
help="Spew out even more information than normal")