Пример #1
0
    def test_fallimento_autenticazione(self, mock_smtp):
        """
        In caso di fallimento autenticazione il messaggio viene rimesso in coda
        """
        self.assertEqual(Messaggio.in_coda().count(), 0)
        instance = mock_smtp.return_value
        instance.sendmail.side_effect = smtplib.SMTPAuthenticationError(code=530, msg='authentication error')

        self._invia_msg_singolo()
        self.assertEqual(Messaggio.in_coda().count(), 1)
Пример #2
0
    def test_fallimento_autenticazione(self, mock_smtp):
        """
        In caso di fallimento autenticazione il messaggio viene rimesso in coda
        """
        self.assertEqual(Messaggio.in_coda().count(), 0)
        instance = mock_smtp.return_value
        instance.sendmail.side_effect = smtplib.SMTPAuthenticationError(
            code=530, msg='authentication error')

        self._invia_msg_singolo()
        self.assertEqual(Messaggio.in_coda().count(), 1)
Пример #3
0
 def test_fallimento_sender(self, mock_smtp):
     """
     In caso di fallimento del sender il messaggio viene rimesso in coda,
     tranne che in caso di errore 501 che è permanente
     """
     codici = (451, 452, 500, 501, 421)
     for codice in codici:
         msg = 'code {}'.format(codice)
         instance = mock_smtp.return_value
         instance.sendmail.side_effect = smtplib.SMTPSenderRefused(code=codice, msg=msg, sender=Messaggio.SUPPORTO_EMAIL)
         self._invia_msg_singolo()
         if codice == 501:
             self.assertEqual(Messaggio.in_coda().count(), 0)
         else:
             self.assertEqual(Messaggio.in_coda().count(), 1)
         self._reset_coda()
Пример #4
0
 def test_fallimento_data(self, mock_smtp):
     """
     In caso di fallimento durante il comando data  il messaggio viene rimesso in coda,
     tranne che in caso di errore 501 che è permanente
     """
     codici = (451, 554, 500, 501, 503, 421, 552, 451, 452)
     for codice in codici:
         msg = 'code {}'.format(codice)
         instance = mock_smtp.return_value
         instance.sendmail.side_effect = smtplib.SMTPDataError(code=codice, msg=msg)
         self._invia_msg_singolo()
         if codice == 501:
             self.assertEqual(Messaggio.in_coda().count(), 0)
         else:
             self.assertEqual(Messaggio.in_coda().count(), 1)
         self._reset_coda()
Пример #5
0
 def test_messaggio_senza_destinatari(self, mock_smtp):
     messaggio = Messaggio.costruisci_e_accoda(
         destinatari=[],
         oggetto="Email contatto",
         modello="email.html",
     )
     messaggio.smaltisci_coda()
     self.assertEqual(Messaggio.in_coda().count(), 0)
Пример #6
0
 def test_fallimento_sender(self, mock_smtp):
     """
     In caso di fallimento del sender il messaggio viene rimesso in coda,
     tranne che in caso di errore 5XX che è permanente
     """
     codici = (451, 452, 500, 501, 421)
     for codice in codici:
         msg = 'code {}'.format(codice)
         instance = mock_smtp.return_value
         instance.sendmail.side_effect = smtplib.SMTPSenderRefused(
             code=codice, msg=msg, sender=Messaggio.SUPPORTO_EMAIL)
         self._invia_msg_singolo()
         if codice == 501:
             self.assertEqual(Messaggio.in_coda().count(), 0)
         else:
             self.assertEqual(Messaggio.in_coda().count(), 1)
         self._reset_coda()
Пример #7
0
 def test_fallimento_data(self, mock_smtp):
     """
     In caso di fallimento durante il comando data  il messaggio viene rimesso in coda,
     tranne che in caso di errore 5XX che è permanente
     """
     codici = (451, 554, 500, 501, 503, 421, 552, 451, 452)
     for codice in codici:
         msg = 'code {}'.format(codice)
         instance = mock_smtp.return_value
         instance.sendmail.side_effect = smtplib.SMTPDataError(code=codice,
                                                               msg=msg)
         self._invia_msg_singolo()
         if codice == 501:
             self.assertEqual(Messaggio.in_coda().count(), 0)
         else:
             self.assertEqual(Messaggio.in_coda().count(), 1)
         self._reset_coda()
Пример #8
0
 def test_messaggio_senza_destinatari(self, mock_smtp):
     messaggio = Messaggio.costruisci_e_accoda(
         destinatari=[],
         oggetto="Email contatto",
         modello="email.html",
     )
     messaggio._smaltisci_coda()
     self.assertEqual(Messaggio.in_coda().count(), 0)
Пример #9
0
 def test_fallimento_disconnect(self, mock_smtp):
     """
     In caso di disconessione del server il messaggio viene rimesso in coda
     """
     instance = mock_smtp.return_value
     instance.sendmail.side_effect = smtplib.SMTPServerDisconnected({})
     self._invia_msg_singolo()
     self.assertEqual(Messaggio.in_coda().count(), 1)
     self._reset_coda()
Пример #10
0
 def test_fallimento_disconnect(self, mock_smtp):
     """
     In caso di disconessione del server il messaggio viene rimesso in coda
     """
     instance = mock_smtp.return_value
     instance.sendmail.side_effect = smtplib.SMTPServerDisconnected({})
     self._invia_msg_singolo()
     self.assertEqual(Messaggio.in_coda().count(), 1)
     self._reset_coda()
Пример #11
0
 def test_messaggio_con_destinatario_vuoto(self, mock_smtp):
     persona, sede, appartenenza = crea_persona_sede_appartenenza()
     persona.save()
     messaggio = Messaggio.costruisci_e_accoda(
         destinatari=[persona],
         oggetto="Email contatto",
         modello="email.html",
     )
     messaggio.smaltisci_coda()
     self.assertEqual(Messaggio.in_coda().count(), 0)
Пример #12
0
 def test_messaggio_con_destinatario_vuoto(self, mock_smtp):
     persona, sede, appartenenza = crea_persona_sede_appartenenza()
     persona.save()
     messaggio = Messaggio.costruisci_e_accoda(
         destinatari=[persona],
         oggetto="Email contatto",
         modello="email.html",
     )
     messaggio._smaltisci_coda()
     self.assertEqual(Messaggio.in_coda().count(), 0)
Пример #13
0
 def test_fallimento_recipient(self, mock_smtp):
     """
     In caso di fallimento del recipient  il messaggio viene rimesso in coda se entrambi
     i recipient sono stati rifiutati, altrimenti viene considerato inviato
     """
     codici = (550, 551, 552, 553, 450, 451, 452, 500, 501, 503, 521, 421)
     for codice in codici:
         msg = 'code {}'.format(codice)
         instance = mock_smtp.return_value
         for x in range(2):
             recipients = {
                 self.persone[0].persona.email: (codice, msg) if x in (1, 2) else (250, 'ok'),
                 self.persone[0].email: (codice, msg) if x in (0, 2) else (250, 'ok'),
             }
             instance.sendmail.side_effect = smtplib.SMTPRecipientsRefused(recipients=recipients)
             self._invia_msg_singolo()
             if codice == 501 or x in (0, 1):
                 self.assertEqual(Messaggio.in_coda().count(), 0)
             else:
                 self.assertEqual(Messaggio.in_coda().count(), 1)
             self._reset_coda()
Пример #14
0
 def test_fallimento_connect(self, mock_smtp):
     """
     In caso di fallimento durante il connect il messaggio viene rimesso in coda
     """
     codici = (421,)
     for codice in codici:
         msg = 'code {}'.format(codice)
         instance = mock_smtp.return_value
         instance.sendmail.side_effect = smtplib.SMTPConnectError(code=codice, msg=msg)
         self._invia_msg_singolo()
         self.assertEqual(Messaggio.in_coda().count(), 1)
         self._reset_coda()
Пример #15
0
 def test_fallimento_connect(self, mock_smtp):
     """
     In caso di fallimento durante il connect il messaggio viene rimesso in coda
     """
     codici = (421, )
     for codice in codici:
         msg = 'code {}'.format(codice)
         instance = mock_smtp.return_value
         instance.sendmail.side_effect = smtplib.SMTPConnectError(
             code=codice, msg=msg)
         self._invia_msg_singolo()
         self.assertEqual(Messaggio.in_coda().count(), 1)
         self._reset_coda()
Пример #16
0
 def test_fallimento_recipient(self, mock_smtp):
     """
     In caso di fallimento del recipient  il messaggio viene rimesso in coda se entrambi
     i recipient sono stati rifiutati, altrimenti viene considerato inviato
     """
     codici = (550, 551, 552, 553, 450, 451, 452, 500, 501, 503, 521, 421)
     for codice in codici:
         msg = 'code {}'.format(codice)
         instance = mock_smtp.return_value
         for x in range(2):
             recipients = {
                 self.persone[0].persona.email:
                 (codice, msg) if x in (1, 2) else (250, 'ok'),
                 self.persone[0].email: (codice, msg) if x in (0, 2) else
                 (250, 'ok'),
             }
             instance.sendmail.side_effect = smtplib.SMTPRecipientsRefused(
                 recipients=recipients)
             self._invia_msg_singolo()
             if codice == 501 or x in (0, 1):
                 self.assertEqual(Messaggio.in_coda().count(), 0)
             else:
                 self.assertEqual(Messaggio.in_coda().count(), 1)
             self._reset_coda()