wiki: handle json parsing error

master
mutantmonkey 2012-06-23 21:55:37 -07:00
parent 2c9a937c2e
commit 6ecbe4ca18
4 changed files with 30 additions and 3 deletions

View File

@ -22,6 +22,14 @@ class TestArchwiki(unittest.TestCase):
out, flags=re.UNICODE)
self.assertTrue(m)
def test_awik_invalid(self):
term = "KVM#Enabling_KSM"
input = Mock(groups=lambda: ['', term])
archwiki.awik(self.phenny, input)
self.phenny.say.assert_called_once_with( "Can't find anything in "\
"the ArchWiki for \"{0}\".".format(term))
def test_awik_none(self):
term = "Ajgoajh"
input = Mock(groups=lambda: ['', term])

View File

@ -22,6 +22,14 @@ class TestVtluugwiki(unittest.TestCase):
out, flags=re.UNICODE)
self.assertTrue(m)
def test_vtluug_invalid(self):
term = "EAP-TLS#netcfg"
input = Mock(groups=lambda: ['', term])
vtluugwiki.vtluug(self.phenny, input)
self.phenny.say.assert_called_once_with( "Can't find anything in "\
"the VTLUUG Wiki for \"{0}\".".format(term))
def test_vtluug_none(self):
term = "Ajgoajh"
input = Mock(groups=lambda: ['', term])

View File

@ -22,6 +22,14 @@ class TestWikipedia(unittest.TestCase):
out, flags=re.UNICODE)
self.assertTrue(m)
def test_wik_invalid(self):
term = "New York City#Climate"
input = Mock(groups=lambda: ['', term])
wikipedia.wik(self.phenny, input)
self.phenny.say.assert_called_once_with( "Can't find anything in "\
"Wikipedia for \"{0}\".".format(term))
def test_wik_none(self):
term = "Ajgoajh"
input = Mock(groups=lambda: ['', term])

View File

@ -43,9 +43,12 @@ class Wiki(object):
def search(self, term, last=False):
url = self.api.format(term)
bytes = web.get(url)
result = json.loads(bytes)
result = result['query']['search']
if len(result) <= 0:
try:
result = json.loads(bytes)
result = result['query']['search']
if len(result) <= 0:
return None
except ValueError:
return None
term = result[0]['title']
term = term.replace(' ', '_')