bumblebee-status/tests/core/test_event.py

58 lines
2 KiB
Python

import unittest
import core.event
class event(unittest.TestCase):
def setUp(self):
self.someEvent = 'event'
self.called = {}
self.params = []
core.event.clear()
def callback1(self):
self.called['callback1'] = True
def callback2(self):
self.called['callback2'] = True
def callback_args(self, val1, val2):
self.called['callback_args'] = True
self.params = [val1, val2]
def callback_kwargs(self, val1, val2, key1=None, key2=None):
self.called['callback_kwargs'] = True
self.params = [val1, val2, key1, key2]
def test_simple_callback(self):
core.event.register(self.someEvent, self.callback1)
core.event.register(self.someEvent, self.callback2)
core.event.trigger(self.someEvent)
self.assertEqual(2, len(self.called.keys()))
def test_arg_callback(self):
core.event.register(self.someEvent, self.callback_args, 'a', 'b')
core.event.trigger(self.someEvent)
self.assertEqual(1, len(self.called.keys()))
self.assertEqual(['a', 'b'], self.params)
def test_kwargs_callback(self):
core.event.register(self.someEvent, self.callback_kwargs, 'a', 'b', key1='test', key2='x')
core.event.trigger(self.someEvent)
self.assertEqual(1, len(self.called.keys()))
self.assertEqual(['a', 'b', 'test', 'x'], self.params)
def test_arg_trigger(self):
core.event.register(self.someEvent, self.callback_args)
core.event.trigger(self.someEvent, 'a', 'b')
self.assertEqual(1, len(self.called.keys()))
self.assertEqual(['a', 'b'], self.params)
def test_kwargs_trigger(self):
core.event.register(self.someEvent, self.callback_kwargs)
core.event.trigger(self.someEvent, 'a', 'b', key1='test', key2='x')
self.assertEqual(1, len(self.called.keys()))
self.assertEqual(['a', 'b', 'test', 'x'], self.params)
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4