44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
import converter
|
|
|
|
def test():
|
|
for cmd, expected_response in sample_conversation():
|
|
message = {'content': cmd, 'subject': 'foo',
|
|
'display_recipient': 'bar'}
|
|
|
|
class ClientDummy(object):
|
|
def __init__(self):
|
|
self.output = ''
|
|
|
|
def send_message(self, params):
|
|
self.output = params['content']
|
|
handler = converter.ConverterHandler()
|
|
client_dummy = ClientDummy()
|
|
handler.handle_message(message, client_dummy, '')
|
|
if client_dummy.output != expected_response:
|
|
raise AssertionError('''
|
|
cmd: %s
|
|
expected: %s
|
|
but got : %s
|
|
''' % (cmd, expected_response, client_dummy.output))
|
|
def sample_conversation():
|
|
return [
|
|
('@convert 2 m cm', '2.0 m = 200.0 cm\n'),
|
|
('@converter 2 m cm', ''),
|
|
('@convert 12 celsius fahrenheit',
|
|
'12.0 celsius = 53.600054 fahrenheit\n'),
|
|
('@convert 0.002 kilometer millimile',
|
|
'0.002 kilometer = 1.2427424 millimile\n'),
|
|
('@convert 3 megabyte kilobit',
|
|
'3.0 megabyte = 24576.0 kilobit\n'),
|
|
(('foo @convert 120.5 g lb bar baz.\n'
|
|
'baz bar bar @convert 22 k c lorem ipsum dolor'),
|
|
('1. conversion: 120.5 g = 0.26565703 lb\n'
|
|
'2. conversion: 22.0 k = -251.15 c\n')),
|
|
('@convert foo bar',
|
|
('Too few arguments given. Enter `@convert help` '
|
|
'for help on using the converter.\n')),
|
|
]
|
|
|
|
if __name__ == '__main__':
|
|
test()
|