diff --git a/libraries/tests/_misc.py b/libraries/tests/_misc.py index fe03736ca..b838e8cf9 100644 --- a/libraries/tests/_misc.py +++ b/libraries/tests/_misc.py @@ -100,4 +100,10 @@ def get_random_file(): return get_test_generic_package("random_file") def get_random_file_md5(): - return get_test_generic_package("random_file.md5") \ No newline at end of file + return get_test_generic_package("random_file.md5") + +def get_security_pkg(): + return get_test_generic_package("security-advisories.tar.bz2") + +def get_security_pkg_asc(): + return get_test_generic_package("security-advisories.tar.bz2.asc") diff --git a/libraries/tests/client.py b/libraries/tests/client.py index 63f7f698d..8d1cbce28 100644 --- a/libraries/tests/client.py +++ b/libraries/tests/client.py @@ -13,6 +13,7 @@ from entropy.const import etpConst, etpUi from entropy.core.settings.base import SystemSettings from entropy.db import EntropyRepository from entropy.exceptions import RepositoryError +import entropy.tools import tests._misc as _misc class EntropyRepositoryTest(unittest.TestCase): @@ -180,3 +181,4 @@ if __name__ == '__main__': from entropy.const import etpUi etpUi['debug'] = True unittest.main() + entropy.tools.kill_threads() diff --git a/libraries/tests/db.py b/libraries/tests/db.py index 3634796c6..d38e0063d 100644 --- a/libraries/tests/db.py +++ b/libraries/tests/db.py @@ -447,3 +447,4 @@ if __name__ == '__main__': from entropy.const import etpUi etpUi['debug'] = True unittest.main() + entropy.tools.kill_threads() diff --git a/libraries/tests/fetchers.py b/libraries/tests/fetchers.py index 149e4867d..86c69e75f 100644 --- a/libraries/tests/fetchers.py +++ b/libraries/tests/fetchers.py @@ -7,6 +7,7 @@ import unittest import tests._misc as _misc from entropy.fetchers import UrlFetcher, MultipleUrlFetcher from entropy.const import etpUi +import entropy.tools class FetchersTest(unittest.TestCase): @@ -61,3 +62,4 @@ if __name__ == '__main__': from entropy.const import etpUi etpUi['debug'] = True unittest.main() + entropy.tools.kill_threads() diff --git a/libraries/tests/packages/security-advisories.tar.bz2 b/libraries/tests/packages/security-advisories.tar.bz2 new file mode 100644 index 000000000..8ec50a620 Binary files /dev/null and b/libraries/tests/packages/security-advisories.tar.bz2 differ diff --git a/libraries/tests/packages/security-advisories.tar.bz2.asc b/libraries/tests/packages/security-advisories.tar.bz2.asc new file mode 100644 index 000000000..877a65a28 --- /dev/null +++ b/libraries/tests/packages/security-advisories.tar.bz2.asc @@ -0,0 +1,11 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.10 (GNU/Linux) + +iQEcBAABAgAGBQJLaf/2AAoJEDc1BZKvIvC/G70IAKThaWt4KCO8B07hHFNWlrTi +pLJuX/8Hqg7KCcX+42Rlt04brysusDHlR3Z/mv2uuMR4PcBR1P5Kd+aiT4F/rXzm +6f5IDBAmGMkzyUu0QzZ0yVmfdPW8L/52izuMT+AZdIH0l/YkCAsdasvUKSXrKwIR +4RSY9nr3+2+fETmDiADeKoAlcqm01WVTk4FSvIJGsU5kRRrgCOQ63zrxNmM14sT5 +kb+g3vYzww8O5D4+j2Svqj5sqlEJNNVRh1berEfW6fy5zNeAUu+bgepO8cRhS2EQ +tmkc+F+qTC1C7Re2S1aOueWjq6pMK9KmX1SrooKQyToDrEtlJm4DSlrMs70qeLM= +=E4zH +-----END PGP SIGNATURE----- diff --git a/libraries/tests/packages/security-advisories.tar.bz2.md5 b/libraries/tests/packages/security-advisories.tar.bz2.md5 new file mode 100644 index 000000000..ce1d3dcfa --- /dev/null +++ b/libraries/tests/packages/security-advisories.tar.bz2.md5 @@ -0,0 +1 @@ +6c5b604bf02042718fb5c60f9b990eb7 security-advisories.tar.bz2 diff --git a/libraries/tests/qa.py b/libraries/tests/qa.py index 877604336..6f6d6328b 100644 --- a/libraries/tests/qa.py +++ b/libraries/tests/qa.py @@ -5,6 +5,7 @@ sys.path.insert(0, '../') import unittest import entropy.qa from entropy.output import TextInterface +import entropy.tools import tests._misc as _misc import tempfile @@ -38,3 +39,4 @@ if __name__ == '__main__': from entropy.const import etpUi etpUi['debug'] = True unittest.main() + entropy.tools.kill_threads() \ No newline at end of file diff --git a/libraries/tests/run b/libraries/tests/run index 150fdc2d6..c27712792 100755 --- a/libraries/tests/run +++ b/libraries/tests/run @@ -13,6 +13,7 @@ sys.path.insert(0,'.') sys.path.insert(0,'../') # set unit testing mode from entropy.const import etpSys, etpUi +import entropy.tools etpSys['unittest'] = True if "--debug" in sys.argv: sys.argv.remove("--debug") @@ -33,4 +34,5 @@ for mod in mods: result = unittest.TextTestRunner(verbosity = 1).run(unittest.TestSuite(tests)) if result.errors: rc = 1 +entropy.tools.kill_threads() raise SystemExit(rc) diff --git a/libraries/tests/security.py b/libraries/tests/security.py index a419d6d1e..74c65e767 100644 --- a/libraries/tests/security.py +++ b/libraries/tests/security.py @@ -8,7 +8,10 @@ import os import unittest import tempfile import shutil -from entropy.security import Repository +from entropy.const import etpConst +from entropy.client.interfaces import Client +from entropy.security import Repository, System +import entropy.tools import tests._misc as _misc class SecurityTest(unittest.TestCase): @@ -19,6 +22,16 @@ class SecurityTest(unittest.TestCase): """ self._tmp_dir = tempfile.mkdtemp() self._repository = Repository(keystore_dir = self._tmp_dir) + self._entropy = Client() + + self._security_cache_dir = tempfile.mkdtemp() + self._security_dir = tempfile.mkdtemp() + System.SECURITY_DIR = self._security_dir + System._CACHE_DIR = self._security_cache_dir + System.SECURITY_URL = "file://" + _misc.get_security_pkg() + self._system = System(self._entropy) + # set fake security url + sys.stdout.write("%s called\n" % (self,)) sys.stdout.flush() @@ -26,11 +39,33 @@ class SecurityTest(unittest.TestCase): """ tearDown is run after each test """ + self._entropy.destroy() + del self._entropy del self._repository + del self._system shutil.rmtree(self._tmp_dir, True) + shutil.rmtree(self._security_dir, True) + shutil.rmtree(self._security_cache_dir, True) sys.stdout.write("%s ran\n" % (self,)) sys.stdout.flush() + def test_security_get_advisories_cache(self): + self.assertEqual(self._system.get_advisories_cache(), None) + + def test_security_set_advisories_cache(self): + self.assertEqual(self._system.get_advisories_cache(), None) + self._system.set_advisories_cache({'zomg': True}) + self.assertEqual(self._system.get_advisories_cache(), {'zomg': True}) + + def test_security_get_advisories_metadata(self): + meta = self._system.get_advisories_metadata() + # this should be empty + self.assertEqual(meta, {}) + + def test_security_fetch_advisories(self): + s_rc = self._system.sync() + self.assertEqual(s_rc, 0) + def test_gpg_handling(self): # available keys should be empty @@ -79,3 +114,4 @@ if __name__ == '__main__': from entropy.const import etpUi etpUi['debug'] = True unittest.main() + entropy.tools.kill_threads() \ No newline at end of file diff --git a/libraries/tests/server.py b/libraries/tests/server.py index 5c49fb3f9..1364d6a12 100644 --- a/libraries/tests/server.py +++ b/libraries/tests/server.py @@ -10,6 +10,7 @@ from entropy.const import etpConst from entropy.core.settings.base import SystemSettings from entropy.db import EntropyRepository from entropy.exceptions import RepositoryError +import entropy.tools import tests._misc as _misc class EntropyRepositoryTest(unittest.TestCase): @@ -61,3 +62,4 @@ if __name__ == '__main__': from entropy.const import etpUi etpUi['debug'] = True unittest.main() + entropy.tools.kill_threads() diff --git a/libraries/tests/spm.py b/libraries/tests/spm.py index 66ef1db6c..af9997c34 100644 --- a/libraries/tests/spm.py +++ b/libraries/tests/spm.py @@ -145,3 +145,4 @@ if __name__ == '__main__': from entropy.const import etpUi etpUi['debug'] = True unittest.main() + et.kill_threads() diff --git a/libraries/tests/tools.py b/libraries/tests/tools.py index a41e9b372..ed9230ddf 100644 --- a/libraries/tests/tools.py +++ b/libraries/tests/tools.py @@ -708,3 +708,4 @@ if __name__ == '__main__': from entropy.const import etpUi etpUi['debug'] = True unittest.main() + et.kill_threads()