test_signals.py
2.46 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
79
80
81
82
83
84
"""
Test Signals class.
Objective: Test parameters, and behavior.
"""
from django.test import TestCase
from django.apps import apps
import django
from colab.signals.signals import *
from mock import patch, MagicMock, PropertyMock
class SignalsTest(TestCase):
def setUp(self):
django.setup()
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(Exception, 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.delay)
args, kwargs = mock.call_args
self.assertEqual(args[0], handling_method)
self.assertEqual(kwargs['sender'], sender)
self.assertTrue(mock.is_called)
@patch('colab.signals.signals.Signal.send')
def test_send_signal(self, mock):
sender = 'Test'
handling_method = '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(Exception, send, 'test_signal', 'test')