Completed
Push — main ( 963be5...3918f7 )
by Jochen
04:19
created

fake_channel_joins()   A

Complexity

Conditions 2

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 2
nop 1
1
"""
2
:Copyright: 2007-2020 Jochen Kupperschmidt
3
:License: MIT, see LICENSE for details.
4
"""
5
6
from weitersager.processor import Processor
7
from weitersager.signals import (
8
    channel_joined,
9
    message_approved,
10
    message_received,
11
)
12
13
14
def test_message_handled():
15
    channel_names = ['#foo', '#bar']
16
    text = 'Knock, knock.'
17
18
    received_signal_data = []
19
20
    @message_approved.connect
21
    def handle_message_approved(sender, **data):
22
        received_signal_data.append(data)
23
24
    processor = Processor()
25
    processor.connect_to_signals()
26
27
    fake_channel_joins(channel_names)
28
29
    send_message_received_signal(channel_names, text)
30
31
    assert received_signal_data == [
32
        {
33
            'channel_name': '#foo',
34
            'text': text,
35
        },
36
        {
37
            'channel_name': '#bar',
38
            'text': text,
39
        },
40
    ]
41
42
43
def fake_channel_joins(channel_names):
44
    for channel_name in channel_names:
45
        channel_joined.send(channel_name=channel_name)
46
47
48
def send_message_received_signal(channel_names, text):
49
    source_address = ('127.0.0.1', 12345)
50
    message_received.send(
51
        None,
52
        channel_names=channel_names,
53
        text=text,
54
        source_address=source_address,
55
    )
56