File: test_event.py

package info (click to toggle)
python-fluent-logger 0.11.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 216 kB
  • sloc: python: 1,804; makefile: 3
file content (58 lines) | stat: -rw-r--r-- 2,045 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import unittest

from fluent import event, sender
from tests import mockserver


class TestException(BaseException):
    __test__ = False  # teach pytest this is not test class.


class TestEvent(unittest.TestCase):
    def setUp(self):
        self._server = mockserver.MockRecvServer("localhost")
        sender.setup("app", port=self._server.port)

    def tearDown(self):
        from fluent.sender import _set_global_sender

        sender.close()
        _set_global_sender(None)

    def test_logging(self):
        # XXX: This tests succeeds even if the fluentd connection failed
        # send event with tag app.follow
        event.Event("follow", {"from": "userA", "to": "userB"})

    def test_logging_with_timestamp(self):
        # XXX: This tests succeeds even if the fluentd connection failed

        # send event with tag app.follow, with timestamp
        event.Event("follow", {"from": "userA", "to": "userB"}, time=0)

    def test_no_last_error_on_successful_event(self):
        global_sender = sender.get_global_sender()
        event.Event("unfollow", {"from": "userC", "to": "userD"})

        self.assertEqual(global_sender.last_error, None)
        sender.close()

    @unittest.skip(
        "This test failed with 'TypeError: catching classes that do not "
        "inherit from BaseException is not allowed' so skipped"
    )
    def test_connect_exception_during_event_send(self, mock_socket):
        # Make the socket.socket().connect() call raise a custom exception
        mock_connect = mock_socket.socket.return_value.connect
        EXCEPTION_MSG = "a event send socket connect() exception"
        mock_connect.side_effect = TestException(EXCEPTION_MSG)

        # Force the socket to reconnect while trying to emit the event
        global_sender = sender.get_global_sender()
        global_sender._close()

        event.Event("unfollow", {"from": "userE", "to": "userF"})

        ex = global_sender.last_error
        self.assertEqual(ex.args, EXCEPTION_MSG)
        global_sender.clear_last_error()