From 3ed392afdba7f341136560f470a6a5243c6936c0 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Feb 13 2018 18:48:43 +0000 Subject: unit test for regenLoop --- diff --git a/tests/test_kojira/test_repo_manager.py b/tests/test_kojira/test_repo_manager.py index 61471af..065a82b 100644 --- a/tests/test_kojira/test_repo_manager.py +++ b/tests/test_kojira/test_repo_manager.py @@ -8,6 +8,10 @@ from . import loadkojira kojira = loadkojira.kojira +class OurException(Exception): + pass + + class RepoManagerTest(unittest.TestCase): def setUp(self): @@ -79,3 +83,16 @@ class RepoManagerTest(unittest.TestCase): self.mgr.checkTasks() # should have removed the close tasks self.assertEqual(self.mgr.tasks.keys(), [101, 102]) + + @mock.patch('time.sleep') + def test_regen_loop(self, sleep): + subsession = mock.MagicMock() + self.mgr.regenRepos = mock.MagicMock() + self.mgr.regenRepos.side_effect = [None] * 10 + [OurException()] + # we need the exception to terminate the infinite loop + + with self.assertRaises(OurException): + self.mgr.regenLoop(subsession) + + self.assertEqual(self.mgr.regenRepos.call_count, 11) + subsession.logout.assert_called_once() diff --git a/util/kojira b/util/kojira index 791e1ab..c1db9ed 100755 --- a/util/kojira +++ b/util/kojira @@ -350,7 +350,7 @@ class RepoManager(object): self.checkCurrentRepos() time.sleep(self.options.sleeptime) except: - logger.exception('Error in currency checker thread') + self.logger.exception('Error in currency checker thread') raise finally: session.logout() @@ -365,7 +365,7 @@ class RepoManager(object): self.regenRepos() time.sleep(self.options.sleeptime) except: - logger.exception('Error in regen thread') + self.logger.exception('Error in regen thread') raise finally: session.logout()