diff options
Diffstat (limited to 'pym/gentoolkit/test/eclean/test_search.py')
-rwxr-xr-x | pym/gentoolkit/test/eclean/test_search.py | 1221 |
1 files changed, 641 insertions, 580 deletions
diff --git a/pym/gentoolkit/test/eclean/test_search.py b/pym/gentoolkit/test/eclean/test_search.py index 5a20e38..714fbb5 100755 --- a/pym/gentoolkit/test/eclean/test_search.py +++ b/pym/gentoolkit/test/eclean/test_search.py @@ -12,8 +12,18 @@ import re import os from gentoolkit.test.eclean.distsupport import ( - FILES, TestDisfiles, OutputSimulator, Dbapi, CPVS, CPVS2, CPVS3, PROPS, - PKGS, CLEAN_ME, get_props) + FILES, + TestDisfiles, + OutputSimulator, + Dbapi, + CPVS, + CPVS2, + CPVS3, + PROPS, + PKGS, + CLEAN_ME, + get_props, +) import gentoolkit.eclean.search as search from gentoolkit.eclean.search import DistfilesSearch from gentoolkit.eclean.exclude import parseExcludeFile @@ -22,602 +32,653 @@ from gentoolkit.eclean.exclude import parseExcludeFile class DistLimits(DistfilesSearch): - """subclass the DistfilesSearch class in order to override a number of - functions to isolate & test""" + """subclass the DistfilesSearch class in order to override a number of + functions to isolate & test""" - def __init__(self, - output=lambda x: None, - portdb=None, - vardb=None, - ): - DistfilesSearch.__init__(self, output, portdb, vardb) - self.data = None + def __init__( + self, + output=lambda x: None, + portdb=None, + vardb=None, + ): + DistfilesSearch.__init__(self, output, portdb, vardb) + self.data = None - def set_data(self, data): - """sets the data for the functions to return for - the test being performed""" - self.data = data + def set_data(self, data): + """sets the data for the functions to return for + the test being performed""" + self.data = data class TestCheckLimits(unittest.TestCase): - """Test the eclean.search.DistfilesSearch._check_limits() group. - - it will test [ _get_default_checks(), _check_limits(), - _isreg_check_(), _size_check_(), _time_check_(), _filenames_check_()] - """ - - test_excludes = { - 'blank': {}, - 'filenames': { - 'filenames': {'help2man-1.37.1.tar.gz': re.compile(r'help2man-1\.37\.1\.tar\.gz')} - } - } - - def setUp(self): - self.testdata = [ - # test is_reg_limit alone, will give a base clean_me - { 'test': 'is_reg_limit', - 'params': (0, 0, self.test_excludes['blank']), - 'results': FILES[:], - 'output': [" - skipping size limit check", - " - skipping time limit check", - " - skipping exclude filenames check" - ] - }, - # test size_limit trip - { 'test': 'size_limit', - 'params': (1024000, 0, self.test_excludes['blank']), - 'results': FILES[:3] + FILES[4:], - 'output': [ - " - skipping time limit check", - " - skipping exclude filenames check" - ] - }, - # test time_limit trip - { 'test': 'time_limit', - 'params': (0,1112671872, self.test_excludes['blank']), - 'results': [FILES[4]], # + FILES[5:], - 'output': [" - skipping size limit check", - " - skipping exclude filenames check" - ] - }, - # test filenames_limit trip - { 'test': 'filenames_limit', - 'params': (0, 0, self.test_excludes['filenames']), - 'results': FILES[:1] + FILES[2:], - 'output': [" - skipping size limit check", - " - skipping time limit check", - ] - } - ] - - self.testwork = TestDisfiles() - self.testwork.setUp() - self.workdir = self.testwork.workdir - self.target_class = DistLimits() #DistCheckLimits() - self.output = OutputSimulator(self.callback) - self.target_class.output = self.output - self.callback_data = [] - self.test_index = 0 - - def tearDown(self): - self.testwork.tearDown() - #pass - - def get_test(self, num): - return self.testdata[num] - - def callback(self, id, data): - self.callback_data.append(data) - - def set_limits(self, test): - limit = {} - #set is_reg always to testdata[0] - t1 = self.testdata[0] - limit[t1['test']] = {} - name = test['test'] - limit[name] = {} - limits = test['limits'] - for i in range(6): - file = self.testwork.files[i] - limits = test['limits'] - limit[t1['test']][file] = t1['limits'][i] - if name != t1['test']: - limit[name][file] = limits[i] - return limit - - - def test_check_limits(self): - """Testing DistfilesSearch._check_limits()""" - # pass in output=self.output.einfo - self.target_class.output = self.output.einfo - run_callbacks = [] - run_results = [] - print() - # run the tests - for i in range(4): - clean_me = {} - test = self.get_test(i) - #print("test =", test['test']) - if not test: - print("Error getting test data for index:", i) - #self.target_class.set_data(self.set_limits(test)) - size_chk, time_chk, exclude = test["params"] - checks = self.target_class._get_default_checks(size_chk, time_chk, exclude, False) - clean_me = self.target_class._check_limits(self.workdir, checks, clean_me) - results = sorted(clean_me) - run_results.append(results) - self.callback_data.sort() - run_callbacks.append(self.callback_data) - self.callback_data = [] - results = None - - # check results - for i in range(4): - test = self.get_test(i) - print("test =", test['test']) - if not test: - print("Error getting test data for index:", i) - test['results'].sort() - #print("actual=", run_results[i]) - #print("should-be=", test['results']) - self.assertEqual(run_results[i], test["results"], - "/ntest_check_limits, test# %d, test=%s, diff=%s" - %(i, test['test'], str(set(run_results[i]).difference(test['results']))) - ) - test['output'].sort() - self.assertEqual(run_callbacks[i], test['output']) + """Test the eclean.search.DistfilesSearch._check_limits() group. + + it will test [ _get_default_checks(), _check_limits(), + _isreg_check_(), _size_check_(), _time_check_(), _filenames_check_()] + """ + + test_excludes = { + "blank": {}, + "filenames": { + "filenames": { + "help2man-1.37.1.tar.gz": re.compile(r"help2man-1\.37\.1\.tar\.gz") + } + }, + } + + def setUp(self): + self.testdata = [ + # test is_reg_limit alone, will give a base clean_me + { + "test": "is_reg_limit", + "params": (0, 0, self.test_excludes["blank"]), + "results": FILES[:], + "output": [ + " - skipping size limit check", + " - skipping time limit check", + " - skipping exclude filenames check", + ], + }, + # test size_limit trip + { + "test": "size_limit", + "params": (1024000, 0, self.test_excludes["blank"]), + "results": FILES[:3] + FILES[4:], + "output": [ + " - skipping time limit check", + " - skipping exclude filenames check", + ], + }, + # test time_limit trip + { + "test": "time_limit", + "params": (0, 1112671872, self.test_excludes["blank"]), + "results": [FILES[4]], # + FILES[5:], + "output": [ + " - skipping size limit check", + " - skipping exclude filenames check", + ], + }, + # test filenames_limit trip + { + "test": "filenames_limit", + "params": (0, 0, self.test_excludes["filenames"]), + "results": FILES[:1] + FILES[2:], + "output": [ + " - skipping size limit check", + " - skipping time limit check", + ], + }, + ] + + self.testwork = TestDisfiles() + self.testwork.setUp() + self.workdir = self.testwork.workdir + self.target_class = DistLimits() # DistCheckLimits() + self.output = OutputSimulator(self.callback) + self.target_class.output = self.output + self.callback_data = [] + self.test_index = 0 + + def tearDown(self): + self.testwork.tearDown() + # pass + + def get_test(self, num): + return self.testdata[num] + + def callback(self, id, data): + self.callback_data.append(data) + + def set_limits(self, test): + limit = {} + # set is_reg always to testdata[0] + t1 = self.testdata[0] + limit[t1["test"]] = {} + name = test["test"] + limit[name] = {} + limits = test["limits"] + for i in range(6): + file = self.testwork.files[i] + limits = test["limits"] + limit[t1["test"]][file] = t1["limits"][i] + if name != t1["test"]: + limit[name][file] = limits[i] + return limit + + def test_check_limits(self): + """Testing DistfilesSearch._check_limits()""" + # pass in output=self.output.einfo + self.target_class.output = self.output.einfo + run_callbacks = [] + run_results = [] + print() + # run the tests + for i in range(4): + clean_me = {} + test = self.get_test(i) + # print("test =", test['test']) + if not test: + print("Error getting test data for index:", i) + # self.target_class.set_data(self.set_limits(test)) + size_chk, time_chk, exclude = test["params"] + checks = self.target_class._get_default_checks( + size_chk, time_chk, exclude, False + ) + clean_me = self.target_class._check_limits(self.workdir, checks, clean_me) + results = sorted(clean_me) + run_results.append(results) + self.callback_data.sort() + run_callbacks.append(self.callback_data) + self.callback_data = [] + results = None + + # check results + for i in range(4): + test = self.get_test(i) + print("test =", test["test"]) + if not test: + print("Error getting test data for index:", i) + test["results"].sort() + # print("actual=", run_results[i]) + # print("should-be=", test['results']) + self.assertEqual( + run_results[i], + test["results"], + "/ntest_check_limits, test# %d, test=%s, diff=%s" + % ( + i, + test["test"], + str(set(run_results[i]).difference(test["results"])), + ), + ) + test["output"].sort() + self.assertEqual(run_callbacks[i], test["output"]) class TestFetchRestricted(unittest.TestCase): - """Tests eclean.search.DistfilesSearch._fetch_restricted and _unrestricted - functions - """ - - def setUp(self): - self.vardb = Dbapi(cp_all=[], cpv_all=CPVS, - props=PROPS, cp_list=[], name="FAKE VARDB") - self.portdb = Dbapi(cp_all=[], cpv_all=CPVS[:4], - props=get_props(CPVS[:4]), cp_list=[], name="FAKE PORTDB") - # set a fetch restricted pkg - self.portdb._props[CPVS[0]]["RESTRICT"] = 'fetch' - self.callback_data = [] - self.output = self.output = OutputSimulator(self.callback) - self.target_class = DistfilesSearch(self.output.einfo, self.portdb, self.vardb) - self.target_class.portdb = self.portdb - self.target_class.portdb = self.portdb - self.results = {} - self.testdata = { - 'fetch_restricted1':{ - 'deprecated': - {'app-emulation/emul-linux-x86-baselibs-20100220': 'mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz' - }, - 'pkgs': - {'sys-auth/consolekit-0.4.1': 'http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2' - }, - 'output': [ - '!!! "Deprecation Warning: Installed package: app-emulation/emul-linux-x86-baselibs-20100220\n\tIs no longer in the tree or an installed overlay\n' - ] - }, - 'fetch_restricted2':{ - 'deprecated': - {'app-emulation/emul-linux-x86-baselibs-20100220': 'mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz' - }, - 'pkgs': - {'sys-auth/consolekit-0.4.1': 'http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2' - }, - 'output': [ - '!!! "Deprecation Warning: Installed package: app-emulation/emul-linux-x86-baselibs-20100220\n\tIs no longer in the tree or an installed overlay\n', - ' - Key Error looking up: app-portage/deprecated-pkg-1.0.0' - ] - }, - 'unrestricted1':{ - 'deprecated':{ - 'app-emulation/emul-linux-x86-baselibs-20100220': 'mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz' - }, - 'pkgs': { - 'sys-apps/devicekit-power-014': 'http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz', - 'sys-apps/help2man-1.37.1': 'mirror://gnu/help2man/help2man-1.37.1.tar.gz', - 'sys-auth/consolekit-0.4.1': 'http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2', - 'app-emulation/emul-linux-x86-baselibs-20100220': 'mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz', - 'media-libs/sdl-pango-0.1.2': 'mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch' - }, - 'output': [ - '!!! "Deprecation Warning: Installed package: app-emulation/emul-linux-x86-baselibs-20100220\n\tIs no longer in the tree or an installed overlay\n', - ] - }, - 'unrestricted2':{ - 'deprecated':{ - 'app-emulation/emul-linux-x86-baselibs-20100220': 'mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz' - }, - 'pkgs': { - 'sys-apps/devicekit-power-014': 'http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz', - 'sys-apps/help2man-1.37.1': 'mirror://gnu/help2man/help2man-1.37.1.tar.gz', - 'sys-auth/consolekit-0.4.1': 'http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2', - 'app-emulation/emul-linux-x86-baselibs-20100220': 'mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz', - 'media-libs/sdl-pango-0.1.2': 'mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch' - }, - 'output': [ - '!!! "Deprecation Warning: Installed package: app-emulation/emul-linux-x86-baselibs-20100220\n\tIs no longer in the tree or an installed overlay\n', - ' - Key Error looking up: app-portage/deprecated-pkg-1.0.0' - ] - } - } - - - def callback(self, id, data): - self.callback_data.append(data) - - - def test__fetch_restricted(self): - self.results = {} - pkgs, deprecated = self.target_class._fetch_restricted(None, CPVS) - self.record_results('fetch_restricted1', pkgs, deprecated) - - self.callback_data = [] - cpvs = CPVS[:] - cpvs.append('app-portage/deprecated-pkg-1.0.0') - pkgs, deprecated = self.target_class._fetch_restricted(None, cpvs) - self.record_results('fetch_restricted2', pkgs, deprecated) - self.check_results("test_fetch_restricted") - - - def test_unrestricted(self): - self.results = {} - pkgs, deprecated = self.target_class._unrestricted(None, CPVS) - self.record_results('unrestricted1', pkgs, deprecated) - self.callback_data = [] - cpvs = CPVS[:] - cpvs.append('app-portage/deprecated-pkg-1.0.0') - pkgs, deprecated = self.target_class._unrestricted(None, cpvs) - self.record_results('unrestricted2', pkgs, deprecated) - self.check_results("test_unrestricted") - - - def check_results(self, test_name): - print("\nChecking results for %s,............" %test_name) - for key in sorted(self.results): - testdata = self.testdata[key] - results = self.results[key] - for item in sorted(testdata): - if sorted(results[item]) == sorted(testdata[item]): - test = "OK" - else: - test = "FAILED" - print("comparing %s, %s" %(key, item), test) - self.assertEqual(sorted(testdata[item]), sorted(results[item]), - "\n%s: %s %s data does not match\nresult=" %(test_name, key, item) +\ - str(results[item]) + "\ntestdata=" + str(testdata[item])) - - - def record_results(self, test, pkgs, deprecated): - self.results[test] = {'pkgs': pkgs, - 'deprecated': deprecated, - 'output': self.callback_data - } - - - def tearDown(self): - del self.portdb, self.vardb + """Tests eclean.search.DistfilesSearch._fetch_restricted and _unrestricted + functions + """ + + def setUp(self): + self.vardb = Dbapi( + cp_all=[], cpv_all=CPVS, props=PROPS, cp_list=[], name="FAKE VARDB" + ) + self.portdb = Dbapi( + cp_all=[], + cpv_all=CPVS[:4], + props=get_props(CPVS[:4]), + cp_list=[], + name="FAKE PORTDB", + ) + # set a fetch restricted pkg + self.portdb._props[CPVS[0]]["RESTRICT"] = "fetch" + self.callback_data = [] + self.output = self.output = OutputSimulator(self.callback) + self.target_class = DistfilesSearch(self.output.einfo, self.portdb, self.vardb) + self.target_class.portdb = self.portdb + self.target_class.portdb = self.portdb + self.results = {} + self.testdata = { + "fetch_restricted1": { + "deprecated": { + "app-emulation/emul-linux-x86-baselibs-20100220": "mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz" + }, + "pkgs": { + "sys-auth/consolekit-0.4.1": "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2" + }, + "output": [ + '!!! "Deprecation Warning: Installed package: app-emulation/emul-linux-x86-baselibs-20100220\n\tIs no longer in the tree or an installed overlay\n' + ], + }, + "fetch_restricted2": { + "deprecated": { + "app-emulation/emul-linux-x86-baselibs-20100220": "mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz" + }, + "pkgs": { + "sys-auth/consolekit-0.4.1": "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2" + }, + "output": [ + '!!! "Deprecation Warning: Installed package: app-emulation/emul-linux-x86-baselibs-20100220\n\tIs no longer in the tree or an installed overlay\n', + " - Key Error looking up: app-portage/deprecated-pkg-1.0.0", + ], + }, + "unrestricted1": { + "deprecated": { + "app-emulation/emul-linux-x86-baselibs-20100220": "mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz" + }, + "pkgs": { + "sys-apps/devicekit-power-014": "http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz", + "sys-apps/help2man-1.37.1": "mirror://gnu/help2man/help2man-1.37.1.tar.gz", + "sys-auth/consolekit-0.4.1": "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2", + "app-emulation/emul-linux-x86-baselibs-20100220": "mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz", + "media-libs/sdl-pango-0.1.2": "mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch", + }, + "output": [ + '!!! "Deprecation Warning: Installed package: app-emulation/emul-linux-x86-baselibs-20100220\n\tIs no longer in the tree or an installed overlay\n', + ], + }, + "unrestricted2": { + "deprecated": { + "app-emulation/emul-linux-x86-baselibs-20100220": "mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz" + }, + "pkgs": { + "sys-apps/devicekit-power-014": "http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz", + "sys-apps/help2man-1.37.1": "mirror://gnu/help2man/help2man-1.37.1.tar.gz", + "sys-auth/consolekit-0.4.1": "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2", + "app-emulation/emul-linux-x86-baselibs-20100220": "mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz", + "media-libs/sdl-pango-0.1.2": "mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch", + }, + "output": [ + '!!! "Deprecation Warning: Installed package: app-emulation/emul-linux-x86-baselibs-20100220\n\tIs no longer in the tree or an installed overlay\n', + " - Key Error looking up: app-portage/deprecated-pkg-1.0.0", + ], + }, + } + + def callback(self, id, data): + self.callback_data.append(data) + + def test__fetch_restricted(self): + self.results = {} + pkgs, deprecated = self.target_class._fetch_restricted(None, CPVS) + self.record_results("fetch_restricted1", pkgs, deprecated) + + self.callback_data = [] + cpvs = CPVS[:] + cpvs.append("app-portage/deprecated-pkg-1.0.0") + pkgs, deprecated = self.target_class._fetch_restricted(None, cpvs) + self.record_results("fetch_restricted2", pkgs, deprecated) + self.check_results("test_fetch_restricted") + + def test_unrestricted(self): + self.results = {} + pkgs, deprecated = self.target_class._unrestricted(None, CPVS) + self.record_results("unrestricted1", pkgs, deprecated) + self.callback_data = [] + cpvs = CPVS[:] + cpvs.append("app-portage/deprecated-pkg-1.0.0") + pkgs, deprecated = self.target_class._unrestricted(None, cpvs) + self.record_results("unrestricted2", pkgs, deprecated) + self.check_results("test_unrestricted") + + def check_results(self, test_name): + print("\nChecking results for %s,............" % test_name) + for key in sorted(self.results): + testdata = self.testdata[key] + results = self.results[key] + for item in sorted(testdata): + if sorted(results[item]) == sorted(testdata[item]): + test = "OK" + else: + test = "FAILED" + print("comparing %s, %s" % (key, item), test) + self.assertEqual( + sorted(testdata[item]), + sorted(results[item]), + "\n%s: %s %s data does not match\nresult=" % (test_name, key, item) + + str(results[item]) + + "\ntestdata=" + + str(testdata[item]), + ) + + def record_results(self, test, pkgs, deprecated): + self.results[test] = { + "pkgs": pkgs, + "deprecated": deprecated, + "output": self.callback_data, + } + + def tearDown(self): + del self.portdb, self.vardb class TestNonDestructive(unittest.TestCase): - """Tests eclean.search.DistfilesSearch._non_destructive and _destructive - functions, with addition useage tests of fetch_restricted() and _unrestricted() - """ - - def setUp(self): - self.vardb = Dbapi(cp_all=[], cpv_all=CPVS, - props=PROPS, cp_list=[], name="FAKE VARDB") - self.portdb = Dbapi(cp_all=[], cpv_all=CPVS[:4], - props=get_props(CPVS[:4]), cp_list=[], name="FAKE PORTDB") - print(self.portdb) - # set a fetch restricted pkg - self.portdb._props[CPVS[0]]["RESTRICT"] = 'fetch' - self.callback_data = [] - self.output = OutputSimulator(self.callback) - self.target_class = DistfilesSearch(self.output.einfo, self.portdb, self.vardb) - search.exclDictExpand = self.exclDictExpand - self.exclude = parseExcludeFile(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'distfiles.exclude'), self.output.einfo) - #print(self.callback_data) - #print(self.exclude) - self.callback_data = [] - self.results = {} - self.testdata = { - 'non_destructive1':{ - 'deprecated': - {'app-emulation/emul-linux-x86-baselibs-20100220': 'mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz' - }, - 'pkgs': { - 'sys-auth/consolekit-0.4.1': 'http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2', - 'sys-apps/help2man-1.37.1': 'mirror://gnu/help2man/help2man-1.37.1.tar.gz', - 'sys-apps/devicekit-power-014': 'http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz', - 'app-emulation/emul-linux-x86-baselibs-20100220': 'mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz', - 'media-libs/sdl-pango-0.1.2': 'mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch' - }, - 'output': [ - ' - getting complete ebuild list', - ' - getting source file names for 5 ebuilds', - '!!! "Deprecation Warning: Installed package: app-emulation/emul-linux-x86-baselibs-20100220\n\tIs no longer in the tree or an installed overlay\n' - ] - }, - 'non_destructive2':{ - 'deprecated': { - }, - 'pkgs': { - 'sys-apps/devicekit-power-014': 'http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz', - 'sys-auth/consolekit-0.4.1': 'http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2', - 'media-libs/sdl-pango-0.1.2': 'mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch' - }, - 'output': [ - ' - getting complete ebuild list', - ' - getting source file names for 3 installed ebuilds', - ' - getting fetch-restricted source file names for 2 remaining ebuilds' - ] - }, - 'non_destructive3':{ - 'deprecated':{ - }, - 'pkgs': { - 'sys-apps/devicekit-power-014': 'http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz', - 'sys-auth/consolekit-0.4.1': 'http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2', - 'app-emulation/emul-linux-x86-baselibs-20100220': 'mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz', - }, - 'output': [ - ' - getting complete ebuild list', - ' - getting source file names for 2 installed ebuilds', - ' - getting fetch-restricted source file names for 3 remaining ebuilds' - ] - }, - 'destructive1':{ - 'deprecated':{ - 'app-emulation/emul-linux-x86-baselibs-20100220': 'mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz' - }, - 'pkgs': { - 'sys-apps/devicekit-power-014': 'http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz', - 'sys-apps/help2man-1.37.1': 'mirror://gnu/help2man/help2man-1.37.1.tar.gz', - 'sys-auth/consolekit-0.4.1': 'http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2', - 'app-emulation/emul-linux-x86-baselibs-20100220': 'mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz', - 'media-libs/sdl-pango-0.1.2': 'mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch' - }, - 'output': [ - ' - processing 5 installed ebuilds', ' - processing excluded', - ' - (5 of 0 total) additional excluded packages to get source filenames for', - '!!! "Deprecation Warning: Installed package: app-emulation/emul-linux-x86-baselibs-20100220\n\tIs no longer in the tree or an installed overlay\n' - ] - }, - 'destructive2':{ - 'deprecated':{ - }, - 'pkgs': { - }, - 'output': [ - ' - processing 0 installed packages', - ' - processing excluded', ' - (0 of 0 total) additional excluded packages to get source filenames for' - ] - }, - 'destructive3':{ - 'deprecated':{ - }, - 'pkgs': { - 'app-portage/gentoolkit-0.3.0_rc8-r1': 'mirror://gentoo/gentoolkit-0.3.0_rc8.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc8.tar.gz', - 'sys-apps/devicekit-power-014': 'http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz', - 'app-portage/gentoolkit-0.3.0_rc8': 'mirror://gentoo/gentoolkit-0.3.0_rc8.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc8.tar.gz', - 'app-portage/gentoolkit-0.2.4.6-r1': 'mirror://gentoo/gentoolkit-0.2.4.6.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.2.4.6.tar.gz', - 'app-portage/gentoolkit-0.3.0_rc7': 'mirror://gentoo/gentoolkit-0.3.0_rc7.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc7.tar.gz', - 'app-portage/gentoolkit-0.2.4.6': 'mirror://gentoo/gentoolkit-0.2.4.6.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.2.4.6.tar.gz', - 'app-portage/eix-0.19.2': 'mirror://sourceforge/eix/eix-0.19.2.tar.xz', - 'app-portage/gentoolkit-0.2.4.5': 'mirror://gentoo/gentoolkit-0.2.4.5.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.2.4.5.tar.gz', - 'app-portage/gentoolkit-0.3.0_rc9': 'mirror://gentoo/gentoolkit-0.3.0_rc9.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc9.tar.gz', - 'app-portage/eix-0.20.1': 'mirror://sourceforge/eix/eix-0.20.1.tar.xz', - 'app-portage/eix-0.20.2': 'mirror://berlios/eix/eix-0.20.2.tar.xz' - }, - 'output': [ - ' - processing excluded', - ' - (10 of 10 total) additional excluded packages to get source filenames for' - ] - }, - 'destructive4':{ - 'deprecated':{ - }, - 'pkgs': { - 'sys-auth/consolekit-0.4.1': - 'http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2', - 'sys-apps/devicekit-power-014': - 'http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz', - 'media-libs/sdl-pango-0.1.2': - 'mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch' - }, - 'output': [ - ' - processing 3 installed ebuilds', - ' - processing excluded', - ' - (3 of 0 total) additional excluded packages to get source filenames for' - ] - }, - 'destructive5':{ - 'deprecated':{ - }, - 'pkgs': { - 'x11-base/xorg-server-1.7.5': 'http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.7.5.tar.bz2', - 'app-portage/gentoolkit-0.3.0_rc8-r1': 'mirror://gentoo/gentoolkit-0.3.0_rc8.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc8.tar.gz', - 'sys-apps/devicekit-power-014': 'http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz', - 'x11-misc/util-macros-1.6.0': 'http://xorg.freedesktop.org/releases/individual/util/util-macros-1.6.0.tar.bz2', - 'app-portage/eix-0.19.2': 'mirror://sourceforge/eix/eix-0.19.2.tar.xz', - 'app-portage/gentoolkit-0.3.0_rc8': 'mirror://gentoo/gentoolkit-0.3.0_rc8.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc8.tar.gz', - 'app-portage/gentoolkit-0.2.4.6-r1': 'mirror://gentoo/gentoolkit-0.2.4.6.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.2.4.6.tar.gz', - 'app-portage/gentoolkit-0.3.0_rc7': 'mirror://gentoo/gentoolkit-0.3.0_rc7.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc7.tar.gz', - 'sys-auth/consolekit-0.4.1': 'http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2', - 'app-portage/gentoolkit-0.2.4.6': 'mirror://gentoo/gentoolkit-0.2.4.6.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.2.4.6.tar.gz', - 'media-libs/sdl-pango-0.1.2': 'mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch', - 'x11-libs/pixman-0.16.4': 'http://xorg.freedesktop.org/releases/individual/lib/pixman-0.16.4.tar.bz2', - 'app-portage/gentoolkit-0.2.4.5': 'mirror://gentoo/gentoolkit-0.2.4.5.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.2.4.5.tar.gz', - 'app-portage/gentoolkit-0.3.0_rc9': 'mirror://gentoo/gentoolkit-0.3.0_rc9.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc9.tar.gz', - 'app-portage/eix-0.20.1': 'mirror://sourceforge/eix/eix-0.20.1.tar.xz', - 'app-portage/eix-0.20.2': 'mirror://berlios/eix/eix-0.20.2.tar.xz' - }, - 'output': [ - ' - processing 6 installed ebuilds', - ' - processing excluded', - ' - (16 of 10 total) additional excluded packages to get source filenames for' - ] - } - } - - - def callback(self, id, data): - self.callback_data.append(data) - - - def exclDictExpand(self, exclude): - #print("Using Fake Testing exclDictExpand()") - return [ - #'app-portage/layman', - 'app-portage/eix', - 'app-portage/gentoolkit', - #app-portage/portage-utils', - ] - - - def test_non_destructive(self): - self.results = {} - pkgs, deprecated = self.target_class._non_destructive(destructive=False, - fetch_restricted=False, pkgs_=None) - self.record_results('non_destructive1', pkgs, deprecated) - - pkgs = None - deprecated = None - self.callback_data = [] - self.vardb._cpv_all=CPVS[:3] - self.vardb._props=get_props(CPVS[:3]) - self.portdb._cpv_all=CPVS[:] - self.portdb._props=get_props(CPVS) - self.target_class.installed_cpvs = None - pkgs, deprecated = self.target_class._non_destructive(destructive=True, - fetch_restricted=True, pkgs_=None) - self.record_results('non_destructive2', pkgs, deprecated) - - pkgs = None - deprecated = None - self.callback_data = [] - self.vardb._cpv_all=CPVS[:2] - self.vardb._props=get_props(CPVS[:2]) - self.portdb._cpv_all=CPVS[:] - self.portdb._props=get_props(CPVS) - # set a fetch restricted pkg - self.portdb._props[CPVS[4]]["RESTRICT"] = 'fetch' - pkgs = {'sys-apps/devicekit-power-014': 'http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz'} - pkgs, deprecated = self.target_class._non_destructive(destructive=True, - fetch_restricted=True, pkgs_=pkgs) - self.record_results('non_destructive3', pkgs, deprecated) - self.check_results("test_non_destructive") - - - def check_results(self, test_name): - print("\nChecking results for %s,............" %test_name) - for key in sorted(self.results): - testdata = self.testdata[key] - results = self.results[key] - for item in sorted(testdata): - if sorted(results[item]) == sorted(testdata[item]): - test = "OK" - else: - test = "FAILED" - print("comparing %s, %s..." %(key, item), test) - if test == "FAILED": - print("", sorted(results[item]), "\n", sorted(testdata[item])) - self.assertEqual(sorted(testdata[item]), sorted(results[item]), - "\n%s: %s, %s data does not match\n" - %(test_name, key, item) + \ - "result=" + str(results[item]) + "\ntestdata=" + str(testdata[item]) - ) - - - def record_results(self, test, pkgs, deprecated): - self.results[test] = {'pkgs': pkgs, - 'deprecated': deprecated, - 'output': self.callback_data - } - - def test_destructive(self): - self.results = {} - pkgs, deprecated = self.target_class._destructive(package_names=False, - exclude={}, pkgs_=None, installed_included=False ) - self.record_results('destructive1', pkgs, deprecated) - - self.callback_data = [] - self.vardb._cpv_all=CPVS[:3] - self.vardb._props=get_props(CPVS[:3]) - self.portdb._cpv_all=CPVS[:] - self.portdb._props=get_props(CPVS) - pkgs, deprecated = self.target_class._destructive(package_names=True, - exclude={}, pkgs_=None, installed_included=False ) - self.record_results('destructive2', pkgs, deprecated) - - self.callback_data = [] - cpvs = CPVS[2:4] - cpvs.extend(CPVS3) - self.vardb._cpv_all=sorted(cpvs) - self.vardb._props= PROPS.update(get_props(CPVS3)) - self.portdb._cpv_all=sorted(CPVS + CPVS2) - self.portdb._props=get_props(CPVS+CPVS2) - # set a fetch restricted pkg - self.portdb._props[CPVS[4]]["RESTRICT"] = 'fetch' - pkgs = {'sys-apps/devicekit-power-014': 'http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz'} - pkgs, deprecated = self.target_class._destructive(package_names=True, - exclude={}, pkgs_=pkgs, installed_included=True ) - self.record_results('destructive3', pkgs, deprecated) - - self.callback_data = [] - self.vardb._cpv_all=CPVS[:3] - self.vardb._props=get_props(CPVS[:3]) - self.portdb._cpv_all=CPVS[:] - self.portdb._props=get_props(CPVS) - pkgs, deprecated = self.target_class._destructive(package_names=False, - exclude=self.exclude, pkgs_=None, installed_included=False ) - self.record_results('destructive4', pkgs, deprecated) - self.check_results("test_destructive") - - self.callback_data = [] - self.vardb._cpv_all=CPVS[:3] - self.vardb._cpv_all.extend(CPVS3) - self.vardb._props=get_props(self.vardb._cpv_all) - self.portdb._cpv_all=CPVS2 - #self.portdb._cpv_all.extend(CPVS2) - self.portdb._props=PROPS - pkgs, deprecated = self.target_class._destructive(package_names=False, - exclude=self.exclude, pkgs_=None, installed_included=False ) - self.record_results('destructive5', pkgs, deprecated) - self.check_results("test_destructive") - - - def tearDown(self): - del self.portdb, self.vardb + """Tests eclean.search.DistfilesSearch._non_destructive and _destructive + functions, with addition useage tests of fetch_restricted() and _unrestricted() + """ + + def setUp(self): + self.vardb = Dbapi( + cp_all=[], cpv_all=CPVS, props=PROPS, cp_list=[], name="FAKE VARDB" + ) + self.portdb = Dbapi( + cp_all=[], + cpv_all=CPVS[:4], + props=get_props(CPVS[:4]), + cp_list=[], + name="FAKE PORTDB", + ) + print(self.portdb) + # set a fetch restricted pkg + self.portdb._props[CPVS[0]]["RESTRICT"] = "fetch" + self.callback_data = [] + self.output = OutputSimulator(self.callback) + self.target_class = DistfilesSearch(self.output.einfo, self.portdb, self.vardb) + search.exclDictExpand = self.exclDictExpand + self.exclude = parseExcludeFile( + os.path.join( + os.path.dirname(os.path.abspath(__file__)), "distfiles.exclude" + ), + self.output.einfo, + ) + # print(self.callback_data) + # print(self.exclude) + self.callback_data = [] + self.results = {} + self.testdata = { + "non_destructive1": { + "deprecated": { + "app-emulation/emul-linux-x86-baselibs-20100220": "mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz" + }, + "pkgs": { + "sys-auth/consolekit-0.4.1": "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2", + "sys-apps/help2man-1.37.1": "mirror://gnu/help2man/help2man-1.37.1.tar.gz", + "sys-apps/devicekit-power-014": "http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz", + "app-emulation/emul-linux-x86-baselibs-20100220": "mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz", + "media-libs/sdl-pango-0.1.2": "mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch", + }, + "output": [ + " - getting complete ebuild list", + " - getting source file names for 5 ebuilds", + '!!! "Deprecation Warning: Installed package: app-emulation/emul-linux-x86-baselibs-20100220\n\tIs no longer in the tree or an installed overlay\n', + ], + }, + "non_destructive2": { + "deprecated": {}, + "pkgs": { + "sys-apps/devicekit-power-014": "http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz", + "sys-auth/consolekit-0.4.1": "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2", + "media-libs/sdl-pango-0.1.2": "mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch", + }, + "output": [ + " - getting complete ebuild list", + " - getting source file names for 3 installed ebuilds", + " - getting fetch-restricted source file names for 2 remaining ebuilds", + ], + }, + "non_destructive3": { + "deprecated": {}, + "pkgs": { + "sys-apps/devicekit-power-014": "http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz", + "sys-auth/consolekit-0.4.1": "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2", + "app-emulation/emul-linux-x86-baselibs-20100220": "mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz", + }, + "output": [ + " - getting complete ebuild list", + " - getting source file names for 2 installed ebuilds", + " - getting fetch-restricted source file names for 3 remaining ebuilds", + ], + }, + "destructive1": { + "deprecated": { + "app-emulation/emul-linux-x86-baselibs-20100220": "mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz" + }, + "pkgs": { + "sys-apps/devicekit-power-014": "http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz", + "sys-apps/help2man-1.37.1": "mirror://gnu/help2man/help2man-1.37.1.tar.gz", + "sys-auth/consolekit-0.4.1": "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2", + "app-emulation/emul-linux-x86-baselibs-20100220": "mirror://gentoo/emul-linux-x86-baselibs-20100220.tar.gz", + "media-libs/sdl-pango-0.1.2": "mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch", + }, + "output": [ + " - processing 5 installed ebuilds", + " - processing excluded", + " - (5 of 0 total) additional excluded packages to get source filenames for", + '!!! "Deprecation Warning: Installed package: app-emulation/emul-linux-x86-baselibs-20100220\n\tIs no longer in the tree or an installed overlay\n', + ], + }, + "destructive2": { + "deprecated": {}, + "pkgs": {}, + "output": [ + " - processing 0 installed packages", + " - processing excluded", + " - (0 of 0 total) additional excluded packages to get source filenames for", + ], + }, + "destructive3": { + "deprecated": {}, + "pkgs": { + "app-portage/gentoolkit-0.3.0_rc8-r1": "mirror://gentoo/gentoolkit-0.3.0_rc8.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc8.tar.gz", + "sys-apps/devicekit-power-014": "http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz", + "app-portage/gentoolkit-0.3.0_rc8": "mirror://gentoo/gentoolkit-0.3.0_rc8.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc8.tar.gz", + "app-portage/gentoolkit-0.2.4.6-r1": "mirror://gentoo/gentoolkit-0.2.4.6.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.2.4.6.tar.gz", + "app-portage/gentoolkit-0.3.0_rc7": "mirror://gentoo/gentoolkit-0.3.0_rc7.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc7.tar.gz", + "app-portage/gentoolkit-0.2.4.6": "mirror://gentoo/gentoolkit-0.2.4.6.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.2.4.6.tar.gz", + "app-portage/eix-0.19.2": "mirror://sourceforge/eix/eix-0.19.2.tar.xz", + "app-portage/gentoolkit-0.2.4.5": "mirror://gentoo/gentoolkit-0.2.4.5.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.2.4.5.tar.gz", + "app-portage/gentoolkit-0.3.0_rc9": "mirror://gentoo/gentoolkit-0.3.0_rc9.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc9.tar.gz", + "app-portage/eix-0.20.1": "mirror://sourceforge/eix/eix-0.20.1.tar.xz", + "app-portage/eix-0.20.2": "mirror://berlios/eix/eix-0.20.2.tar.xz", + }, + "output": [ + " - processing excluded", + " - (10 of 10 total) additional excluded packages to get source filenames for", + ], + }, + "destructive4": { + "deprecated": {}, + "pkgs": { + "sys-auth/consolekit-0.4.1": "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2", + "sys-apps/devicekit-power-014": "http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz", + "media-libs/sdl-pango-0.1.2": "mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch", + }, + "output": [ + " - processing 3 installed ebuilds", + " - processing excluded", + " - (3 of 0 total) additional excluded packages to get source filenames for", + ], + }, + "destructive5": { + "deprecated": {}, + "pkgs": { + "x11-base/xorg-server-1.7.5": "http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.7.5.tar.bz2", + "app-portage/gentoolkit-0.3.0_rc8-r1": "mirror://gentoo/gentoolkit-0.3.0_rc8.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc8.tar.gz", + "sys-apps/devicekit-power-014": "http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz", + "x11-misc/util-macros-1.6.0": "http://xorg.freedesktop.org/releases/individual/util/util-macros-1.6.0.tar.bz2", + "app-portage/eix-0.19.2": "mirror://sourceforge/eix/eix-0.19.2.tar.xz", + "app-portage/gentoolkit-0.3.0_rc8": "mirror://gentoo/gentoolkit-0.3.0_rc8.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc8.tar.gz", + "app-portage/gentoolkit-0.2.4.6-r1": "mirror://gentoo/gentoolkit-0.2.4.6.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.2.4.6.tar.gz", + "app-portage/gentoolkit-0.3.0_rc7": "mirror://gentoo/gentoolkit-0.3.0_rc7.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc7.tar.gz", + "sys-auth/consolekit-0.4.1": "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-0.4.1.tar.bz2", + "app-portage/gentoolkit-0.2.4.6": "mirror://gentoo/gentoolkit-0.2.4.6.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.2.4.6.tar.gz", + "media-libs/sdl-pango-0.1.2": "mirror://sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz http://zarb.org/~gc/t/SDL_Pango-0.1.2-API-adds.patch", + "x11-libs/pixman-0.16.4": "http://xorg.freedesktop.org/releases/individual/lib/pixman-0.16.4.tar.bz2", + "app-portage/gentoolkit-0.2.4.5": "mirror://gentoo/gentoolkit-0.2.4.5.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.2.4.5.tar.gz", + "app-portage/gentoolkit-0.3.0_rc9": "mirror://gentoo/gentoolkit-0.3.0_rc9.tar.gz http://dev.gentoo.org/~fuzzyray/distfiles/gentoolkit-0.3.0_rc9.tar.gz", + "app-portage/eix-0.20.1": "mirror://sourceforge/eix/eix-0.20.1.tar.xz", + "app-portage/eix-0.20.2": "mirror://berlios/eix/eix-0.20.2.tar.xz", + }, + "output": [ + " - processing 6 installed ebuilds", + " - processing excluded", + " - (16 of 10 total) additional excluded packages to get source filenames for", + ], + }, + } + + def callback(self, id, data): + self.callback_data.append(data) + + def exclDictExpand(self, exclude): + # print("Using Fake Testing exclDictExpand()") + return [ + # 'app-portage/layman', + "app-portage/eix", + "app-portage/gentoolkit", + # app-portage/portage-utils', + ] + + def test_non_destructive(self): + self.results = {} + pkgs, deprecated = self.target_class._non_destructive( + destructive=False, fetch_restricted=False, pkgs_=None + ) + self.record_results("non_destructive1", pkgs, deprecated) + + pkgs = None + deprecated = None + self.callback_data = [] + self.vardb._cpv_all = CPVS[:3] + self.vardb._props = get_props(CPVS[:3]) + self.portdb._cpv_all = CPVS[:] + self.portdb._props = get_props(CPVS) + self.target_class.installed_cpvs = None + pkgs, deprecated = self.target_class._non_destructive( + destructive=True, fetch_restricted=True, pkgs_=None + ) + self.record_results("non_destructive2", pkgs, deprecated) + + pkgs = None + deprecated = None + self.callback_data = [] + self.vardb._cpv_all = CPVS[:2] + self.vardb._props = get_props(CPVS[:2]) + self.portdb._cpv_all = CPVS[:] + self.portdb._props = get_props(CPVS) + # set a fetch restricted pkg + self.portdb._props[CPVS[4]]["RESTRICT"] = "fetch" + pkgs = { + "sys-apps/devicekit-power-014": "http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz" + } + pkgs, deprecated = self.target_class._non_destructive( + destructive=True, fetch_restricted=True, pkgs_=pkgs + ) + self.record_results("non_destructive3", pkgs, deprecated) + self.check_results("test_non_destructive") + + def check_results(self, test_name): + print("\nChecking results for %s,............" % test_name) + for key in sorted(self.results): + testdata = self.testdata[key] + results = self.results[key] + for item in sorted(testdata): + if sorted(results[item]) == sorted(testdata[item]): + test = "OK" + else: + test = "FAILED" + print("comparing %s, %s..." % (key, item), test) + if test == "FAILED": + print("", sorted(results[item]), "\n", sorted(testdata[item])) + self.assertEqual( + sorted(testdata[item]), + sorted(results[item]), + "\n%s: %s, %s data does not match\n" % (test_name, key, item) + + "result=" + + str(results[item]) + + "\ntestdata=" + + str(testdata[item]), + ) + + def record_results(self, test, pkgs, deprecated): + self.results[test] = { + "pkgs": pkgs, + "deprecated": deprecated, + "output": self.callback_data, + } + + def test_destructive(self): + self.results = {} + pkgs, deprecated = self.target_class._destructive( + package_names=False, exclude={}, pkgs_=None, installed_included=False + ) + self.record_results("destructive1", pkgs, deprecated) + + self.callback_data = [] + self.vardb._cpv_all = CPVS[:3] + self.vardb._props = get_props(CPVS[:3]) + self.portdb._cpv_all = CPVS[:] + self.portdb._props = get_props(CPVS) + pkgs, deprecated = self.target_class._destructive( + package_names=True, exclude={}, pkgs_=None, installed_included=False + ) + self.record_results("destructive2", pkgs, deprecated) + + self.callback_data = [] + cpvs = CPVS[2:4] + cpvs.extend(CPVS3) + self.vardb._cpv_all = sorted(cpvs) + self.vardb._props = PROPS.update(get_props(CPVS3)) + self.portdb._cpv_all = sorted(CPVS + CPVS2) + self.portdb._props = get_props(CPVS + CPVS2) + # set a fetch restricted pkg + self.portdb._props[CPVS[4]]["RESTRICT"] = "fetch" + pkgs = { + "sys-apps/devicekit-power-014": "http://hal.freedesktop.org/releases/DeviceKit-power-014.tar.gz" + } + pkgs, deprecated = self.target_class._destructive( + package_names=True, exclude={}, pkgs_=pkgs, installed_included=True + ) + self.record_results("destructive3", pkgs, deprecated) + + self.callback_data = [] + self.vardb._cpv_all = CPVS[:3] + self.vardb._props = get_props(CPVS[:3]) + self.portdb._cpv_all = CPVS[:] + self.portdb._props = get_props(CPVS) + pkgs, deprecated = self.target_class._destructive( + package_names=False, + exclude=self.exclude, + pkgs_=None, + installed_included=False, + ) + self.record_results("destructive4", pkgs, deprecated) + self.check_results("test_destructive") + + self.callback_data = [] + self.vardb._cpv_all = CPVS[:3] + self.vardb._cpv_all.extend(CPVS3) + self.vardb._props = get_props(self.vardb._cpv_all) + self.portdb._cpv_all = CPVS2 + # self.portdb._cpv_all.extend(CPVS2) + self.portdb._props = PROPS + pkgs, deprecated = self.target_class._destructive( + package_names=False, + exclude=self.exclude, + pkgs_=None, + installed_included=False, + ) + self.record_results("destructive5", pkgs, deprecated) + self.check_results("test_destructive") + + def tearDown(self): + del self.portdb, self.vardb class TestRemoveProtected(unittest.TestCase): - """tests the eclean.search.DistfilesSearch._remove_protected() - """ + """tests the eclean.search.DistfilesSearch._remove_protected()""" + + def setUp(self): + self.target_class = DistfilesSearch(lambda x: None) + self.results = { + "layman-1.2.5.tar.gz": "/path/to/some/where/layman-1.2.5.tar.gz" + } + + def test_remove_protected(self): + results = self.target_class._remove_protected(PKGS, CLEAN_ME) + self.assertEqual( + results, + self.results, + "\ntest_remove_protected: data does not match\nresult=" + + str(results) + + "\ntestdata=" + + str(self.results), + ) - def setUp(self): - self.target_class = DistfilesSearch(lambda x: None) - self.results = {'layman-1.2.5.tar.gz': '/path/to/some/where/layman-1.2.5.tar.gz'} - def test_remove_protected(self): - results = self.target_class._remove_protected(PKGS, CLEAN_ME) - self.assertEqual(results, self.results, - "\ntest_remove_protected: data does not match\nresult=" +\ - str(results) + "\ntestdata=" + str(self.results)) +def test_main(): + suite = unittest.TestLoader() + suite.loadTestsFromTestCase(TestCheckLimits) + suite.loadTestsFromTestCase(TestFetchRestricted) + suite.loadTestsFromTestCase(TestNonDestructive) + suite.loadTestsFromTestCase(TestRemoveProtected) + unittest.TextTestRunner(verbosity=2).run(suite) -def test_main(): - suite = unittest.TestLoader() - suite.loadTestsFromTestCase(TestCheckLimits) - suite.loadTestsFromTestCase(TestFetchRestricted) - suite.loadTestsFromTestCase(TestNonDestructive) - suite.loadTestsFromTestCase(TestRemoveProtected) - unittest.TextTestRunner(verbosity=2).run(suite) test_main.__test__ = False -if __name__ == '__main__': - test_main() +if __name__ == "__main__": + test_main() |