def setup_for_test(self): self.email_alert = EmailAlert(self.cur_session) self.patched_out_sender = monitor.email_sender monitor.email_sender = FakeEmailer()
class EmailAlertTests(DbTest): def setup_for_test(self): self.email_alert = EmailAlert(self.cur_session) self.patched_out_sender = monitor.email_sender monitor.email_sender = FakeEmailer() def clean_up_after_test(self): monitor.email_sender = self.patched_out_sender def test_send_alerts_for_id_no_alert_nothing_sent(self): uri_check_id = 1 self.add_with_one_uri_check_with_id_and_no_alerts(uri_check_id) self.email_alert.send_alerts_for_id(uri_check_id, '') assert not monitor.email_sender.send_called def test_send_alerts_for_id_1_alert_msg_sent(self): uri_check_id = 1 expected_target_email = '*****@*****.**' self.add_with_one_uri_check_with_id_and_no_alerts(uri_check_id) self.add_alert_for_uri_check_with_id(uri_check_id, expected_target_email) self.email_alert.send_alerts_for_id(uri_check_id, '') assert monitor.email_sender.send_called assert monitor.email_sender.sent_to == expected_target_email def test_send_alerts_for_id_1_alert_msg_sent_with_url_in(self): uri_check_id = 1 expected_url = 'google.com' self.add_with_one_uri_check_with_id_and_no_alerts(uri_check_id) self.add_alert_for_uri_check_with_id(uri_check_id) self.email_alert.send_alerts_for_id(uri_check_id, expected_url) assert monitor.email_sender.send_args['url'] == expected_url def test_send_alerts_for_id_1_under_alert_count_msg_sent(self): uri_check_id = 1 expected_url = 'google.com' self.add_with_one_uri_check_with_id_and_no_alerts(uri_check_id) self.add_alert_for_uri_check_with_id(uri_check_id, num_of_times = 1) self.email_alert.send_alerts_for_id(uri_check_id, expected_url) assert monitor.email_sender.send_called def test_send_alerts_for_id_1_alert_count_incremented_and_commited(self): uri_check_id = 1 expected_url = 'google.com' self.add_with_one_uri_check_with_id_and_no_alerts(uri_check_id) self.add_alert_for_uri_check_with_id(uri_check_id, num_of_times = 2, num_of_times_alerted=0) self.email_alert.send_alerts_for_id(uri_check_id, expected_url) self.assertEquals(self.cur_session.query(Alert).all()[0].num_of_times_alerted, 1) def test_send_alerts_for_id_1_reaches_message_count_stop_is_set_on_alert(self): uri_check_id = 1 expected_url = 'google.com' self.add_with_one_uri_check_with_id_and_no_alerts(uri_check_id) self.add_alert_for_uri_check_with_id(uri_check_id, num_of_times = 1, num_of_times_alerted = 0) self.email_alert.send_alerts_for_id(uri_check_id, expected_url) assert self.cur_session.query(Alert).one().stop def test_send_alerts_for_id_1_over_alert_count_msg_not_sent(self): uri_check_id = 1 expected_url = 'google.com' self.add_with_one_uri_check_with_id_and_no_alerts(uri_check_id) self.add_alert_for_uri_check_with_id(uri_check_id, num_of_times = 1, num_of_times_alerted = 2) self.email_alert.send_alerts_for_id(uri_check_id, expected_url) assert not monitor.email_sender.send_called def test_send_alerts_for_id_1_unlimited_alerts_msg_sent(self): uri_check_id = 1 expected_url = 'google.com' self.add_with_one_uri_check_with_id_and_no_alerts(uri_check_id) self.add_alert_for_uri_check_with_id(uri_check_id, num_of_times = EmailAlert.NO_LIMIT, num_of_times_alerted = 2) self.email_alert.send_alerts_for_id(uri_check_id, expected_url) assert monitor.email_sender.send_called assert not self.cur_session.query(Alert).one().stop