Skip to content

Commit 8fb0b38

Browse files
Update test_main.py
1 parent a7c5782 commit 8fb0b38

File tree

1 file changed

+53
-3
lines changed

1 file changed

+53
-3
lines changed

test/test_main.py

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,36 @@
3333

3434
# Standard Library Imports
3535
import unittest
36+
from unittest.mock import patch, MagicMock
3637
from pathlib import Path
3738

3839
# Third Party Imports
3940

4041
# Local Imports
4142
from navigate.tools.main_functions import create_parser
4243
from navigate.config.config import get_navigate_path
44+
from navigate.main import main
4345

4446

45-
class TestMain(unittest.TestCase):
47+
def get_args():
48+
args = MagicMock()
49+
args.configurator = False
50+
args.config_file = False
51+
args.experiment_file = False
52+
args.waveform_constants_file = False
53+
args.rest_api_file = False
54+
args.waveform_templates_file = False
55+
args.gui_config_file = False
56+
args.logging_config = False
57+
args.synthetic_hardware = True
58+
return args
59+
60+
61+
class TestArgParser(unittest.TestCase):
4662
"""Unit Test for main.py"""
4763

4864
def test_argument_parser(self):
65+
"""Test Argument Parser"""
4966
parser = create_parser()
5067

5168
# Boolean arguments
@@ -67,5 +84,38 @@ def test_argument_parser(self):
6784
parser.parse_args([arg, str(Path.joinpath(navigate_path, "test.yml"))])
6885

6986

70-
if __name__ == "__main__":
71-
unittest.main()
87+
class TestMainController(unittest.TestCase):
88+
"""Unit Test for main.py"""
89+
90+
@patch("navigate.main.tk.Tk.mainloop")
91+
@patch("navigate.main.Controller")
92+
@patch("argparse.ArgumentParser.parse_args")
93+
def test_main_call_controller(
94+
self, mock_parse_args, mock_controller, mock_mainloop
95+
):
96+
args = get_args()
97+
mock_parse_args.return_value = args
98+
99+
mock_mainloop.return_value = MagicMock()
100+
main()
101+
mock_controller.assert_called_once()
102+
103+
104+
# class TestMainConfigurator(unittest.TestCase):
105+
# """ Unit Test for main.py """
106+
# @patch('navigate.main.tk.Tk.mainloop')
107+
# @patch('navigate.main.Controller')
108+
# @patch('argparse.ArgumentParser.parse_args')
109+
# def test_main_configurator(
110+
# self,
111+
# mock_parse_args,
112+
# mock_controller,
113+
# mock_mainloop
114+
# ):
115+
# args = get_args()
116+
# args.configurator = True
117+
# mock_parse_args.return_value = args
118+
#
119+
# mock_mainloop.return_value = MagicMock()
120+
# main()
121+
# mock_controller.assert_not_called()

0 commit comments

Comments
 (0)