Passed
Push — main ( 4dacf5...aae69a )
by Jochen
02:11
created

tests.test_syslog_udp_handler   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 26
dl 0
loc 46
rs 10
c 0
b 0
f 0
wmc 1

1 Function

Rating   Name   Duplication   Size   Complexity  
A test_udp_handler() 0 28 1
1
"""
2
:Copyright: 2007-2021 Jochen Kupperschmidt
3
:License: MIT, see LICENSE for details.
4
"""
5
6
from datetime import datetime
7
8
from syslogmp import Facility, Message, Severity
9
10
from syslog2irc.network import Port, TransportProtocol
11
from syslog2irc.signals import syslog_message_received
12
from syslog2irc.syslog import UDPHandler
13
14
15
CURRENT_YEAR = datetime.today().year
16
17
18
def test_udp_handler():
19
    expected_message = Message(
20
        Facility.kernel,
21
        Severity.emergency,
22
        datetime(CURRENT_YEAR, 10, 22, 10, 52, 12),
23
        'scapegoat',
24
        b'1990 Oct 22 10:52:01 TZ-6 scapegoat.dmz.example.org 10.1.2.3 sched[0]: That\'s All Folks!',
25
    )
26
27
    # Example 5 from RFC 3164.
28
    data = b'<0>Oct 22 10:52:12 scapegoat 1990 Oct 22 10:52:01 TZ-6 scapegoat.dmz.example.org 10.1.2.3 sched[0]: That\'s All Folks!'
29
30
    port = Port(514, TransportProtocol.UDP)
31
    client_address = ('127.0.0.1', port.number)
32
    request = [data]
33
34
    received_signal_data = []
35
36
    @syslog_message_received.connect
37
    def handle_syslog_message_received(sender, **data):
38
        received_signal_data.append(data)
39
40
    UDPHandler(port, request, client_address, server=None)
41
42
    assert received_signal_data == [
43
        {
44
            'message': expected_message,
45
            'source_address': client_address,
46
        }
47
    ]
48