X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=test%2Ftest_dependency.py;h=bfcae8d03c260020a898010e33ce909c756ad6f7;hb=1936539e7ea6190f0022af5891fba2f6a094f697;hp=89d3a41a5064b8dc710a10e461b83a9a49572503;hpb=484bfa4de7d0507abbb2771081e9e58283726af8;p=archive%2F20170607%2Ftools%2Ftic-core.git diff --git a/test/test_dependency.py b/test/test_dependency.py index 89d3a41..bfcae8d 100644 --- a/test/test_dependency.py +++ b/test/test_dependency.py @@ -20,34 +20,43 @@ # - S-Core Co., Ltd import os +import base64 import time import unittest from tic.dependency import analyze_dependency from tic.parser.repo_parser import RepodataParser +from tic.repo import Repo +from tic.repo import get_repodata_from_repos current_milli_time = lambda: int(round(time.time() * 1000)) CWD = os.path.dirname(__file__) or '.' -TEST_REPODATA_LOC = os.path.join(CWD, 'dependency_fixtures') +TEST_REPODATA_LOC=os.path.join(CWD, 'dependency_fixtures') +DEFAULT_CACHEDIR='/var/tmp/tic-core/cached' def suite(): # return unittest.makeSuite(DependencyTest, ['testsun1', 'testTrue']) return unittest.makeSuite(DependencyTest) - + class DependencyTest(unittest.TestCase): def setUp(self): # test environment setup - self.repo_list = [os.path.join(TEST_REPODATA_LOC, 'repodata/base-primary.xml'), - os.path.join(TEST_REPODATA_LOC, 'repodata/mobile-primary.xml')] + self.repo_list = ['file:/' + TEST_REPODATA_LOC + '/base', + 'file:/' + TEST_REPODATA_LOC + '/mobile'] + + repos = [] + for repo_url in self.repo_list: + repos.append(Repo(base64.urlsafe_b64encode(repo_url), repo_url)) + self.repodata_list = get_repodata_from_repos(repos, DEFAULT_CACHEDIR) + self.pkg_group = None try: - repo_parser = RepodataParser(self.repo_list) + repo_parser = RepodataParser(self.repodata_list) self.pkg_group = repo_parser.parse() except Exception as e: raise self.failureException - - + def tearDown(self): # clear environment after test @@ -67,22 +76,20 @@ class DependencyTest(unittest.TestCase): for pkg_id in range(len(pkg_list)): pkg_info = pkg_list[pkg_id] self.assertEqual(pkg_id, pkg2id.get(pkg_info['name'])) - + def test_dependency(self): # 1st package install-depdency analysis - start_time = current_milli_time() analyze_dependency(self.pkg_group) # print('time:', current_milli_time() - start_time) pkg_list = self.pkg_group['pkg_list'] # 2nd package install-depdency analysis for test (using bruteforce) - test_repo_parser = RepodataParser(self.repo_list) + test_repo_parser = RepodataParser(self.repodata_list) test_pkg_group = test_repo_parser.parse() test_pkg_list = test_pkg_group.get('pkg_list') test_pkg2id = test_pkg_group.get('pkg2id') - start_time = current_milli_time() - count = 1; + count = 1 visited = [0]*len(test_pkg_list) for pkg_id in range(len(test_pkg_list)): visited[pkg_id] = count @@ -99,18 +106,22 @@ class DependencyTest(unittest.TestCase): pkg_info = pkg_list[pkg_id] test_pkg_info = test_pkg_list[test_pkg2id[pkg_info['name']]] + # package check if pkg_info['name'] != test_pkg_info['name']: raise self.failureException - elif len(pkg_info['dependency']) != len(test_pkg_info['dependency']): + + # dependency count + if len(pkg_info['dependency']) != len(test_pkg_info['dependency']): print('pkg_info_1:', pkg_info['dependency']) print('pkg_info_2:', test_pkg_info['dependency']) raise self.failureException + # dependency validation between pkg_info and test_pkg_info for dep in test_pkg_info.get('dependency'): if dep not in pkg_info['dependency']: print(dep, 'does not exist') raise self.failureException - + def dep_dfs(self, count, pkg_id, pkg_list, visited): dep_set = set([pkg_list[pkg_id]['name']])