class TestXMLRPCRunnerHeatBeat(MailmanTestCase): """Test XMLRPCRunner._hearbeat method.""" layer = DatabaseFunctionalLayer def setUp(self): super(TestXMLRPCRunnerHeatBeat, self).setUp() self.mm_list = None syslog.write_ex('xmlrpc', 'Ensure the log is open.') self.reset_log() self.runner = XMLRPCRunner() # MailmanTestCase's setup of the test proxy is ignored because # the runner had a reference to the true proxy in its __init__. self.runner._proxy = get_mailing_list_api_test_proxy() def test_heartbeat_on_start(self): # A heartbeat is recorded in the log on start. mark = self.get_mark() self.assertTrue(mark is not None) def test_heatbeat_frequency_no_heartbeat(self): # A heartbeat is not recorded when the that last beat less than # the heartbeat_frequency. self.runner._heartbeat() self.reset_log() self.runner._heartbeat() now = datetime.now() last_heartbeat = self.runner.last_heartbeat self.assertTrue( now - last_heartbeat < self.runner.heartbeat_frequency) mark = self.get_mark() self.assertTrue(mark is None) def test__oneloop_success_heartbeat(self): # A heartbeat is recorded when the loop completes successfully. self.reset_log() self.runner.last_heartbeat = ( self.runner.last_heartbeat - self.runner.heartbeat_frequency) self.runner._oneloop() mark = self.get_mark() self.assertTrue(mark is not None) def test__oneloop_exception_no_heartbeat(self): # A heartbeat is not recorded when there is an exception in the loop. self.reset_log() self.runner.last_heartbeat = ( self.runner.last_heartbeat - self.runner.heartbeat_frequency) # Hack runner to raise an oops. with one_loop_exception(self.runner): self.runner._oneloop() mark = self.get_mark() self.assertTrue(mark is None)
class TestXMLRPCRunnerHeatBeat(MailmanTestCase): """Test XMLRPCRunner._hearbeat method.""" layer = DatabaseFunctionalLayer def setUp(self): super(TestXMLRPCRunnerHeatBeat, self).setUp() self.mm_list = None syslog.write_ex('xmlrpc', 'Ensure the log is open.') self.reset_log() self.runner = XMLRPCRunner() # MailmanTestCase's setup of the test proxy is ignored because # the runner had a reference to the true proxy in its __init__. self.runner._proxy = get_mailing_list_api_test_proxy() def test_heartbeat_on_start(self): # A heartbeat is recorded in the log on start. mark = self.get_mark() self.assertTrue(mark is not None) def test_heatbeat_frequency_no_heartbeat(self): # A heartbeat is not recorded when the that last beat less than # the heartbeat_frequency. self.runner._heartbeat() self.reset_log() self.runner._heartbeat() now = datetime.now() last_heartbeat = self.runner.last_heartbeat self.assertTrue(now - last_heartbeat < self.runner.heartbeat_frequency) mark = self.get_mark() self.assertTrue(mark is None) def test__oneloop_success_heartbeat(self): # A heartbeat is recorded when the loop completes successfully. self.reset_log() self.runner.last_heartbeat = (self.runner.last_heartbeat - self.runner.heartbeat_frequency) self.runner._oneloop() mark = self.get_mark() self.assertTrue(mark is not None) def test__oneloop_exception_no_heartbeat(self): # A heartbeat is not recorded when there is an exception in the loop. self.reset_log() self.runner.last_heartbeat = (self.runner.last_heartbeat - self.runner.heartbeat_frequency) # Hack runner to raise an oops. with one_loop_exception(self.runner): self.runner._oneloop() mark = self.get_mark() self.assertTrue(mark is None)