''' unit_tester.py - The module contains the MailScriptTester class. Copyright (c) 2012 Intra2net AG Author: Plamen Dimitrov This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ''' import unittest import datetime import date_interpreter class MailScriptTester(unittest.TestCase): def setUp(self): self.date_interp = date_interpreter.DateInterpreter() self.true_date = datetime.datetime(2007, 12, 11, 18, 24, 35) def test_received_header1(self): """Tests the date extraction method.""" date = [[0, b"Tue, 11 Dec 2007 18:24:35 +0100"]] extracted_date = self.date_interp.extract_received_date(date) self.assertEqual(extracted_date, self.true_date, "Failed date format 1") def test_received_header2(self): """Tests the date extraction method.""" date = [[0, b"11 Dec 2007 \r\n18:24:35 +0100"]] extracted_date = self.date_interp.extract_received_date(date) self.assertEqual(extracted_date, self.true_date, "Failed date format 2") return def test_received_header3(self): """Tests the date extraction method.""" date = [[0, b"11 Dec 2007 18:24:35 +0100"]] extracted_date = self.date_interp.extract_received_date(date) self.assertEqual(extracted_date, self.true_date, "Failed date format 3") def test_received_header4(self): """Tests the date extraction method.""" date = [[0, b"11 Dec 2007 18:24:35"]] extracted_date = self.date_interp.extract_received_date(date) #should not be equal because of time zone assumption self.assertNotEqual(extracted_date, self.true_date, "Failed date format 4") def test_received_header5(self): """Tests the received date extraction method.""" date = [[0, b"11 Dec 2007 18:24:35 GMT"]] extracted_date = self.date_interp.extract_received_date(date) #should not be equal because of time zone assumption self.assertNotEqual(extracted_date, self.true_date, "Failed date format 5") def test_compare_dates(self): """Tests the date comparison method.""" self.true_date2 = datetime.datetime(2007, 12, 11, 18, 34, 35) #is difference of 10 mins significant if tolerance is 9 mins self.assertTrue(bool(self.date_interp.compare_dates(self.true_date, self.true_date2, 9*60)), "Failed at comparison test") #is difference of 10 mins significant if tolerance is 11 mins self.assertFalse(bool(self.date_interp.compare_dates(self.true_date, self.true_date2, 11*60)), "Failed at comparison test") if __name__ == '__main__': unittest.main()