/ tests / test_log_parser.py
test_log_parser.py
 1  # Python Imports
 2  import unittest
 3  from unittest.mock import patch
 4  
 5  # Project Imports
 6  from src import log_parser
 7  
 8  
 9  class TestLogParser(unittest.TestCase):
10  
11      @patch('builtins.open')
12      @patch('json.load')
13      def test_load_messages(self, mock_json_load, mock_open):
14          mock_data = {'key': 'value'}
15          mock_file = mock_open.return_value.__enter__.return_value
16          mock_file.read.return_value = 'dummy'
17          mock_json_load.return_value = mock_data
18  
19          data = log_parser.load_messages('/path/to/simulation')
20          mock_open.assert_called_once_with('/path/to/simulation/messages.json', 'r')
21          mock_json_load.assert_called_once_with(mock_file)
22          self.assertEqual(data, mock_data)
23  
24      def test_prepare_node_in_logs(self):
25          node_pbar = ['node1', 'node2']
26          topology = {'nodes': {'node1': {'peer_id': 'peer1'}, 'node2': {'peer_id': 'peer2'}}}
27          node_logs = {}
28          container_name = 'container1'
29  
30          log_parser.prepare_node_in_logs(node_pbar, topology, node_logs, container_name)
31  
32          self.assertEqual(node_logs, {'pee*peer1': {'published': [], 'received': [],
33                                                      'container_name': 'container1', 'peer_id': 'node1'},
34                                       'pee*peer2': {'published': [], 'received': [],
35                                                      'container_name': 'container1', 'peer_id': 'node2'}})