blob: 3a1867b85a41300700fb341e1d75874e4e6a738d [file] [log] [blame]
Alex3bc95f62020-03-05 17:00:04 -06001import os
Alex9a4ad212020-10-01 18:04:25 -05002import shutil
Alex3bc95f62020-03-05 17:00:04 -06003
4from unittest.mock import patch
5
6from tests.mocks import mocked_salt_post, mocked_salt_get
7from tests.mocks import _res_dir
8from tests.mocks import mocked_shell, _shell_salt_path
9from tests.test_base import CfgCheckerTestBase
10
11from cfg_checker.modules.network.network_errors import NetworkErrors
12
13
14# Fake ErrorIndex
15_ErrorIndex_path = "cfg_checker.helpers.errors.ErrorIndex"
16_NErrors_path = "cfg_checker.modules.network.network_errors.NetworkErrors"
17
18_fake_nerrors = NetworkErrors(folder="tests/res/fakeerrors")
19_fake_nerrors._error_logs_folder_name = "tests/res/fakeerrors"
20
21
22class TestNetworkModule(CfgCheckerTestBase):
Alex9a4ad212020-10-01 18:04:25 -050023 def setUp(self):
24 # force env type to salt
25 os.environ['MCP_TYPE_FORCE'] = 'SALT'
26
27 def tearDown(self):
28 del os.environ['MCP_TYPE_FORCE']
29
30 @classmethod
31 def tearDownClass(cls):
32 _ferr = os.path.join(_res_dir, "fakeerrors")
33 if os.path.exists(_ferr):
34 shutil.rmtree(_ferr)
35
36 return super().tearDownClass()
37
Alex3bc95f62020-03-05 17:00:04 -060038 @patch('requests.get', side_effect=mocked_salt_get)
39 @patch('requests.post', side_effect=mocked_salt_post)
40 @patch(_shell_salt_path, side_effect=mocked_shell)
41 @patch(_NErrors_path, new=_fake_nerrors)
42 def test_network_list(self, m_get, m_post, m_shell):
43 _args = ["list"]
44 _pm = "cfg_checker.modules.network.mapper.NetworkErrors"
45 with patch(_pm, new=_fake_nerrors):
46 _r_code = self.run_cli(
47 "network",
48 _args
49 )
50 self.assertEqual(
51 _r_code,
52 0,
53 "'mcp-net {}' command failed".format(" ".join(_args))
54 )
55
56 @patch('requests.get', side_effect=mocked_salt_get)
57 @patch('requests.post', side_effect=mocked_salt_post)
58 @patch(_shell_salt_path, side_effect=mocked_shell)
59 @patch(_NErrors_path, new=_fake_nerrors)
60 def test_network_map(self, m_get, m_post, m_shell):
61 _args = ["map"]
62 with patch(
63 "cfg_checker.modules.network.mapper.NetworkErrors",
64 new=_fake_nerrors
65 ):
66 _r_code = self.run_cli(
67 "network",
68 _args
69 )
70 self.assertEqual(
71 _r_code,
72 0,
73 "'mcp-net {}' command failed".format(" ".join(_args))
74 )
75
76 @patch('requests.get', side_effect=mocked_salt_get)
77 @patch('requests.post', side_effect=mocked_salt_post)
78 @patch(_shell_salt_path, side_effect=mocked_shell)
79 @patch(_NErrors_path, new=_fake_nerrors)
80 def test_network_check(self, m_get, m_post, m_shell):
81 _args = ["check"]
82 with patch(
83 "cfg_checker.modules.network.checker.NetworkErrors",
84 new=_fake_nerrors
85 ):
86 _r_code = self.run_cli(
87 "network",
88 _args
89 )
90 self.assertEqual(
91 _r_code,
92 0,
93 "'mcp-net {}' command failed".format(" ".join(_args))
94 )
95
96 @patch('requests.get', side_effect=mocked_salt_get)
97 @patch('requests.post', side_effect=mocked_salt_post)
98 @patch(_shell_salt_path, side_effect=mocked_shell)
99 @patch(_NErrors_path, new=_fake_nerrors)
100 def test_network_report_html(self, m_get, m_post, m_shell):
101 _fake_report = os.path.join(_res_dir, "fake.html")
102 _args = ["report", "--html", _fake_report]
103 _pc = "cfg_checker.modules.network.checker.NetworkErrors"
104 with patch(_pc, new=_fake_nerrors):
105 _r_code = self.run_cli(
106 "network",
107 _args
108 )
109 self.assertEqual(
110 _r_code,
111 0,
112 "'mcp-net {}' command failed".format(" ".join(_args))
113 )