You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
2.0 KiB
54 lines
2.0 KiB
import unittest
|
|
import mock
|
|
|
|
from os.path import dirname, realpath
|
|
from sys import argv, path
|
|
path.append(dirname(dirname(realpath(__file__))) + '/lib')
|
|
|
|
from Event.Event import Event
|
|
from Event.EventDispatcher import EventDispatcher
|
|
|
|
class TestEventDisptcher(unittest.TestCase):
|
|
def setUp(self):
|
|
self._dispatcher = EventDispatcher()
|
|
self._handler_mock1 = mock.Mock()
|
|
self._handler_mock2 = mock.Mock()
|
|
|
|
self._handler_mock1.getHandledIds.return_value = [1, 2]
|
|
self._handler_mock2.getHandledIds.return_value = [1, 3]
|
|
|
|
def testRegisterHandler(self):
|
|
self._dispatcher.registerHandler(self._handler_mock1)
|
|
self._dispatcher.registerHandler(self._handler_mock2)
|
|
|
|
self._handler_mock1.getHandledIds.called_once()
|
|
self._handler_mock2.getHandledIds.called_once()
|
|
|
|
self._handler_mock1.setDispatcher.called_once()
|
|
self._handler_mock2.setDispatcher.called_once()
|
|
|
|
self.assertIn(1, self._dispatcher._handler)
|
|
self.assertIn(2, self._dispatcher._handler)
|
|
self.assertIn(3, self._dispatcher._handler)
|
|
self.assertNotIn(4, self._dispatcher._handler)
|
|
self.assertIn(self._handler_mock1, self._dispatcher._handler[1])
|
|
self.assertIn(self._handler_mock2, self._dispatcher._handler[1])
|
|
self.assertIn(self._handler_mock1, self._dispatcher._handler[2])
|
|
self.assertNotIn(self._handler_mock2, self._dispatcher._handler[2])
|
|
self.assertIn(self._handler_mock2, self._dispatcher._handler[3])
|
|
|
|
def testSetHeartbeat(self):
|
|
self._dispatcher.setHeartbeat(None)
|
|
self.assertEqual(self._dispatcher._heartbeat, None)
|
|
self.assertEqual(self._dispatcher._nextbeat, 0.0)
|
|
self._dispatcher.setHeartbeat(1.0)
|
|
self.assertEqual(self._dispatcher._heartbeat, 1.0)
|
|
self.assertNotEqual(self._dispatcher._nextbeat, 0.0)
|
|
|
|
def suite():
|
|
return unittest.TestLoader().loadTestsFromTestCase(TestEventDisptcher)
|
|
|
|
if __name__ == '__main__':
|
|
unittest.TextTestRunner(verbosity=2).run(suite())
|
|
|
|
# vim: set ft=python et ts=8 sw=4 sts=4:
|