--- /dev/null
+'''
+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()
\ No newline at end of file