From fae6452fa7c44c0fcbc000d04440840e23387389 Mon Sep 17 00:00:00 2001 From: Razvan Deaconescu Date: Thu, 1 Sep 2011 17:22:58 +0300 Subject: [PATCH] ppf/new: Complete test methods for TriblerLogParser. --- ppf/new/tests/test_parsing.py | 188 ++++++++++++++++++++++++++++++++-- 1 file changed, 180 insertions(+), 8 deletions(-) diff --git a/ppf/new/tests/test_parsing.py b/ppf/new/tests/test_parsing.py index c7398ec..fbbc975 100644 --- a/ppf/new/tests/test_parsing.py +++ b/ppf/new/tests/test_parsing.py @@ -549,29 +549,201 @@ class LibtorrentLogParserTest(unittest.TestCase): class TriblerLogParserTest(unittest.TestCase): """Test suite for TriblerLogParser class in parsing.py.""" + log_file = 'tribler.log' + no_log_file = 'no.log' + def setUp(self): - pass + """Create log file and initiate local counter variables.""" + f = open(self.log_file, "w") + f.close() + + # Initialize message type counters. + self.statmsg_count = 0 + self.pstatmsg_count = 0 + self.verbmsg_count = 0 + + # Initialize internal call counts. + self.bogus_line_num_calls = 0 + self.status_line_num_calls = 0 + self.peer_status_line_num_calls = 0 + self.verbose_line_num_calls = 0 + + # Remove no log file in case it exists. + try: + os.remove(self.no_log_file) + except OSError, e: + pass def tearDown(self): - pass + """Remove log file.""" + os.remove(self.log_file) + + def append_line(self, filename, line): + """Add (append) a line to to a file.""" + f = open(filename, "at") + f.write(line + "\n") + f.close() + + def add_bogus_line(self, filename): + """Add bogus (non-relevant) line to file.""" + if self.bogus_line_num_calls == 0: + self.append_line(filename, "Nebuchadnezzar") + else: + self.append_line(filename, "Assurbanipal") + self.bogus_line_num_calls = self.bogus_line_num_calls + 1 + + def add_status_line(self, filename): + """Add status line to file.""" + if self.status_line_num_calls == 0: + pass + else: + pass + self.status_line_num_calls = self.status_line_num_calls + 1 + + def add_peer_status_line(self, filename): + """Add peer status line to file.""" + if self.peer_status_line_num_calls == 0: + pass + else: + pass + self.peer_status_line_num_calls = self.peer_status_line_num_calls + 1 + + def add_verbose_line(self, filename): + """Add verbose line to file.""" + if self.verbose_line_num_calls == 0: + pass + else: + pass + self.verbose_line_num_calls = self.verbose_line_num_calls + 1 + + def add_message_to_count(self, msg): + """Update message type counters according to msg.""" + if msg.__class__ == storage.StatusMessage: + self.statmsg_count = self.statmsg_count + 1 + elif msg.__class__ == storage.PeerStatusMessage: + self.pstatmsg_count = self.pstatmsg_count + 1 + elif msg.__class__ == storage.VerboseMessage: + self.verbmsg_count = self.verbmsg_count + 1 def test_no_log_file(self): - self.assertEqual(True, False) + """Log file doesn't exist.""" + exception_raised = False + try: + p = parsing.TriblerLogParser(self.no_log_file, + "2009-01-01 12:13:14") + except (IOError, OSError, IndexError), e: + exception_raised = True + + self.assertEqual(exception_raised, True) def test_empty_log_file(self): - self.assertEqual(True, False) + """Log file is empty.""" + p = parsing.TriblerLogParser(self.log_file, "2009-01-01 12:13:14") + + msg = p.get_next_message() + + self.assertEqual(msg, None) def test_bogus_log_file(self): - self.assertEqual(True, False) + """Log file contains bogus information (no real data).""" + self.add_bogus_line(self.log_file) + self.add_bogus_line(self.log_file) + p = parsing.TriblerLogParser(self.log_file, "2009-01-01 12:13:14") + + msg = p.get_next_message() + + self.assertEqual(msg, None) def test_get_status_message(self): - self.assertEqual(True, False) + """Add status message.""" + self.add_status_line(self.log_file) + p = parsing.TriblerLogParser(self.log_file, "2009-01-01 12:13:14") + + msg = p.get_next_message() + self.add_message_to_count(msg) + + self.assertEqual(self.statmsg_count, 1) def test_get_status_messages(self): - self.assertEqual(True, False) + """Add multiple status messages.""" + self.add_status_line(self.log_file) + self.add_status_line(self.log_file) + p = parsing.TriblerLogParser(self.log_file, "2009-01-01 12:13:14") + + msg1 = p.get_next_message() + msg2 = p.get_next_message() + self.add_message_to_count(msg1) + self.add_message_to_count(msg2) + + self.assertEqual(self.statmsg_count, 2) + + def test_get_peer_status_message(self): + """Add peer status message.""" + self.add_peer_status_line(self.log_file) + p = parsing.TriblerLogParser(self.log_file, "2009-01-01 12:13:14") + + msg = p.get_next_message() + self.add_message_to_count(msg) + + self.assertEqual(self.pstatmsg_count, 1) + + def test_get_peer_status_messages(self): + """Add multiple peer status messsages.""" + self.add_peer_status_line(self.log_file) + self.add_peer_status_line(self.log_file) + p = parsing.TriblerLogParser(self.log_file, "2009-01-01 12:13:14") + + msg1 = p.get_next_message() + msg2 = p.get_next_message() + self.add_message_to_count(msg1) + self.add_message_to_count(msg2) + + self.assertEqual(self.pstatmsg_count, 2) + + def test_get_verbose_message(self): + """Add verbose message.""" + self.add_verbose_line(self.log_file) + p = parsing.TriblerLogParser(self.log_file, "2009-01-01 12:13:14") + + msg = p.get_next_message() + self.add_message_to_count(msg) + + self.assertEqual(self.verbmsg_count, 1) + + def test_get_verbose_messages(self): + """Add multiple verbose messages.""" + self.add_verbose_line(self.log_file) + self.add_verbose_line(self.log_file) + p = parsing.TriblerLogParser(self.log_file, "2009-01-01 12:13:14") + + msg1 = p.get_next_message() + msg2 = p.get_next_message() + self.add_message_to_count(msg1) + self.add_message_to_count(msg2) + + self.assertEqual(self.verbmsg_count, 2) def test_get_mixed_messages_same_file(self): - self.assertEqual(True, False) + """Add mixed messages in the same file. + Parser should detect a message of each type (status, peer status + and verbose). + """ + self.add_bogus_line(self.log_file) + self.add_status_line(self.log_file) + self.add_peer_status_line(self.log_file) + self.add_verbose_line(self.log_file) + p = parsing.TriblerLogParser(self.log_file, "2009-01-01 12:13:14") + + msg1 = p.get_next_message() + msg2 = p.get_next_message() + msg3 = p.get_next_message() + self.add_message_to_count(msg1) + self.add_message_to_count(msg2) + self.add_message_to_count(msg3) + + self.assertEqual(self.statmsg_count, 1) + self.assertEqual(self.pstatmsg_count, 1) + self.assertEqual(self.verbmsg_count, 1) if __name__ == "__main__": -- 2.20.1