Main module rename and one additional warning in case acls for mailbox were not found
[imap-restore-mail] / src / unit_tester.py
CommitLineData
79c28101
PD
1'''
2restore-mail-inject.py - Tool to inject mails via IMAP
3
4Copyright (c) 2012 Intra2net AG
20760d94
PD
5Author: Plamen Dimitrov and Thomas Jarosch
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 3 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
79c28101
PD
16'''
17
18import unittest
19import os
20from file_iterator import FileIterator
21
22class FileContentsParse(unittest.TestCase):
23 """Test the retrieved acls from a dummy mailbox list file"""
24
25 # class attributes
26 # FileIterator instance to be tested for parsing
27 file_iter = None
28 # dummy filename to be used for parsing the acls
29 dummy_filename = None
30 # dummy file descriptor to be used for parsing the acls
31 dummy_file = None
32
33 # wrong naming conventions are due to python unittest library requirement
34 def setUp(self):
35 """Prepares the testing confitions."""
36 self.file_iter = FileIterator()
37 self.dummy_filename = "test_acls.dump"
38 self.dummy_file = open(self.dummy_filename, "w")
39 self.dummy_file.write("user.00schneider\t0 default 00schneider\tlrswipkxtecda\t\n"
40 "user.00schneider.ibx_poped\t0 default 00schneider\tlrswipkxtecda\t\n"
41 "user.00schneider.ibx_sub\t0 default 00schneider\tlrswpkxtecda\t\n"
42 "user.abrus\t0 default abrus\tlrswipkxtecda\t\n"
43 "user.abrus.Aufgaben\t0 default abrus\tlrswipkxtecda\tabrus2\tlrswikxtecda\t\n"
44 "user.abrus.Entw&APw-rfe\t0 default abrus\tlrswipkxtecda\t\n"
45 "user.abrus.Gesendete Objekte\t0 default abrus\tlrswipkxtecda\t\n"
46 "user.abrus.Junk-E-Mail\t0 default abrus\tlrswipkxtecda\t\n"
47 "user.abrus.Kalender\t0 default abrus\tlrswipkxtecda\t\n"
48 "user.abrus.Kontakte\t0 default abrus\tlrswipkxtecda\t\n"
49 "user.abrus.Notizen\t0 default abrus\tlrswipkxtecda\t\n"
50 "user.abrus.foobar\t0 default abrus\tlrswipkxtecda\t\n")
51 self.dummy_file.close()
52
53 # wrong naming conventions are due to python unittest library requirement
54 def tearDown(self):
20760d94 55
79c28101
PD
56 """Clean up the testing conditions"""
57 os.unlink(self.dummy_filename)
58
59 def test_mboxlist_firstline(self):
20760d94 60
79c28101
PD
61 """Test whether first line was parsed correctly."""
62 parsed_acls = self.file_iter.load_mailbox_list(self.dummy_filename)
63 self.assertIn("user.00schneider", parsed_acls)
64 self.assertIn("00schneider", parsed_acls["user.00schneider"])
12d5b37a 65 self.assertEqual(parsed_acls["user.00schneider"]["00schneider"], "lrswipkxtecda", "Wrong acls were parsed for a user.")
79c28101
PD
66
67 def test_mboxlist_totals(self):
20760d94 68
79c28101
PD
69 """Test whether there are missing parsed lines, mailboxs, and users."""
70 parsed_acls = self.file_iter.load_mailbox_list(self.dummy_filename)
71 self.assertEqual(len(parsed_acls), 12)
72 self.assertEqual(len(parsed_acls.popitem()[1]), 1)
73 self.assertEqual(len(parsed_acls.popitem()[1]), 1)
74 self.assertEqual(len(parsed_acls.popitem()[1]), 1)
75 self.assertEqual(len(parsed_acls.popitem()[1]), 1)
76 self.assertEqual(len(parsed_acls.popitem()[1]), 2)
77 self.assertEqual(len(parsed_acls.popitem()[1]), 1)
78 self.assertEqual(len(parsed_acls.popitem()[1]), 1)
79 self.assertEqual(len(parsed_acls.popitem()[1]), 1)
80 self.assertEqual(len(parsed_acls.popitem()[1]), 1)
81 self.assertEqual(len(parsed_acls.popitem()[1]), 1)
82 self.assertEqual(len(parsed_acls.popitem()[1]), 1)
83 self.assertEqual(len(parsed_acls.popitem()[1]), 1)
84
85
86if __name__ == '__main__':
87 unittest.main()