def test_workflow(pcursor, icursor): """ Test that we can do stuff! """ sid1 = 'XXX' sid2 = 'YYY' pnetwork = 'xxxxxx' nt = NetworkTable(None) nt.sts[sid1] = dict(name='XXX Site Name', network='IA_XXXX', tzname='America/Chicago') nt.sts[sid2] = dict(name='YYY Site Name', network='IA_XXXX', tzname='America/Chicago') valid = datetime.datetime.utcnow() valid = valid.replace(tzinfo=pytz.timezone("UTC")) threshold = valid - datetime.timedelta(hours=3) obs = {sid1: {'valid': valid}, sid2: {'valid': valid - datetime.timedelta(hours=6)}} # Create dummy iem_site_contacts pcursor.execute(""" INSERT into iem_site_contacts (portfolio, s_mid, email) VALUES (%s, %s, %s) """, (pnetwork, sid1, 'akrherz@localhost')) pcursor.execute(""" INSERT into iem_site_contacts (portfolio, s_mid, email) VALUES (%s, %s, %s) """, (pnetwork, sid2, 'root@localhost')) # Create some dummy tickets pcursor.execute(""" INSERT into tt_base (portfolio, s_mid, subject, status, author) VALUES (%s, %s, %s, %s, %s) RETURNING id """, (pnetwork, sid1, 'FIXME PLEASE OPEN', 'OPEN', 'mesonet')) pcursor.execute(""" INSERT into tt_base (portfolio, s_mid, subject, status, author) VALUES (%s, %s, %s, %s, %s) RETURNING id """, (pnetwork, sid1, 'FIXME PLEASE CLOSED', 'CLOSED', 'mesonet')) tracker = TrackerEngine(icursor, pcursor) tracker.process_network(obs, pnetwork, nt, threshold) tracker.send_emails(really_send=False) assert len(tracker.emails) == 1 tracker.emails = {} obs[sid1]['valid'] = valid - datetime.timedelta(hours=6) obs[sid2]['valid'] = valid tracker.process_network(obs, pnetwork, nt, threshold) tracker.send_emails(really_send=False) assert len(tracker.emails) == 2 tracker.emails = {} obs[sid1]['valid'] = valid - datetime.timedelta(hours=6) obs[sid2]['valid'] = valid tracker.process_network(obs, pnetwork, nt, threshold) tracker.send_emails(really_send=False) assert not tracker.emails
def test_workflow(pcursor, icursor): """ Test that we can do stuff! """ sid1 = 'XXX' sid2 = 'YYY' pnetwork = 'xxxxxx' nt = NetworkTable(None) nt.sts[sid1] = dict(name='XXX Site Name', network='IA_XXXX', tzname='America/Chicago') nt.sts[sid2] = dict(name='YYY Site Name', network='IA_XXXX', tzname='America/Chicago') valid = datetime.datetime.utcnow() valid = valid.replace(tzinfo=pytz.timezone("UTC")) threshold = valid - datetime.timedelta(hours=3) obs = { sid1: { 'valid': valid }, sid2: { 'valid': valid - datetime.timedelta(hours=6) } } # Create dummy iem_site_contacts pcursor.execute( """ INSERT into iem_site_contacts (portfolio, s_mid, email) VALUES (%s, %s, %s) """, (pnetwork, sid1, 'akrherz@localhost')) pcursor.execute( """ INSERT into iem_site_contacts (portfolio, s_mid, email) VALUES (%s, %s, %s) """, (pnetwork, sid2, 'root@localhost')) # Create some dummy tickets pcursor.execute( """ INSERT into tt_base (portfolio, s_mid, subject, status, author) VALUES (%s, %s, %s, %s, %s) RETURNING id """, (pnetwork, sid1, 'FIXME PLEASE OPEN', 'OPEN', 'mesonet')) pcursor.execute( """ INSERT into tt_base (portfolio, s_mid, subject, status, author) VALUES (%s, %s, %s, %s, %s) RETURNING id """, (pnetwork, sid1, 'FIXME PLEASE CLOSED', 'CLOSED', 'mesonet')) tracker = TrackerEngine(icursor, pcursor) tracker.process_network(obs, pnetwork, nt, threshold) tracker.send_emails(really_send=False) assert len(tracker.emails) == 1 tracker.emails = {} obs[sid1]['valid'] = valid - datetime.timedelta(hours=6) obs[sid2]['valid'] = valid tracker.process_network(obs, pnetwork, nt, threshold) tracker.send_emails(really_send=False) assert len(tracker.emails) == 2 tracker.emails = {} obs[sid1]['valid'] = valid - datetime.timedelta(hours=6) obs[sid2]['valid'] = valid tracker.process_network(obs, pnetwork, nt, threshold) tracker.send_emails(really_send=False) assert not tracker.emails