Exemple #1
0
 def setup_db(self):
     JCLRunner.setup_db(self)
     MailAccount.createTable(ifNotExists=True)
     IMAPAccount.createTable(ifNotExists=True)
     POP3Account.createTable(ifNotExists=True)
     AbstractSMTPAccount.createTable(ifNotExists=True)
     GlobalSMTPAccount.createTable(ifNotExists=True)
     SMTPAccount.createTable(ifNotExists=True)
Exemple #2
0
 def test__run(self):
     self.runner.pid_file = "/tmp/jmc.pid"
     self.runner.db_url = self.db_url
     def do_nothing():
         return (False, 0)
     self.runner._run(do_nothing)
     model.db_connection_str = self.runner.db_url
     model.db_connect()
     # dropTable should succeed because tables should exist
     Account.dropTable()
     PresenceAccount.dropTable()
     User.dropTable()
     LegacyJID.dropTable()
     MailAccount.dropTable()
     IMAPAccount.dropTable()
     POP3Account.dropTable()
     SMTPAccount.dropTable()
     model.db_disconnect()
     self.assertFalse(os.access("/tmp/jmc.pid", os.F_OK))
Exemple #3
0
 def setUp(self):
     PresenceAccount_TestCase.setUp(self, tables=[MailAccount])
     self.account = MailAccount(user=User(jid="*****@*****.**"), name="account1", jid="*****@*****.**")
     self.account_class = MailAccount
Exemple #4
0
class MailAccount_TestCase(PresenceAccount_TestCase):
    def setUp(self):
        PresenceAccount_TestCase.setUp(self, tables=[MailAccount])
        self.account = MailAccount(user=User(jid="*****@*****.**"), name="account1", jid="*****@*****.**")
        self.account_class = MailAccount

    def make_test(email_type, tested_func, expected_res):
        def inner(self):
            encoded, multipart, header = email_type
            email = email_generator.generate(encoded, multipart, header)
            part = tested_func(self, email)
            self.assertEquals(part, expected_res)

        return inner

    test_get_decoded_part_not_encoded = make_test(
        (False, False, False),
        lambda self, email: self.account.get_decoded_part(email, None),
        u"Not encoded single part",
    )

    test_get_decoded_part_encoded = make_test(
        (True, False, False),
        lambda self, email: self.account.get_decoded_part(email, None),
        u"Encoded single part with 'iso-8859-15' charset (éàê)",
    )

    test_format_message_summary_not_encoded = make_test(
        (False, False, True),
        lambda self, email: self.account.format_message_summary(email),
        (u"From : not encoded from\nSubject : not encoded subject\n\n", u"not encoded from"),
    )

    test_format_message_summary_encoded = make_test(
        (True, False, True),
        lambda self, email: self.account.format_message_summary(email),
        (u"From : encoded from (éàê)\nSubject : encoded subject " + u"(éàê)\n\n", u"encoded from (éàê)"),
    )

    test_format_message_summary_partial_encoded = make_test(
        (True, False, True),
        lambda self, email: email.replace_header("Subject", '" ' + str(email["Subject"]) + ' " not encoded part')
        or email.replace_header("From", '" ' + str(email["From"]) + ' " not encoded part')
        or self.account.format_message_summary(email),
        (
            u'From : "encoded from (éàê)" not encoded part\nSubject '
            + u': "encoded subject (éàê)" not encoded part\n\n',
            u'"encoded from (éàê)" not encoded part',
        ),
    )

    test_format_message_single_not_encoded = make_test(
        (False, False, True),
        lambda self, email: self.account.format_message(email),
        (
            u"From : not encoded from\nSubject : not encoded subject" + u"\n\nNot encoded single part\n",
            u"not encoded from",
        ),
    )

    test_format_message_single_encoded = make_test(
        (True, False, True),
        lambda self, email: self.account.format_message(email),
        (
            u"From : encoded from (éàê)\nSubject : encoded subject "
            + u"(éàê)\n\nEncoded single part with 'iso-8859-15' charset"
            + u" (éàê)\n",
            u"encoded from (éàê)",
        ),
    )

    test_format_message_multi_not_encoded = make_test(
        (False, True, True),
        lambda self, email: self.account.format_message(email),
        (
            u"From : not encoded from\nSubject : not encoded subject"
            + u"\n\nNot encoded multipart1\nNot encoded multipart2\n",
            u"not encoded from",
        ),
    )

    test_format_message_multi_encoded = make_test(
        (True, True, True),
        lambda self, email: self.account.format_message(email),
        (
            u"From : encoded from (éàê)\nSubject : encoded subject (éà"
            + u"ê)\n\nutf-8 multipart1 with no charset (éàê)"
            + u"\nEncoded multipart2 with 'iso-8859-15' charset (éàê)\n"
            + u"Encoded multipart3 with no charset (éàê)\n",
            u"encoded from (éàê)",
        ),
    )

    def test_get_default_status_msg(self):
        """
        Get default status message for MailAccount.
        Should raise NotImplementedError because get_type() method
        is not implemented
        """
        try:
            self.account.get_default_status_msg(Lang.en)
        except NotImplementedError:
            return
        fail("No NotImplementedError raised")