Esempio n. 1
0
    def test_listener_receives_both_user_and_event_args(self):
        listener_mock = mock.Mock()
        emitter = utils.EventEmitter()

        emitter.on('some_event', listener_mock, 1, 2, 3)
        emitter.emit('some_event', 'abc')

        listener_mock.assert_called_with('abc', 1, 2, 3)
Esempio n. 2
0
    def test_call_calls_and_returns_result_of_a_single_listener(self):
        listener_mock = mock.Mock()
        emitter = utils.EventEmitter()

        emitter.on('some_event', listener_mock, 1, 2, 3)
        result = emitter.call('some_event', 'abc')

        listener_mock.assert_called_with('abc', 1, 2, 3)
        self.assertEqual(result, listener_mock.return_value)
Esempio n. 3
0
    def test_call_fails_if_multiple_listeners_for_event(self):
        listener_mock1 = mock.Mock()
        listener_mock2 = mock.Mock()
        emitter = utils.EventEmitter()

        emitter.on('some_event', listener_mock1)
        emitter.on('some_event', listener_mock2)

        with self.assertRaises(AssertionError):
            emitter.call('some_event')
Esempio n. 4
0
    def test_multiple_listeners_for_same_event(self):
        listener_mock1 = mock.Mock()
        listener_mock2 = mock.Mock()
        emitter = utils.EventEmitter()

        emitter.on('some_event', listener_mock1, 1, 2, 3)
        emitter.on('some_event', listener_mock2, 4, 5)
        emitter.emit('some_event', 'abc')

        listener_mock1.assert_called_with('abc', 1, 2, 3)
        listener_mock2.assert_called_with('abc', 4, 5)
Esempio n. 5
0
    def test_listener_returning_false_is_removed(self):
        listener_mock1 = mock.Mock(return_value=False)
        listener_mock2 = mock.Mock()
        emitter = utils.EventEmitter()

        emitter.on('some_event', listener_mock1)
        emitter.on('some_event', listener_mock2)
        emitter.emit('some_event')
        emitter.emit('some_event')

        self.assertEqual(listener_mock1.call_count, 1)
        self.assertEqual(listener_mock2.call_count, 2)
Esempio n. 6
0
    def test_removing_all_listeners_for_an_event(self):
        listener_mock1 = mock.Mock()
        listener_mock2 = mock.Mock()
        emitter = utils.EventEmitter()

        emitter.on('some_event', listener_mock1)
        emitter.on('some_event', listener_mock2)
        emitter.off('some_event')
        emitter.emit('some_event')

        self.assertEqual(listener_mock1.call_count, 0)
        self.assertEqual(listener_mock2.call_count, 0)
Esempio n. 7
0
    def test_num_listeners_returns_total_number_of_listeners(self):
        listener_mock1 = mock.Mock()
        listener_mock2 = mock.Mock()
        emitter = utils.EventEmitter()

        self.assertEqual(emitter.num_listeners(), 0)

        emitter.on('some_event', listener_mock1)
        self.assertEqual(emitter.num_listeners(), 1)

        emitter.on('another_event', listener_mock1)
        emitter.on('another_event', listener_mock2)
        self.assertEqual(emitter.num_listeners(), 3)
Esempio n. 8
0
    def test_removing_a_listener(self):
        listener_mock1 = mock.Mock()
        listener_mock2 = mock.Mock()
        emitter = utils.EventEmitter()

        emitter.on('some_event', listener_mock1, 123)
        emitter.on('some_event', listener_mock1, 456)
        emitter.on('some_event', listener_mock2, 78)
        emitter.off('some_event', listener_mock1)
        emitter.emit('some_event')

        self.assertEqual(listener_mock1.call_count, 0)
        listener_mock2.assert_called_with(78)
Esempio n. 9
0
    def test_call_fails_if_zero_listeners_for_event(self):
        emitter = utils.EventEmitter()

        with self.assertRaises(AssertionError):
            emitter.call('some_event')