| author | Sandro Knauß <knauss@netzguerilla.net> |
| Tue, 14 Feb 2012 21:27:51 +0100 | |
| branch | devel |
| changeset 164 | b634a8fed51f |
| child 169 | aabc04843d25 |
| permissions | -rw-r--r-- |
|
164
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
1 |
from twisted.trial import unittest |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
2 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
3 |
import email |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
4 |
from email.header import decode_header |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
5 |
import base64 |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
6 |
from smtp_helper import TestSMTPServer |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
7 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
8 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
9 |
from iro.model.message import Mail |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
10 |
from iro.offer.smtp import SMTP |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
11 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
12 |
HOST = "localhost" |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
13 |
PORT = 9999 |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
14 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
15 |
class TestSMTPProvider(unittest.TestCase): |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
16 |
def setUp(self): |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
17 |
self.smtp_server = TestSMTPServer((HOST, PORT)) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
18 |
self.smtp_server.start() |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
19 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
20 |
def tearDown(self): |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
21 |
self.smtp_server.close() |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
22 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
23 |
def testSendMail(self): |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
24 |
c=[("send_from","send@t.de"), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
25 |
("host",HOST), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
26 |
("port",PORT), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
27 |
("user",""), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
28 |
("password",""), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
29 |
] |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
30 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
31 |
p=SMTP("test",c) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
32 |
content = "sadfadfgwertsdgsdf\n\nsdfgaerasdfsad\nadfasdf" |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
33 |
status = p.send(Mail("sub", content, None), "t@t.de") |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
34 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
35 |
self.assertEqual(status.status, status.GOOD) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
36 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
37 |
self.assertEqual(len(self.smtp_server.rcvd), 1) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
38 |
fromaddr, toaddrs, message = self.smtp_server.rcvd[0] |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
39 |
msg = email.message_from_string(message) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
40 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
41 |
self.assertEqual(fromaddr,"send@t.de") |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
42 |
self.assertEqual(msg.get_all("From"),["send@t.de"]) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
43 |
self.assertEqual(toaddrs,["t@t.de"]) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
44 |
self.assertEqual(msg.get_all("To"),["t@t.de"]) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
45 |
self.assertEqual(decode_header(msg.get("Subject")),[("sub","utf-8")]) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
46 |
self.assertEqual(base64.b64decode(msg.get_payload()),content) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
47 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
48 |
def testSendMailExtraFrm(self): |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
49 |
c=[("send_from","send@t.de"), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
50 |
("host",HOST), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
51 |
("port",PORT), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
52 |
("user",""), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
53 |
("password",""), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
54 |
] |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
55 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
56 |
p=SMTP("test",c) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
57 |
content = "" |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
58 |
status = p.send(Mail("sub", content, "f@t.de"), "t@t.de") |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
59 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
60 |
self.assertEqual(status.status, status.GOOD) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
61 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
62 |
self.assertEqual(len(self.smtp_server.rcvd), 1) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
63 |
fromaddr, toaddrs, message = self.smtp_server.rcvd[0] |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
64 |
msg = email.message_from_string(message) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
65 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
66 |
self.assertEqual(fromaddr,"f@t.de") |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
67 |
self.assertEqual(msg.get_all("From"),["f@t.de"]) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
68 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
69 |
def testSendMailException(self): |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
70 |
c=[("send_from","send@t.de"), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
71 |
("host",HOST), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
72 |
("port",PORT-1), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
73 |
("user",""), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
74 |
("password",""), |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
75 |
] |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
76 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
77 |
p=SMTP("test",c) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
78 |
content = "" |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
79 |
status = p.send(Mail("sub", content, "f@t.de"), "t@t.de") |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
80 |
self.assertEqual(status.status, status.ERROR) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
81 |
self.assertIsInstance(status.error,IOError) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
82 |
self.assertEqual(status.error.errno,111) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
83 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
84 |
self.assertEqual(len(self.smtp_server.rcvd), 0) |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
85 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
86 |
def testNeededOption(self): |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
87 |
pass |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
88 |
testNeededOption.todo = "test NeededOption is not implemented" |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
89 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
90 |
def testUnknownOption(self): |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
91 |
pass |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
92 |
testUnknownOption.todo = "test UnknownOption is not implemented" |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
93 |
|
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
94 |
def testSendFunc(self): |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
95 |
pass |
|
b634a8fed51f
adding tests for smtp backend
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
96 |
testSendFunc.todo = "test getSendFunc is not implemented" |