Ejemplo n.º 1
0
def real_process(txn, raw):
    """Process the product, please"""
    prod = sawparser(raw)
    if prod.is_test():
        log.msg("TEST watch found, skipping")
        return
    prod.sql(txn)
    prod.compute_wfos(txn)
    for (txt, html, xtra) in prod.get_jabbers(IEM_URL):
        JABBER.send_message(txt, html, xtra)
Ejemplo n.º 2
0
def real_process(txn, raw):
    """Process the product, please"""
    prod = sawparser(raw)
    if prod.is_test():
        log.msg("TEST watch found, skipping")
        return
    prod.sql(txn)
    prod.compute_wfos(txn)
    for (txt, html, xtra) in prod.get_jabbers(IEM_URL):
        JABBER.send_message(txt, html, xtra)
Ejemplo n.º 3
0
def test_cancelled(dbcursor):
    """SAW-cancelled make sure we can cancel a watch"""
    utcnow = utc(2014, 3, 10, 3, 29)
    prod = sawparser(get_test_file("SAW/SAW-cancelled.txt"), utcnow=utcnow)
    assert prod.action == prod.CANCELS
    j = prod.get_jabbers(None)
    ans = ("Storm Prediction Center cancels Weather Watch Number 575 "
           "https://www.spc.noaa.gov/products/watch/2014/ww0575.html")
    assert j[0][0] == ans
    prod.sql(dbcursor)
    prod.compute_wfos(dbcursor)
Ejemplo n.º 4
0
def test_181231_linkisok():
    """The plain text tweet should have a space."""
    utcnow = utc(2014, 3, 10, 3, 29)
    utcnow = utcnow.replace(microsecond=100)
    prod = sawparser(get_test_file("SAW/SAW3.txt"), utcnow=utcnow)
    assert prod.ets.microsecond == 0
    jmsgs = prod.get_jabbers("")
    ans = ("SPC issues Severe Thunderstorm Watch 503 till 9:00Z "
           "https://www.spc.noaa.gov/products/watch/2014/ww0503.html")
    assert jmsgs[0][0] == ans
    assert jmsgs[0][2]["channels"] == "SPC,SPC.SVRWATCH"
Ejemplo n.º 5
0
 def test_cancelled(self):
     """SAW-cancelled make sure we can cancel a watch"""
     utcnow = datetime.datetime(2014, 3, 10, 3, 29)
     utcnow = utcnow.replace(tzinfo=pytz.timezone("UTC"))
     prod = sawparser(get_file('SAW-cancelled.txt'), utcnow=utcnow)
     self.assertEquals(prod.action, prod.CANCELS)
     j = prod.get_jabbers(None)
     answer = ("Storm Prediction Center cancels Weather Watch Number 575 "
               "http://www.spc.noaa.gov/products/watch/2014/ww0575.html")
     self.assertEquals(j[0][0], answer)
     prod.sql(self.cursor)
     prod.compute_wfos(self.cursor)
Ejemplo n.º 6
0
def test_cancelled(dbcursor):
    """SAW-cancelled make sure we can cancel a watch"""
    utcnow = utc(2014, 3, 10, 3, 29)
    prod = sawparser(get_test_file('SAW/SAW-cancelled.txt'), utcnow=utcnow)
    assert prod.action == prod.CANCELS
    j = prod.get_jabbers(None)
    ans = (
        "Storm Prediction Center cancels Weather Watch Number 575 "
        "https://www.spc.noaa.gov/products/watch/2014/ww0575.html")
    assert j[0][0] == ans
    prod.sql(dbcursor)
    prod.compute_wfos(dbcursor)
Ejemplo n.º 7
0
def test_181231_linkisok():
    """The plain text tweet should have a space."""
    utcnow = utc(2014, 3, 10, 3, 29)
    utcnow = utcnow.replace(microsecond=100)
    prod = sawparser(get_test_file('SAW/SAW3.txt'), utcnow=utcnow)
    assert prod.ets.microsecond == 0
    jmsgs = prod.get_jabbers('')
    ans = (
        "SPC issues Severe Thunderstorm Watch 503 till 9:00Z "
        "https://www.spc.noaa.gov/products/watch/2014/ww0503.html"
    )
    assert jmsgs[0][0] == ans
Ejemplo n.º 8
0
def test_replacement(dbcursor):
    """Can we do replacements?"""
    utcnow = utc(2017, 8, 21, 9, 17)
    prod = sawparser(get_test_file("SAW/SAW-replaces.txt"), utcnow=utcnow)
    prod.sql(dbcursor)
    jmsgs = prod.get_jabbers("")
    assert len(jmsgs) == 1
    ans = ("SPC issues Severe Thunderstorm Watch"
           " 153 till 17:00Z, new watch replaces WW 1 "
           "https://www.spc.noaa.gov/products/watch/2017/ww0153.html")
    assert jmsgs[0][0] == ans
    assert "twitter" in jmsgs[0][2]
Ejemplo n.º 9
0
 def test_replacement(self):
     """Can we do replacements?"""
     utcnow = datetime.datetime(2017, 8, 21, 9, 17)
     utcnow = utcnow.replace(tzinfo=pytz.timezone("UTC"))
     prod = sawparser(get_file('SAW-replaces.txt'), utcnow=utcnow)
     prod.sql(self.cursor)
     jmsgs = prod.get_jabbers('')
     self.assertEquals(len(jmsgs), 1)
     self.assertEquals(jmsgs[0][0],
                       ("SPC issues Severe Thunderstorm Watch"
                        " 153 till 17:00Z, new watch replaces WW 1 "
                        "http://www.spc.noaa.gov/products/watch/"
                        "2017/ww0153.html"))
Ejemplo n.º 10
0
def test_saw3():
    """SAW3"""
    utcnow = utc(2014, 3, 10, 3, 29)
    sts = utcnow.replace(hour=3, minute=35)
    ets = utcnow.replace(hour=9, minute=0)
    prod = sawparser(get_test_file('SAW/SAW3.txt'), utcnow=utcnow)
    assert prod.saw == 3
    assert abs(prod.geometry.area - 7.73) < 0.01
    assert prod.ww_num == 503
    assert prod.sts == sts
    assert prod.ets == ets
    assert prod.ww_type == prod.SEVERE_THUNDERSTORM
    assert prod.action == prod.ISSUES
Ejemplo n.º 11
0
def test_replacement(dbcursor):
    """Can we do replacements?"""
    utcnow = utc(2017, 8, 21, 9, 17)
    prod = sawparser(get_test_file('SAW/SAW-replaces.txt'), utcnow=utcnow)
    prod.sql(dbcursor)
    jmsgs = prod.get_jabbers('')
    assert len(jmsgs) == 1
    ans = (
        "SPC issues Severe Thunderstorm Watch"
        " 153 till 17:00Z, new watch replaces WW 1 "
        "https://www.spc.noaa.gov/products/watch/2017/ww0153.html")
    assert jmsgs[0][0] == ans
    assert 'twitter' in jmsgs[0][2]
Ejemplo n.º 12
0
 def test_saw3(self):
     """SAW3"""
     utcnow = datetime.datetime(2014, 3, 10, 3, 29)
     utcnow = utcnow.replace(tzinfo=pytz.timezone("UTC"))
     sts = utcnow.replace(hour=3, minute=35)
     ets = utcnow.replace(hour=9, minute=0)
     prod = sawparser(get_file('SAW3.txt'), utcnow=utcnow)
     self.assertEquals(prod.saw, 3)
     self.assertAlmostEquals(prod.geometry.area, 7.73, 2)
     self.assertEquals(prod.ww_num, 503)
     self.assertEquals(prod.sts, sts)
     self.assertEquals(prod.ets, ets)
     self.assertEquals(prod.ww_type, prod.SEVERE_THUNDERSTORM)
     self.assertEquals(prod.action, prod.ISSUES)