Filter: catch invalid input for unbinary command.

This commit is contained in:
Daniel Folkinshteyn 2010-07-21 12:57:18 -04:00
parent 920c37c314
commit 4aa876255c
2 changed files with 6 additions and 2 deletions

View File

@ -162,8 +162,11 @@ class Filter(callbacks.Plugin):
Returns the character representation of binary <text>. Returns the character representation of binary <text>.
Assumes ASCII, 8 digits per character. Assumes ASCII, 8 digits per character.
""" """
L = [chr(int(text[i:(i+8)], 2)) for i in xrange(0, len(text), 8)] try:
irc.reply(''.join(L)) L = [chr(int(text[i:(i+8)], 2)) for i in xrange(0, len(text), 8)]
irc.reply(''.join(L))
except ValueError:
irc.error('Invalid input.')
unbinary = wrap(unbinary, ['text']) unbinary = wrap(unbinary, ['text'])
def hexlify(self, irc, msg, args, text): def hexlify(self, irc, msg, args, text):

View File

@ -89,6 +89,7 @@ class FilterTest(ChannelPluginTestCase):
def testUnbinary(self): def testUnbinary(self):
self.assertResponse('unbinary 011011010110111101101111', 'moo') self.assertResponse('unbinary 011011010110111101101111', 'moo')
self.assertError('unbinary moo')
def testRot13(self): def testRot13(self):
for s in map(str, range(1000, 1010)): for s in map(str, range(1000, 1010)):