コード例 #1
0
    def test_01_olistartup(self):
        """Tests if OLI can be invoked without exceptions

        It syncs all "OLItest* (specified in the default config) to our
        local Maildir at keeps it there."""
        code, res = OLITestLib.run_OLI()
        self.assertEqual(res, "")

        boxes, mails = OLITestLib.count_maildir_mails('')
        logging.warn("%d boxes and %d mails" % (boxes, mails))
コード例 #2
0
    def test_01_olistartup(self):
        """Tests if OLI can be invoked without exceptions

        Cleans existing remote test folders. Then syncs all "OLItest*
        (specified in the default config) to our local Maildir. The
        result should be 0 folders and 0 mails."""
        code, res = OLITestLib.run_OLI()
        self.assertEqual(res, "")
        boxes, mails = OLITestLib.count_maildir_mails('')
        self.assertTrue((boxes, mails)==(0,0), msg="Expected 0 folders and 0 "
            "mails, but sync led to {0} folders and {1} mails".format(
                boxes, mails))
コード例 #3
0
ファイル: setup.py プロジェクト: tonywang124/offlineimap
 def run(self):
     logging.basicConfig(format='%(message)s')
     # set credentials and OfflineImap command to be executed:
     OLITestLib(cred_file='./test/credentials.conf', cmd='./offlineimap.py')
     suite = TestLoader().discover('./test/tests')
     #TODO: failfast does not seem to exist in python2.6?
     TextTestRunner(verbosity=2, failfast=True).run(suite)
コード例 #4
0
 def test_02_createdir(self):
     """Create local 'OLItest 1', sync"""
     OLITestLib.delete_maildir('') #Delete all local maildir folders
     OLITestLib.create_maildir('INBOX.OLItest 1')
     code, res = OLITestLib.run_OLI()
     self.assertEqual(res, "")
     boxes, mails = OLITestLib.count_maildir_mails('')
     self.assertTrue((boxes, mails)==(1,0), msg="Expected 1 folders and 0 "
         "mails, but sync led to {0} folders and {1} mails".format(
             boxes, mails))
コード例 #5
0
    def test_02_createdir(self):
        """Create local OLItest 1 & OLItest "1" maildir, sync

        Folder names with quotes used to fail and have been fixed, so
        one is included here as a small challenge."""
        OLITestLib.create_maildir('INBOX.OLItest 1')
        OLITestLib.create_maildir('INBOX.OLItest "1"')
        code, res = OLITestLib.run_OLI()
        #logging.warn("%s %s "% (code, res))
        self.assertEqual(res, "")
        boxes, mails = OLITestLib.count_maildir_mails('')
        logging.warn("%d boxes and %d mails" % (boxes, mails))
コード例 #6
0
    def test_02_createdir(self):
        """Create local OLItest 1 & OLItest "1" maildir, sync

        Folder names with quotes used to fail and have been fixed, so
        one is included here as a small challenge."""
        OLITestLib.create_maildir('INBOX.OLItest 1')
        OLITestLib.create_maildir('INBOX.OLItest "1"')
        code, res = OLITestLib.run_OLI()
        #logging.warn("%s %s "% (code, res))
        self.assertEqual(res, "")
        boxes, mails = OLITestLib.count_maildir_mails('')
        self.assertTrue((boxes, mails)==(2,0), msg="Expected 2 folders and 0 "
            "mails, but sync led to {0} folders and {1} mails".format(
                boxes, mails))
コード例 #7
0
    def test_03_createdir_quote(self):
        """Create local 'OLItest "1"' maildir, sync

        Folder names with quotes used to fail and have been fixed, so
        one is included here as a small challenge."""
        OLITestLib.delete_maildir('') #Delete all local maildir folders
        OLITestLib.create_maildir('INBOX.OLItest "1"')
        code, res = OLITestLib.run_OLI()
        if 'unallowed folder' in res:
            raise unittest.SkipTest("remote server doesn't handle quote")
        self.assertEqual(res, "")
        boxes, mails = OLITestLib.count_maildir_mails('')
        self.assertTrue((boxes, mails)==(1,0), msg="Expected 1 folders and 0 "
            "mails, but sync led to {0} folders and {1} mails".format(
                boxes, mails))
コード例 #8
0
    def test_02_createdir(self):
        """Create local OLItest 1 & OLItest "1" maildir, sync

        Folder names with quotes used to fail and have been fixed, so
        one is included here as a small challenge."""
        OLITestLib.create_maildir('INBOX.OLItest 1')
        OLITestLib.create_maildir('INBOX.OLItest "1"')
        code, res = OLITestLib.run_OLI()
        #logging.warn("%s %s "% (code, res))
        self.assertEqual(res, "")
        boxes, mails = OLITestLib.count_maildir_mails('')
        self.assertTrue(
            (boxes, mails) == (2, 0),
            msg="Expected 2 folders and 0 "
            "mails, but sync led to {} folders and {} mails".format(
                boxes, mails))
コード例 #9
0
    def test_04_nametransmismatch(self):
        """Create mismatching remote and local nametrans rules

        This should raise an error."""
        config = OLITestLib.get_default_config()
        config.set('Repository IMAP', 'nametrans',
                   'lambda f: f' )
        config.set('Repository Maildir', 'nametrans',
                   'lambda f: f + "moo"' )
        OLITestLib.write_config_file(config)
        code, res = OLITestLib.run_OLI()
        #logging.warn("%s %s "% (code, res))
        # We expect an INFINITE FOLDER CREATION WARNING HERE....
        mismatch = "ERROR: INFINITE FOLDER CREATION DETECTED!" in res
        self.assertEqual(mismatch, True, msg="Mismatching nametrans rules did "
            "NOT trigger an 'infinite folder generation' error. Output was:\n"
             "{0}".format(res))
        # Write out default config file again
        OLITestLib.write_config_file()
コード例 #10
0
def tearDownModule():
    logging.info("Tear Down test module")
    # comment out next line to keep testdir after test runs. TODO: make nicer
    OLITestLib.delete_test_dir()
コード例 #11
0
def setUpModule():
    logging.info("Set Up test module %s" % __name__)
    tdir = OLITestLib.create_test_dir(suffix=__name__)
コード例 #12
0
    def test_06_createfolders(self):
        """Test if createfolders works as expected

        Create a local Maildir, then sync with remote "createfolders"
        disabled. Delete local Maildir and sync. We should have no new
        local maildir then. TODO: Rewrite this test to directly test
        and count the remote folders when the helper functions have
        been written"""
        config = OLITestLib.get_default_config()
        config.set('Repository IMAP', 'createfolders',
                   'False' )
        OLITestLib.write_config_file(config)

        # delete all remote and local testfolders
        OLITestLib.delete_remote_testfolders()
        OLITestLib.delete_maildir('')
        OLITestLib.create_maildir('INBOX.OLItest')
        code, res = OLITestLib.run_OLI()
        #logging.warn("%s %s "% (code, res))
        self.assertEqual(res, "")
        OLITestLib.delete_maildir('INBOX.OLItest')
        code, res = OLITestLib.run_OLI()
        self.assertEqual(res, "")
        boxes, mails = OLITestLib.count_maildir_mails('')
        self.assertTrue((boxes, mails)==(0,0), msg="Expected 0 folders and 0 "
            "mails, but sync led to {} folders and {} mails".format(
                boxes, mails))
コード例 #13
0
    def test_05_createmail(self):
        """Create mail in OLItest 1, sync, wipe folder sync

        Currently, this will mean the folder will be recreated
        locally.  At some point when remote folder deletion is
        implemented, this behavior will change."""
        OLITestLib.delete_remote_testfolders()
        OLITestLib.delete_maildir('') #Delete all local maildir folders
        OLITestLib.create_maildir('INBOX.OLItest')
        OLITestLib.create_mail('INBOX.OLItest')
        code, res = OLITestLib.run_OLI()
        #logging.warn("%s %s "% (code, res))
        self.assertEqual(res, "")
        boxes, mails = OLITestLib.count_maildir_mails('')
        self.assertTrue((boxes, mails)==(1,1), msg="Expected 1 folders and 1 "
            "mails, but sync led to {0} folders and {1} mails".format(
                boxes, mails))
        # The local Mail should have been assigned a proper UID now, check!
        uids = OLITestLib.get_maildir_uids('INBOX.OLItest')
        self.assertFalse (None in uids, msg = "All mails should have been "+ \
            "assigned the IMAP's UID number, but {0} messages had no valid ID "\
            .format(len([None for x in uids if x==None])))
コード例 #14
0
 def setUpClass(cls):
     #This is run before all tests in this class
     config= OLITestLib.get_default_config()
     setglobalui(UI_LIST['quiet'](config))
コード例 #15
0
def tearDownModule():
    logging.info("Tear Down test module")
    # comment out next line to keep testdir after test runs. TODO: make nicer
    OLITestLib.delete_test_dir()
コード例 #16
0
 def setUpClass(cls):
     #This is run before all tests in this class
     config= OLITestLib.get_default_config()
     setglobalui(UI_LIST['quiet'](config))
コード例 #17
0
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
import random
import unittest
import logging
import os, sys
from test.OLItest import OLITestLib

# Things need to be setup first, usually setup.py initializes everything.
# but if e.g. called from command line, we take care of default values here:
if not OLITestLib.cred_file:
    OLITestLib(cred_file='./test/credentials.conf', cmd='./offlineimap.py')


def setUpModule():
    logging.info("Set Up test module %s" % __name__)
    tdir = OLITestLib.create_test_dir(suffix=__name__)

def tearDownModule():
    logging.info("Tear Down test module")
    OLITestLib.delete_test_dir()

#Stuff that can be used
#self.assertEqual(self.seq, range(10))
# should raise an exception for an immutable sequence
#self.assertRaises(TypeError, random.shuffle, (1,2,3))
#self.assertTrue(element in self.seq)
コード例 #18
0
 def setUp(self):
     OLITestLib.delete_remote_testfolders()
コード例 #19
0
def tearDownModule():
    logging.info("Tear Down test module")
    OLITestLib.delete_test_dir()
コード例 #20
0
 def tearDown(self):
     OLITestLib.delete_remote_testfolders()