diff options
Diffstat (limited to '_pytest/test_eventrouter.py')
-rw-r--r-- | _pytest/test_eventrouter.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/_pytest/test_eventrouter.py b/_pytest/test_eventrouter.py new file mode 100644 index 0000000..fc6a6a9 --- /dev/null +++ b/_pytest/test_eventrouter.py @@ -0,0 +1,76 @@ +import pytest +import pickle +from wee_slack import EventRouter, ProcessNotImplemented, SlackRequest + +def test_EventRouter(mock_weechat): + # Sending valid json adds to the queue. + e = EventRouter() + e.receive_json('{}') + assert len(e.queue) == 1 + + # Handling an event removes from the queue. + e = EventRouter() + # Create a function to test we are called + e.proc['testfunc'] = lambda x, y: x + e.receive_json('{"type": "testfunc"}') + e.handle_next() + assert len(e.queue) == 0 + + # Handling a local event removes from the queue. + e = EventRouter() + # Create a function to test we are called + e.proc['local_testfunc'] = lambda x, y: x + e.receive_json('{"type": "local_testfunc"}') + e.handle_next() + assert len(e.queue) == 0 + + # Handling an event without an associated processor + # raises an exception. + e = EventRouter() + # Create a function to test we are called + e.receive_json('{"type": "testfunc"}') + with pytest.raises(ProcessNotImplemented): + e.handle_next() + +def test_EventRouterReceivedata(mock_weechat): + + e = EventRouter() + pickled_data = pickle.dumps(SlackRequest('xoxoxoxox', "rtm.startold", {"meh": "blah"})) + e.receive_httprequest_callback(pickled_data, 1, -1, ' {"JSON": "MEH", ', 4) + #print len(e.reply_buffer) + e.receive_httprequest_callback(pickled_data, 1, -1, ' "JSON2": "MEH", ', 4) + #print len(e.reply_buffer) + e.receive_httprequest_callback(pickled_data, 1, 0, ' "JSON3": "MEH"}', 4) + #print len(e.reply_buffer) + try: + e.handle_next() + except: + pass + + pickled_data = pickle.dumps(SlackRequest('xoxoxoxox', "rtm.start", {"meh": "blah"})) + rtmstartdata = open('_pytest/data/http/rtm.start.json', 'r').read() + e.receive_httprequest_callback(pickled_data, 1, 0, rtmstartdata[:5000], 4) + e.receive_httprequest_callback(pickled_data, 1, 0, rtmstartdata[5000:], 4) + e.handle_next() + + #print len(e.reply_buffer) + + #print e.teams + + for t in e.teams: + #print vars(e.teams[t]) + for c in e.teams[t].channels: + pass + #print c + for u in e.teams[t].users: + pass + #print vars(u) + + +# e = EventRouter() +# # Create a function to test we are called +# e.receive_json('{"type": "message"}') +# e.handle_next() +# assert False + + #assert False |