예제 #1
0
    def test_get_date_invalid_format(self):
        # Un missatge amb la data en format "Apple Mail"
        data = "Date: 9/23/2016 11:04:10 AM\n\n"
        apple_mail = MailTicket(StringIO(data))

        dt = apple_mail.get_date()
        self.assertEquals("11/09/2015 11:45", dt.strftime("%d/%m/%Y %H:%M"))
예제 #2
0
    def test_get_date_invalid_format(self):
        # Un missatge amb la data en format "Apple Mail"
        data = "Date: 9/23/2016 11:04:10 AM\n\n"
        apple_mail = MailTicket(StringIO(data))

        dt = apple_mail.get_date()
        self.assertEquals("11/09/2015 11:45", dt.strftime("%d/%m/%Y %H:%M"))
예제 #3
0
class TestMailTicket(unittest.TestCase):
    def setUp(self):
        settings.init()
        data = "From: [email protected]\n" \
               "Date: Tue, 28 Sep 2016 10:24:09 +0200 (CEST)\n\n"
        self.mail = MailTicket(string_to_mail(data))

    def test_mails_no_ticket_0001(self):
        self.mail.mails_no_ticket = ["*****@*****.**"]
        self.assertFalse(self.mail.cal_tractar())

    def test_mails_no_ticket_0002(self):
        self.mail.mails_no_ticket = ["*****@*****.**"]
        self.assertTrue(self.mail.cal_tractar())

    def test_mails_no_ticket_0003(self):
        self.mail.mails_no_ticket = [r'^.*@domain\.tld$']
        self.assertTrue(self.mail.cal_tractar())

    def test_mails_no_ticket_0004(self):
        self.mail.mails_no_ticket = [r'^.*@example\.com$']
        self.assertFalse(self.mail.cal_tractar())

    def test_get_date(self):
        d = self.mail.get_date()
        self.assertIsInstance(d, datetime.datetime)

    def test_get_body_buit(self):
        mail_buit = llegir_mail("mailbuit.txt")
        body = mail_buit.get_body()
        self.assertEqual("", body)

    def test_get_auto_submitted(self):
        mail_buit = llegir_mail("mailbuit.txt")
        mail_auto = llegir_mail("mailauto.txt")
        self.assertTrue(mail_auto.es_missatge_automatic())
        self.assertFalse(mail_buit.es_missatge_automatic())

    @freeze_time("2015-09-11 09:45", tz_offset=+2)
    def test_get_date_invalid_format(self):
        # Un missatge amb la data en format "Apple Mail"
        data = "Date: 9/23/2016 11:04:10 AM\n\n"
        apple_mail = MailTicket(string_to_mail(data))

        dt = apple_mail.get_date()
        self.assertEqual("11/09/2015 11:45", dt.strftime("%d/%m/%Y %H:%M"))

    def test_encoding_xungo(self):
        mail = llegir_mail("encoding-xungo.txt")
        body = mail.get_body()
        self.assertNotEqual("", body)

    def test_quoted_printable(self):
        mail = llegir_mail("comentaris.txt")
        body = mail.get_body()
        self.assertTrue("títol" in body)
예제 #4
0
class TestMailTicket(unittest.TestCase):

    def setUp(self):
        settings.init()
        data = "From: [email protected]\n" \
               "Date: Tue, 28 Sep 2016 10:24:09 +0200 (CEST)\n\n"
        self.mail = MailTicket(StringIO(data))

    def test_mails_no_ticket_0001(self):
        self.mail.mails_no_ticket = ["*****@*****.**"]
        self.assertFalse(self.mail.cal_tractar())

    def test_mails_no_ticket_0002(self):
        self.mail.mails_no_ticket = ["*****@*****.**"]
        self.assertTrue(self.mail.cal_tractar())

    def test_mails_no_ticket_0003(self):
        self.mail.mails_no_ticket = [r'^.*@domain\.tld$']
        self.assertTrue(self.mail.cal_tractar())

    def test_mails_no_ticket_0004(self):
        self.mail.mails_no_ticket = [r'^.*@example\.com$']
        self.assertFalse(self.mail.cal_tractar())

    def test_get_date(self):
        d = self.mail.get_date()
        self.assertIsInstance(d, datetime.datetime)

    def test_get_body_buit(self):
        mail_buit = llegir_mail("mailbuit.txt")
        body = mail_buit.get_body()
        self.assertEquals("", body)

    def test_get_auto_submitted(self):
        mail_buit = llegir_mail("mailbuit.txt")
        mail_auto = llegir_mail("mailauto.txt")
        self.assertTrue(mail_auto.es_missatge_automatic())
        self.assertFalse(mail_buit.es_missatge_automatic())

    @freeze_time("2015-09-11 09:45", tz_offset=+2)
    def test_get_date_invalid_format(self):
        # Un missatge amb la data en format "Apple Mail"
        data = "Date: 9/23/2016 11:04:10 AM\n\n"
        apple_mail = MailTicket(StringIO(data))

        dt = apple_mail.get_date()
        self.assertEquals("11/09/2015 11:45", dt.strftime("%d/%m/%Y %H:%M"))

    def test_encoding_xungo(self):
        mail = llegir_mail("encoding-xungo.txt")
        body = mail.get_body()
        self.assertNotEquals("", body)
예제 #5
0
 def setUp(self):
     settings.init()
     data = "From: [email protected]\n" \
            "Date: Tue, 28 Sep 2016 10:24:09 +0200 (CEST)\n\n"
     self.mail = MailTicket(StringIO(data))
예제 #6
0
 def setUp(self):
     settings.init()
     data = "From: [email protected]\n" \
            "Date: Tue, 28 Sep 2016 10:24:09 +0200 (CEST)\n\n"
     self.mail = MailTicket(StringIO(data))
예제 #7
0
def llegir_mail(msgfile):
    fp = open(os.path.dirname(__file__) + "/mails/" + msgfile)
    mail_ticket = MailTicket(fp)
    fp.close()
    return mail_ticket
예제 #8
0
                        level=settings.get("log_level"),
                        format='%(asctime)s [%(process)d] %(name)-12s'
                        ' %(levelname)-8s %(message)s')

    buffer_logs = StringIO()
    logger.addHandler(logging.StreamHandler(buffer_logs))

    if a is not None:
        logger.info("Fitxer de configuracio [%s]", a)

    estat = UNKNOWN
    tractat = False
    try:
        logger.info("-----------------------------------------------------")
        logger.info("Llegeixo mail")
        mail = MailTicket(sys.stdin.buffer)
        logger.info("Mail de %s llegit amb ID %s" %
                    (mail.get_from(), mail.get_header('message-id')))
        if mail.cal_tractar():
            if filtres.aplicar_filtres(mail):
                tractat = True
                estat = SUCCESS
                logger.info("Marco el mail com a tractat")
            else:
                estat = REJECT
                logger.info("Rebutjo el mail per no passar els filtres")

        else:
            estat = SKIP
            logger.info("No cal tractar el mail %s" % mail.get_subject_ascii())
    except Exception as e:
예제 #9
0
        format='%(asctime)s [%(process)d] %(name)-12s'
        ' %(levelname)-8s %(message)s'
    )

    buffer_logs = StringIO()
    logger.addHandler(logging.StreamHandler(buffer_logs))

    if a is not None:
        logger.info("Fitxer de configuracio [%s]", a)

    estat = UNKNOWN
    tractat = False
    try:
        logger.info("-----------------------------------------------------")
        logger.info("Llegeixo mail")
        mail = MailTicket(sys.stdin)
        logger.info("Mail de %s llegit amb ID %s"
                    % (mail.get_from(), mail.get_header('message-id')))
        if mail.cal_tractar():
            if filtres.aplicar_filtres(mail):
                tractat = True
                estat = SUCCESS
                logger.info("Marco el mail com a tractat")
            else:
                estat = REJECT
                logger.info("Rebutjo el mail per no passar els filtres")

        else:
            estat = SKIP
            logger.info("No cal tractar el mail %s" % mail.get_subject_ascii())
    except Exception as e: