2 The module contains the FileContentsParse class.
4 Copyright (c) 2012 Intra2net AG
5 Author: Plamen Dimitrov and Thomas Jarosch
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
20 from file_iterator import FileIterator
22 class FileContentsParse(unittest.TestCase):
23 """Test the retrieved acls from a dummy mailbox list file"""
26 # FileIterator instance to be tested for parsing
28 # dummy filename to be used for parsing the acls
30 # dummy file descriptor to be used for parsing the acls
33 # wrong naming conventions are due to python unittest library requirement
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.mit^punkt.Gesendete Objekte\t0 default mit.punkt\tlrswipktecda\t\n"
41 "user.00schneider.Gesendete Objekte\t0 default 00schneider\tlrswipkxtecda\t\n"
42 "user.00schneider.ibx_sub\t0 default 00schneider\tlrswpkxtecda\t\n"
43 "user.abrus\t0 default abrus\tlrswipkxtecda\t\n"
44 "user.abrus.Aufgaben\t0 default abrus\tlrswipkxtecda\tabrus2\tlrswikxtecda\t\n"
45 "user.abrus.Entw&APw-rfe\t0 default abrus\tlrswipkxtecda\t\n"
46 "user.abrus.Gesendete Objekte\t0 default abrus\tlrswipkxtecda\t\n"
47 "user.abrus.Junk-E-Mail\t0 default abrus\tlrswipkxtecda\t\n"
48 "user.abrus.Kalender\t0 default abrus\tlrswipkxtecda\t\n"
49 "user.abrus.Kontakte\t0 default abrus\tlrswipkxtecda\t\n"
50 "user.abrus.Notizen\t0 default abrus\tlrswipkxtecda\t\n"
51 "user.abrus.foobar\t0 default abrus\tlrswipkxtecda\t\n")
52 self.dummy_file.close()
53 self.dummy_user = "tester"
55 # wrong naming conventions are due to python unittest library requirement
58 """Clean up the testing conditions"""
59 os.unlink(self.dummy_filename)
61 def test_mboxlist_parsed_line1(self):
63 """Test whether a line was parsed correctly."""
64 self.file_iter.load_mailbox_list(self.dummy_filename)
65 self.assertEqual(len(self.file_iter.get_mailbox_acls("INBOX/Gesendete Objekte", "00schneider")), 1)
66 self.assertIn("00schneider", self.file_iter.get_mailbox_acls("INBOX/Gesendete Objekte", "00schneider"))
67 self.assertEqual(self.file_iter.get_mailbox_acls("INBOX/Gesendete Objekte", "00schneider")["00schneider"], "lrswipkxtecda", "Wrong acls were parsed for a user.")
69 def test_mboxlist_parsed_line2(self):
71 """Test whether a line was parsed correctly."""
72 self.file_iter.load_mailbox_list(self.dummy_filename)
73 self.assertEqual(len(self.file_iter.get_mailbox_acls("INBOX/Gesendete Objekte", "mit.punkt")), 1)
74 self.assertIn("mit.punkt", self.file_iter.get_mailbox_acls("INBOX/Gesendete Objekte", "mit.punkt"))
75 self.assertEqual(self.file_iter.get_mailbox_acls("INBOX/Gesendete Objekte", "mit.punkt")["mit.punkt"], "lrswipktecda", "Wrong acls were parsed for a user.")
77 def test_mboxlist_totals(self):
79 """Test whether there are missing parsed lines, mailboxs, and users."""
80 self.file_iter.load_mailbox_list(self.dummy_filename)
81 self.assertEqual(len(self.file_iter._file_acls), 13)
82 self.assertEqual(len(self.file_iter._file_acls.popitem()[1]), 1)
83 self.assertEqual(len(self.file_iter._file_acls.popitem()[1]), 1)
84 self.assertEqual(len(self.file_iter._file_acls.popitem()[1]), 1)
85 self.assertEqual(len(self.file_iter._file_acls.popitem()[1]), 1)
86 self.assertEqual(len(self.file_iter._file_acls.popitem()[1]), 1)
87 self.assertEqual(len(self.file_iter._file_acls.popitem()[1]), 2)
88 self.assertEqual(len(self.file_iter._file_acls.popitem()[1]), 1)
89 self.assertEqual(len(self.file_iter._file_acls.popitem()[1]), 1)
90 self.assertEqual(len(self.file_iter._file_acls.popitem()[1]), 1)
91 self.assertEqual(len(self.file_iter._file_acls.popitem()[1]), 1)
92 self.assertEqual(len(self.file_iter._file_acls.popitem()[1]), 1)
93 self.assertEqual(len(self.file_iter._file_acls.popitem()[1]), 1)
94 self.assertEqual(len(self.file_iter._file_acls.popitem()[1]), 1)
97 if __name__ == '__main__':