weather: handle bad locations better
parent
52aaa0778a
commit
0ba6438922
|
@ -26,10 +26,28 @@ class TestWeather(unittest.TestCase):
|
|||
|
||||
self.assertEqual(icao, 'KIAD')
|
||||
|
||||
def test_location(self):
|
||||
def test_airport(self):
|
||||
input = Mock(
|
||||
match=Mock(group=lambda x: 'KIAD'),
|
||||
sender='#phenny', nick='phenny_test')
|
||||
f_weather(self.phenny, input)
|
||||
|
||||
assert self.phenny.msg.called is True
|
||||
|
||||
def test_place(self):
|
||||
input = Mock(
|
||||
match=Mock(group=lambda x: 'Blacksburg'),
|
||||
sender='#phenny', nick='phenny_test')
|
||||
f_weather(self.phenny, input)
|
||||
|
||||
assert self.phenny.msg.called is True
|
||||
|
||||
def test_notfound(self):
|
||||
input = Mock(
|
||||
match=Mock(group=lambda x: 'Hell'),
|
||||
sender='#phenny', nick='phenny_test')
|
||||
f_weather(self.phenny, input)
|
||||
|
||||
self.phenny.msg.called_once_with('#phenny',
|
||||
"No NOAA data available for that location.")
|
||||
|
||||
|
|
|
@ -83,6 +83,10 @@ def f_weather(self, origin, match, args):
|
|||
try: bytes = web.get(uri % icao_code)
|
||||
except AttributeError:
|
||||
raise GrumbleError('OH CRAP NOAA HAS GONE DOWN THE WEB IS BROKEN')
|
||||
except urllib.error.HTTPError:
|
||||
self.msg(origin.sender, "No NOAA data available for that location.")
|
||||
return
|
||||
|
||||
if 'Not Found' in bytes:
|
||||
self.msg(origin.sender, icao_code+': no such ICAO code, or no NOAA data')
|
||||
return
|
||||
|
|
Loading…
Reference in New Issue