calc: fix handling and add tests for empty result

master
mutantmonkey 2012-06-19 18:04:00 -07:00
parent bf55297f43
commit 251b01e000
2 changed files with 24 additions and 3 deletions

View File

@ -48,12 +48,12 @@ def c(phenny, input):
answer = answer.replace('</sup>', ')') answer = answer.replace('</sup>', ')')
answer = web.decode(answer) answer = web.decode(answer)
phenny.say(answer) phenny.say(answer)
else: phenny.say('Sorry, no result.') else: phenny.reply('Sorry, no result.')
c.commands = ['c'] c.commands = ['c']
c.example = '.c 5 + 3' c.example = '.c 5 + 3'
def py(phenny, input): def py(phenny, input):
query = input.group(2) query = input.group(2) or ""
uri = 'http://tumbolia.appspot.com/py/' uri = 'http://tumbolia.appspot.com/py/'
answer = web.get(uri + web.quote(query)) answer = web.get(uri + web.quote(query))
if answer: if answer:
@ -66,8 +66,13 @@ def wa(phenny, input):
return phenny.reply("No search term.") return phenny.reply("No search term.")
query = input.group(2) query = input.group(2)
uri = 'http://tumbolia.appspot.com/wa/' uri = 'http://tumbolia.appspot.com/wa/'
answer = web.get(uri + web.quote(query.replace('+', '%2B'))) answer = web.get(uri + web.quote(query.replace('+', '%2B')))
try:
answer = answer.split(';')[1] answer = answer.split(';')[1]
except IndexError:
answer = ""
if answer: if answer:
phenny.say(answer) phenny.say(answer)
else: phenny.reply('Sorry, no result.') else: phenny.reply('Sorry, no result.')

View File

@ -24,14 +24,30 @@ class TestCalc(unittest.TestCase):
self.phenny.say.assert_called_once_with('1.84467441 * 10^(19)') self.phenny.say.assert_called_once_with('1.84467441 * 10^(19)')
def test_c_none(self):
input = Mock(group=lambda x: 'aif')
c(self.phenny, input)
self.phenny.reply.assert_called_once_with('Sorry, no result.')
def test_py(self): def test_py(self):
input = Mock(group=lambda x: "'test'*3") input = Mock(group=lambda x: "'test'*3")
py(self.phenny, input) py(self.phenny, input)
self.phenny.say.assert_called_once_with('testtesttest\n') self.phenny.say.assert_called_once_with('testtesttest\n')
def test_py_none(self):
input = Mock(group=lambda x: "")
py(self.phenny, input)
def test_wa(self): def test_wa(self):
input = Mock(group=lambda x: 'airspeed of an unladen swallow') input = Mock(group=lambda x: 'airspeed of an unladen swallow')
wa(self.phenny, input) wa(self.phenny, input)
self.phenny.say.assert_called_once_with('25 mph (miles per hour)') self.phenny.say.assert_called_once_with('25 mph (miles per hour)')
def test_wa_none(self):
input = Mock(group=lambda x: "jajoajaj ojewphjqo I!tj")
wa(self.phenny, input)
self.phenny.reply.assert_called_once_with('Sorry, no result.')