Exemplo n.º 1
0
    def test_exporter_sends_second_email_after_2_hours(self):

        message_count = len(TEST_MESSAGES)

        log = DataTransferLog(last_updated=datetime.datetime.now() -
                              datetime.timedelta(minutes=30),
                              total_records=2,
                              type="export")
        db.session.add(log)
        db.session.commit()
        ExportService.send_alert_if_exports_not_running()
        self.assertGreater(len(TEST_MESSAGES), message_count)
        self.assertEqual(
            "Star Drive: Error - 30 minutes since last successful export",
            self.decode(TEST_MESSAGES[-1]['subject']))

        log.last_updated = datetime.datetime.now() - datetime.timedelta(
            minutes=120)
        db.session.add(log)
        db.session.commit()
        ExportService.send_alert_if_exports_not_running()
        self.assertGreater(len(TEST_MESSAGES), message_count + 1,
                           "another email should have gone out")
        self.assertEqual(
            "Star Drive: Error - 2 hours since last successful export",
            self.decode(TEST_MESSAGES[-1]['subject']))
Exemplo n.º 2
0
 def test_exporter_notifies_PI_after_24_hours(self):
     message_count = len(TEST_MESSAGES)
     log = DataTransferLog(last_updated=datetime.datetime.utcnow() - datetime.timedelta(hours=24), total_records=2,
                           type="export")
     db.session.add(log)
     db.session.commit()
     ExportService.send_alert_if_exports_not_running()
     self.assertTrue("*****@*****.**" in TEST_MESSAGES[-1]['To'])
Exemplo n.º 3
0
 def test_exporter_sends_20_emails_over_first_48_hours(self):
     message_count = len(TEST_MESSAGES)
     log = DataTransferLog(last_updated=datetime.datetime.utcnow() - datetime.timedelta(days=2), total_records=2,
                           type="export")
     db.session.add(log)
     db.session.commit()
     for i in range(20):
         ExportService.send_alert_if_exports_not_running()
     self.assertEqual(message_count + 20, len(TEST_MESSAGES), msg="20 emails should have gone out.")
Exemplo n.º 4
0
    def test_exporter_sends_no_email_alert_if_less_than_30_minutes_pass_without_export(self):

        message_count = len(TEST_MESSAGES)

        log = DataTransferLog(last_updated=datetime.datetime.utcnow() - datetime.timedelta(minutes=28), total_records=2,
                              type="export")
        db.session.add(log)
        db.session.commit()
        ExportService.send_alert_if_exports_not_running()
        self.assertEqual(len(TEST_MESSAGES), message_count)
Exemplo n.º 5
0
 def test_exporter_sends_12_emails_over_first_24_hours(self):
     """
     If more than 24 hours pass without an export from the Public Mirror to the Private Mirror, an email will be
     sent to an administrative email address at the 30 minute and then every 2 hours after that.
     """
     message_count = len(TEST_MESSAGES)
     date = datetime.datetime.utcnow() - datetime.timedelta(hours=22)
     log = DataTransferLog(last_updated=date,
                           total_records=2, type="export")
     db.session.add(log)
     db.session.commit()
     for i in range(20):
         ExportService.send_alert_if_exports_not_running()
     self.assertEqual(message_count + 12, len(TEST_MESSAGES), msg="12 emails should have gone out.")
Exemplo n.º 6
0
    def test_exporter_sends_second_email_after_2_hours(self):
        """
        If more than 2 hours pass without an export from the Public Mirror to the Private Mirror, an email will be
        sent to an administrative email address at the 30 minute and 2 hour marks.
        """
        message_count = len(TEST_MESSAGES)

        log = DataTransferLog(last_updated=datetime.datetime.utcnow() - datetime.timedelta(minutes=30), total_records=2, type="export")
        db.session.add(log)
        db.session.commit()
        ExportService.send_alert_if_exports_not_running()
        print('@ 30 minutes:', len(TEST_MESSAGES), 'messages')
        self.assertGreater(len(TEST_MESSAGES), message_count)
        self.assertEqual("Autism DRIVE: Error - 30 minutes since last successful export", self.decode(TEST_MESSAGES[-1]['subject']))

        log.last_updated = datetime.datetime.utcnow() - datetime.timedelta(minutes=120)
        db.session.add(log)
        db.session.commit()
        ExportService.send_alert_if_exports_not_running()
        print('@ 2 hours:', len(TEST_MESSAGES), 'messages')
        self.assertGreater(len(TEST_MESSAGES), message_count + 1, "another email should have gone out")
        self.assertEqual("Autism DRIVE: Error - 2 hours since last successful export", self.decode(TEST_MESSAGES[-1]['subject']))
Exemplo n.º 7
0
    def test_exporter_sends_email_alert_if_30_minutes_pass_without_export(self):
        """
        If more than 30 minutes pass without an export from the Public Mirror to the Private Mirror, an email should be
        sent to an administrative email address.
        """
        message_count = len(TEST_MESSAGES)

        log = DataTransferLog(last_updated=datetime.datetime.utcnow() - datetime.timedelta(minutes=45), total_records=2,
                              type="export")
        db.session.add(log)
        db.session.commit()

        ExportService.send_alert_if_exports_not_running()
        self.assertGreater(len(TEST_MESSAGES), message_count)
        self.assertEqual("Autism DRIVE: Error - 45 minutes since last successful export",
                         self.decode(TEST_MESSAGES[-1]['subject']))
        ExportService.send_alert_if_exports_not_running()
        ExportService.send_alert_if_exports_not_running()
        ExportService.send_alert_if_exports_not_running()
        self.assertEqual(message_count + 1, len(TEST_MESSAGES), msg="No more messages should be sent.")
        self.assertEqual("*****@*****.**", TEST_MESSAGES[-1]['To'])
Exemplo n.º 8
0
    def test_exporter_sends_email_alert_if_30_minutes_pass_without_export(
            self):

        message_count = len(TEST_MESSAGES)

        log = DataTransferLog(last_updated=datetime.datetime.now() -
                              datetime.timedelta(minutes=45),
                              total_records=2,
                              type="export")
        db.session.add(log)
        db.session.commit()

        ExportService.send_alert_if_exports_not_running()
        self.assertGreater(len(TEST_MESSAGES), message_count)
        self.assertEqual(
            "Star Drive: Error - 45 minutes since last successful export",
            self.decode(TEST_MESSAGES[-1]['subject']))
        ExportService.send_alert_if_exports_not_running()
        ExportService.send_alert_if_exports_not_running()
        ExportService.send_alert_if_exports_not_running()
        self.assertEqual(message_count + 1,
                         len(TEST_MESSAGES),
                         msg="No more messages should be sent.")
        self.assertEqual("*****@*****.**", TEST_MESSAGES[-1]['To'])