scanner: fix tests so they work on all tested platforms

The standard test configuration is needed to make the tests reliably. Also,
these tests used some odd yield logic.  Who knows what exactly failed, but
these tests should be reliable.

* https://gitlab.com/fdroid/fdroidserver/-/jobs/44984595
* https://gitlab.com/fdroid/fdroidserver/-/jobs/44984596
* https://travis-ci.org/f-droid/fdroidserver/builds/318071369
This commit is contained in:
Hans-Christoph Steiner 2017-12-19 22:51:03 +01:00
parent 86c5598307
commit 39b76b0eda
1 changed files with 25 additions and 9 deletions

View File

@ -1,25 +1,41 @@
#!/usr/bin/env python3
import unittest
import glob
import inspect
import logging
import optparse
from pathlib import Path
from os.path import basename, dirname, realpath
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)
from fdroidserver import scanner
from fdroidserver.metadata import Build
import fdroidserver.common
import fdroidserver.metadata
import fdroidserver.scanner
class ScannerTest(unittest.TestCase):
def setUp(self):
logging.basicConfig(level=logging.INFO)
self.basedir = os.path.join(localmodule, 'tests')
def test_scan_source_files(self):
source_files = Path(dirname(realpath(__file__)), 'source-files')
source_files = os.path.join(self.basedir, 'source-files')
projects = {
'Zillode': 1,
'firebase-suspect': 1
}
for d in (str(p) for p in source_files.iterdir()):
fatal_problems = scanner.scan_source(d, Build())
self.assertEqual(projects.get(basename(d), 0), fatal_problems)
for d in glob.glob(os.path.join(source_files, '*')):
build = fdroidserver.metadata.Build()
fatal_problems = fdroidserver.scanner.scan_source(d, build)
self.assertEqual(projects.get(os.path.basename(d), 0),
fatal_problems)
if __name__ == "__main__":