test_topology.py
1 # Python Imports 2 import unittest 3 from unittest.mock import patch 4 5 # Project Imports 6 from src import topology 7 8 9 class TestTopology(unittest.TestCase): 10 @patch('builtins.open') 11 @patch('tomllib.load') 12 def test_load_topics_nwaku(self, mock_toml_load, mock_open): 13 mock_node_info = { 14 "node_config": "config.toml", 15 "image": "nim-waku", 16 } 17 mock_nodes = {"node1": {}, "node2": {}} 18 mock_toml_config = {"topics": "topic1 topic2 topic3"} 19 mock_toml_load.return_value = mock_toml_config 20 21 topology._load_topics(mock_node_info, mock_nodes, "node1", "/path/to/tomls/") 22 mock_open.assert_called_once_with('/path/to/tomls/config.toml', mode='rb') 23 mock_toml_load.assert_called_once_with(mock_open.return_value.__enter__.return_value) 24 self.assertListEqual(mock_nodes["node1"]["topics"], ["topic1", "topic2", "topic3"]) 25 26 @patch('builtins.open') 27 @patch('tomllib.load') 28 def test_load_topics_gowaku(self, mock_toml_load, mock_open): 29 mock_node_info = { 30 "node_config": "config.toml", 31 "image": "go-waku", 32 } 33 mock_nodes = {"node1": {}, "node2": {}} 34 mock_toml_config = {"topics": ["topic1", "topic2", "topic3"]} 35 mock_toml_load.return_value = mock_toml_config 36 37 topology._load_topics(mock_node_info, mock_nodes, "node1", "/path/to/tomls/") 38 mock_open.assert_called_once_with('/path/to/tomls/config.toml', mode='rb') 39 mock_toml_load.assert_called_once_with(mock_open.return_value.__enter__.return_value) 40 self.assertListEqual(mock_nodes["node1"]["topics"], ["topic1", "topic2", "topic3"]) 41 42 @patch('builtins.open') 43 @patch('tomllib.load') 44 def test_load_topics_into_topology(self, mock_toml_load, mock_open): 45 nodes = { 46 "nodes": { 47 "node1": { 48 "node_config": "config.toml", 49 "image": "nim-waku", 50 }, 51 "node2": { 52 "node_config": "config.toml", 53 "image": "nim-waku", 54 }} 55 } 56 mock_toml_config = {"topics": "topic1 topic2 topic3"} 57 mock_toml_load.return_value = mock_toml_config 58 59 topology.load_topics_into_topology(nodes, "") 60 61 self.assertEqual(nodes["nodes"]["node1"]["topics"], ["topic1", "topic2", "topic3"]) 62 self.assertEqual(nodes["nodes"]["node2"]["topics"], ["topic1", "topic2", "topic3"])