forked from stefanfoulis/django-sendsms
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.py
104 lines (81 loc) · 3.17 KB
/
test.py
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# -*- coding: utf-8 -*-
try:
from unittest import mock
except:
import mock
try:
from importlib import reload
except:
pass
import unittest
from django.conf import settings
from django.test import SimpleTestCase
import sendsms
if not settings.configured:
settings.configure(
SENDSMS_BACKEND='sendsms.backends.locmem.SmsBackend',
ESENDEX_USERNAME='niwibe',
ESENDEX_PASSWORD='123123',
ESENDEX_ACCOUNT='123123',
ESENDEX_SANDBOX=True,
RQ_QUEUES={
'default': {
'URL': 'redis://localhost',
'DEFAULT_TIMEOUT': 500,
}
}
)
class TestApi(unittest.TestCase):
def test_send_simple_sms(self):
from sendsms.message import SmsMessage
obj = SmsMessage(body="test", from_phone='111111111', to=['222222222'])
obj.send()
self.assertEqual(len(sendsms.outbox), 1)
def test_send_esendex_sandbox(self):
from sendsms.message import SmsMessage
from sendsms.api import get_connection
connection = get_connection('sendsms.backends.esendex.SmsBackend')
obj = SmsMessage(body="test", from_phone='111111111', to=['222222222'],
connection=connection)
res = obj.send()
self.assertEqual(res, 1)
class RQBackendTest(SimpleTestCase):
@mock.patch('sendsms.backends.rq.send_messages')
def test_should_queue_sms(self, send_messages_mock):
from sendsms.message import SmsMessage
with self.settings(SENDSMS_BACKEND='sendsms.backends.rq.SmsBackend'):
message = SmsMessage(
body='Hello!',
from_phone='29290',
to=['+639123456789']
)
message.send()
send_messages_mock.delay.assert_called_with([message])
@mock.patch('sendsms.backends.twiliorest.SmsBackend')
@mock.patch('sendsms.backends.locmem.SmsBackend')
def test_send_message_should_use_configured_backend(self, LocmemBackend,
TwilioBackend):
from sendsms.message import SmsMessage
with self.settings(SENDSMS_BACKEND='sendsms.backends.rq.SmsBackend'):
with self.settings(RQ_SENDSMS_BACKEND='sendsms.backends.twiliorest.SmsBackend'): # noqa
from sendsms.backends import rq
backend = TwilioBackend()
message = SmsMessage(
body='Hello!',
from_phone='29290',
to=['+639123456789']
)
rq.send_messages([message])
backend.send_messages.assert_called_once_with([message])
with self.settings(RQ_SENDSMS_BACKEND='sendsms.backends.locmem.SmsBackend'): # noqa
reload(rq)
backend = LocmemBackend()
message = SmsMessage(
body='Hello!',
from_phone='29290',
to=['+639123456789']
)
rq.send_messages([message])
backend.send_messages.assert_called_once_with([message])
if __name__ == '__main__':
unittest.main(verbosity=2)