test_signals.py
2.45 KB
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
"""
Test Signals class.
Objective: Test parameters, and behavior.
"""
import django
from django.test import TestCase
from mock import patch, MagicMock, PropertyMock
from ..signals import registered_signals, register_signal, connect_signal, send
from ..exceptions import SignalDoesNotExist
class SignalsTest(TestCase):
def setUp(self):
self.list_signal = ['a', 'b', 'c']
self.plugin_name = 'test_signal'
def test_register_signal_(self):
register_signal(self.plugin_name, self.list_signal)
signal_name = 'a'
signal_list = ['test_signal']
self.assertEqual(len(registered_signals[signal_name]), 1)
self.assertEqual(registered_signals[signal_name], signal_list)
def test_register_signal_already_registered(self):
signal_name = 'a'
signal_list = ['test_signal']
register_signal(self.plugin_name, self.list_signal)
self.assertEqual(len(registered_signals[signal_name]), 1)
register_signal(self.plugin_name, self.list_signal)
self.assertEqual(len(registered_signals[signal_name]), 1)
self.assertEqual(registered_signals[signal_name], signal_list)
def test_connect_non_registered_signal(self):
sender = 'Test'
handling_method = 'Test'
signal_name = 'Test'
self.assertRaises(SignalDoesNotExist, connect_signal, signal_name,
sender, handling_method)
@patch('colab.signals.signals.Signal.connect')
def test_connect_already_registered_signal(self, mock):
sender = 'Test'
handling_method = MagicMock()
type(handling_method).delay = PropertyMock(return_value='Test')
signal_name = 'a'
register_signal(self.plugin_name, self.list_signal)
connect_signal(signal_name, sender, handling_method)
args, kwargs = mock.call_args
self.assertEqual(args[0], handling_method.delay)
self.assertEqual(kwargs['sender'], sender)
self.assertTrue(mock.is_called)
@patch('colab.signals.signals.Signal.send')
def test_send_signal(self, mock):
sender = 'Test'
signal_name = 'a'
register_signal(self.plugin_name, self.list_signal)
send(signal_name, sender)
args, kwargs = mock.call_args
self.assertEqual(kwargs['sender'], sender)
self.assertTrue(mock.is_called)
def test_send_signal_not_registered(self):
self.assertRaises(SignalDoesNotExist, send, 'test_signal', 'test')