tests/smtp.py
branchdevel
changeset 174 762981cada07
parent 169 aabc04843d25
child 183 07ee5543751b
equal deleted inserted replaced
173:912ef3e070b0 174:762981cada07
    37         return SMTP("test",ret.items())
    37         return SMTP("test",ret.items())
    38 
    38 
    39     def testSendMail(self):
    39     def testSendMail(self):
    40         p=self.getSMTP()
    40         p=self.getSMTP()
    41         content = "sadfadfgwertsdgsdf\n\nsdfgaerasdfsad\nadfasdf"
    41         content = "sadfadfgwertsdgsdf\n\nsdfgaerasdfsad\nadfasdf"
    42         status = p.send(Mail("sub", content, None), "t@t.de")
    42         p.send(Mail("sub", content, None), "t@t.de")
    43 
    43 
    44         self.assertEqual(status.status, status.GOOD)
       
    45 
    44 
    46         self.assertEqual(len(self.smtp_server.rcvd), 1)
    45         self.assertEqual(len(self.smtp_server.rcvd), 1)
    47         fromaddr, toaddrs, message = self.smtp_server.rcvd[0]
    46         fromaddr, toaddrs, message = self.smtp_server.rcvd[0]
    48         msg = email.message_from_string(message)
    47         msg = email.message_from_string(message)
    49         
    48         
    55         self.assertEqual(base64.b64decode(msg.get_payload()),content)
    54         self.assertEqual(base64.b64decode(msg.get_payload()),content)
    56 
    55 
    57     def testSendMailExtraFrm(self):
    56     def testSendMailExtraFrm(self):
    58         p=self.getSMTP()
    57         p=self.getSMTP()
    59         content = ""
    58         content = ""
    60         status = p.send(Mail("sub", content, "f@t.de"), "t@t.de")
    59         p.send(Mail("sub", content, "f@t.de"), "t@t.de")
    61 
       
    62         self.assertEqual(status.status, status.GOOD)
       
    63 
    60 
    64         self.assertEqual(len(self.smtp_server.rcvd), 1)
    61         self.assertEqual(len(self.smtp_server.rcvd), 1)
    65         fromaddr, toaddrs, message = self.smtp_server.rcvd[0]
    62         fromaddr, toaddrs, message = self.smtp_server.rcvd[0]
    66         msg = email.message_from_string(message)
    63         msg = email.message_from_string(message)
    67         
    64         
    81             return smtplib.SMTP(*args)
    78             return smtplib.SMTP(*args)
    82         mock_ssl.side_effect=se
    79         mock_ssl.side_effect=se
    83 
    80 
    84         p=self.getSMTP({"SSL":True})
    81         p=self.getSMTP({"SSL":True})
    85         content = "sadfadfgwertsdgsdf\n\nsdfgaerasdfsad\nadfasdf"
    82         content = "sadfadfgwertsdgsdf\n\nsdfgaerasdfsad\nadfasdf"
    86         status = p.send(Mail("sub", content, None), "t@t.de")
    83         p.send(Mail("sub", content, None), "t@t.de")
    87 
    84 
    88         self.assertEqual(mock_ssl.call_count,1)
    85         self.assertEqual(mock_ssl.call_count,1)
    89         self.assertEqual(status.status, status.GOOD)
       
    90 
    86 
    91         self.assertEqual(len(self.smtp_server.rcvd), 1)
    87         self.assertEqual(len(self.smtp_server.rcvd), 1)
    92 
    88 
    93     @patch("smtplib.SMTP")
    89     @patch("smtplib.SMTP")
    94     def testTLSSendMail(self,mock_smtp):
    90     def testTLSSendMail(self,mock_smtp):
    95         mock_s = Mock()
    91         mock_s = Mock()
    96         mock_smtp.return_value = mock_s
    92         mock_smtp.return_value = mock_s
    97 
    93 
    98         p=self.getSMTP({"TLS":True})
    94         p=self.getSMTP({"TLS":True})
    99         content = "sadfadfgwertsdgsdf\n\nsdfgaerasdfsad\nadfasdf"
    95         content = "sadfadfgwertsdgsdf\n\nsdfgaerasdfsad\nadfasdf"
   100         status = p.send(Mail("sub", content, None), "t@t.de")
    96         p.send(Mail("sub", content, None), "t@t.de")
   101         
    97         
   102         mock_s.starttls.assert_called_once_with()
    98         mock_s.starttls.assert_called_once_with()
   103         self.assertEqual(mock_s.sendmail.call_count,1)
    99         self.assertEqual(mock_s.sendmail.call_count,1)
   104         self.assertEqual([i[0] for i in mock_s.method_calls],["starttls","sendmail","quit"])
   100         self.assertEqual([i[0] for i in mock_s.method_calls],["starttls","sendmail","quit"])
   105         self.assertEqual(status.status, status.GOOD)
       
   106 
   101 
   107     @patch("smtplib.SMTP")
   102     @patch("smtplib.SMTP")
   108     def testLoginSendMail(self,mock_smtp):
   103     def testLoginSendMail(self,mock_smtp):
   109         mock_s = Mock()
   104         mock_s = Mock()
   110         mock_smtp.return_value = mock_s
   105         mock_smtp.return_value = mock_s
   111 
   106 
   112         p=self.getSMTP({"user":"user","password":"pw"})
   107         p=self.getSMTP({"user":"user","password":"pw"})
   113         content = "sadfadfgwertsdgsdf\n\nsdfgaerasdfsad\nadfasdf"
   108         content = "sadfadfgwertsdgsdf\n\nsdfgaerasdfsad\nadfasdf"
   114         status = p.send(Mail("sub", content, None), "t@t.de")
   109         p.send(Mail("sub", content, None), "t@t.de")
   115         
   110         
   116         mock_s.login.assert_called_once_with("user","pw")
   111         mock_s.login.assert_called_once_with("user","pw")
   117         self.assertEqual(mock_s.sendmail.call_count,1)
   112         self.assertEqual(mock_s.sendmail.call_count,1)
   118         self.assertEqual([i[0] for i in mock_s.method_calls],["login","sendmail","quit"])
   113         self.assertEqual([i[0] for i in mock_s.method_calls],["login","sendmail","quit"])
   119         self.assertEqual(status.status, status.GOOD)
       
   120 
   114 
   121     
   115     
   122     def testNeededOption(self):
   116     def testNeededOption(self):
   123         c={"send_from":"send@t.de",
   117         c={"send_from":"send@t.de",
   124             "host":HOST,
   118             "host":HOST,