''' restore-mail-inject.py - Tool to inject mails via IMAP Copyright (c) 2012 Intra2net AG ''' import unittest import os from file_iterator import FileIterator class FileContentsParse(unittest.TestCase): """Test the retrieved acls from a dummy mailbox list file""" # class attributes # FileIterator instance to be tested for parsing file_iter = None # dummy filename to be used for parsing the acls dummy_filename = None # dummy file descriptor to be used for parsing the acls dummy_file = None # wrong naming conventions are due to python unittest library requirement def setUp(self): """Prepares the testing confitions.""" self.file_iter = FileIterator() self.dummy_filename = "test_acls.dump" self.dummy_file = open(self.dummy_filename, "w") self.dummy_file.write("user.00schneider\t0 default 00schneider\tlrswipkxtecda\t\n" "user.00schneider.ibx_poped\t0 default 00schneider\tlrswipkxtecda\t\n" "user.00schneider.ibx_sub\t0 default 00schneider\tlrswpkxtecda\t\n" "user.abrus\t0 default abrus\tlrswipkxtecda\t\n" "user.abrus.Aufgaben\t0 default abrus\tlrswipkxtecda\tabrus2\tlrswikxtecda\t\n" "user.abrus.Entw&APw-rfe\t0 default abrus\tlrswipkxtecda\t\n" "user.abrus.Gesendete Objekte\t0 default abrus\tlrswipkxtecda\t\n" "user.abrus.Junk-E-Mail\t0 default abrus\tlrswipkxtecda\t\n" "user.abrus.Kalender\t0 default abrus\tlrswipkxtecda\t\n" "user.abrus.Kontakte\t0 default abrus\tlrswipkxtecda\t\n" "user.abrus.Notizen\t0 default abrus\tlrswipkxtecda\t\n" "user.abrus.foobar\t0 default abrus\tlrswipkxtecda\t\n") self.dummy_file.close() # wrong naming conventions are due to python unittest library requirement def tearDown(self): """Clean up the testing conditions""" os.unlink(self.dummy_filename) def test_mboxlist_firstline(self): """Test whether first line was parsed correctly.""" parsed_acls = self.file_iter.load_mailbox_list(self.dummy_filename) self.assertIn("user.00schneider", parsed_acls) self.assertIn("00schneider", parsed_acls["user.00schneider"]) self.assertEqual(parsed_acls["user.00schneider"]["00schneider"], "lrswipkxtecda", "Wront acls were parsed for a user.") def test_mboxlist_totals(self): """Test whether there are missing parsed lines, mailboxs, and users.""" parsed_acls = self.file_iter.load_mailbox_list(self.dummy_filename) self.assertEqual(len(parsed_acls), 12) self.assertEqual(len(parsed_acls.popitem()[1]), 1) self.assertEqual(len(parsed_acls.popitem()[1]), 1) self.assertEqual(len(parsed_acls.popitem()[1]), 1) self.assertEqual(len(parsed_acls.popitem()[1]), 1) self.assertEqual(len(parsed_acls.popitem()[1]), 2) self.assertEqual(len(parsed_acls.popitem()[1]), 1) self.assertEqual(len(parsed_acls.popitem()[1]), 1) self.assertEqual(len(parsed_acls.popitem()[1]), 1) self.assertEqual(len(parsed_acls.popitem()[1]), 1) self.assertEqual(len(parsed_acls.popitem()[1]), 1) self.assertEqual(len(parsed_acls.popitem()[1]), 1) self.assertEqual(len(parsed_acls.popitem()[1]), 1) if __name__ == '__main__': unittest.main()