-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtest_main.py
More file actions
131 lines (102 loc) · 5.35 KB
/
Copy pathtest_main.py
File metadata and controls
131 lines (102 loc) · 5.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
import shutil
from tempfile import mkdtemp
from unittest.mock import Mock
from nginx_config_reloader import main
from tests.testcase import TestCase
class TestMain(TestCase):
def setUp(self):
self.source = mkdtemp()
self.parse_nginx_config_reloader_arguments = self.set_up_patch(
"nginx_config_reloader.parse_nginx_config_reloader_arguments"
)
self.parse_nginx_config_reloader_arguments.return_value = Mock(
monitor=False,
allow_includes=False,
nomagentoconfig=False,
nocustomconfig=False,
watchdir=self.source,
recursivewatch=False,
use_systemd=False,
no_dbus=False,
)
self.get_logger = self.set_up_context_manager_patch(
"nginx_config_reloader.get_logger"
)
self.wait_loop = self.set_up_context_manager_patch(
"nginx_config_reloader.wait_loop"
)
self.reloader = self.set_up_context_manager_patch(
"nginx_config_reloader.NginxConfigReloader"
)
def tearDown(self):
shutil.rmtree(self.source, ignore_errors=True)
def test_main_gets_logger(self):
main()
self.get_logger.assert_called_once_with()
def test_main_parses_nginx_config_reloader_arguments(self):
main()
self.parse_nginx_config_reloader_arguments.assert_called_once_with()
def test_main_reloads_config_once_if_monitor_mode_not_specified(self):
main()
self.reloader.assert_called_once_with(
logger=self.get_logger.return_value,
no_magento_config=self.parse_nginx_config_reloader_arguments.return_value.nomagentoconfig,
no_custom_config=self.parse_nginx_config_reloader_arguments.return_value.nocustomconfig,
dir_to_watch=self.parse_nginx_config_reloader_arguments.return_value.watchdir,
use_systemd=self.parse_nginx_config_reloader_arguments.return_value.use_systemd,
)
self.reloader.return_value.apply_new_config.assert_called_once_with()
def test_main_does_not_watch_the_config_dir_if_monitor_mode_not_specified(self):
main()
self.assertFalse(self.wait_loop.called)
def test_main_returns_zero_if_no_errors_after_reloading_once(self):
ret = main()
self.assertEqual(0, ret)
def test_main_watches_the_config_dir_if_monitor_specified(self):
self.parse_nginx_config_reloader_arguments.return_value.monitor = True
main()
self.wait_loop.assert_called_once_with(
logger=self.get_logger.return_value,
no_magento_config=self.parse_nginx_config_reloader_arguments.return_value.nomagentoconfig,
no_custom_config=self.parse_nginx_config_reloader_arguments.return_value.nocustomconfig,
dir_to_watch=self.parse_nginx_config_reloader_arguments.return_value.watchdir,
recursive_watch=self.parse_nginx_config_reloader_arguments.return_value.recursivewatch,
use_systemd=self.parse_nginx_config_reloader_arguments.return_value.use_systemd,
no_dbus=self.parse_nginx_config_reloader_arguments.return_value.no_dbus,
)
def test_main_watches_the_config_dir_if_monitor_mode_is_specified_and_includes_allowed(
self,
):
self.parse_nginx_config_reloader_arguments.return_value.allow_includes = True
self.parse_nginx_config_reloader_arguments.return_value.monitor = True
main()
self.wait_loop.assert_called_once_with(
logger=self.get_logger.return_value,
no_magento_config=self.parse_nginx_config_reloader_arguments.return_value.nomagentoconfig,
no_custom_config=self.parse_nginx_config_reloader_arguments.return_value.nocustomconfig,
dir_to_watch=self.parse_nginx_config_reloader_arguments.return_value.watchdir,
recursive_watch=self.parse_nginx_config_reloader_arguments.return_value.recursivewatch,
use_systemd=self.parse_nginx_config_reloader_arguments.return_value.use_systemd,
no_dbus=self.parse_nginx_config_reloader_arguments.return_value.no_dbus,
)
def test_main_does_not_reload_the_config_once_if_monitor_mode_is_specified(self):
self.parse_nginx_config_reloader_arguments.return_value.monitor = True
main()
self.assertFalse(self.reloader.called)
def test_main_returns_nonzero_if_monitor_mode_and_loop_returns(self):
self.parse_nginx_config_reloader_arguments.return_value.monitor = True
ret = main()
self.assertEqual(1, ret)
def test_main_passes_no_dbus_to_wait_loop(self):
self.parse_nginx_config_reloader_arguments.return_value.no_dbus = True
self.parse_nginx_config_reloader_arguments.return_value.monitor = True
main()
self.wait_loop.assert_called_once_with(
logger=self.get_logger.return_value,
no_magento_config=self.parse_nginx_config_reloader_arguments.return_value.nomagentoconfig,
no_custom_config=self.parse_nginx_config_reloader_arguments.return_value.nocustomconfig,
dir_to_watch=self.parse_nginx_config_reloader_arguments.return_value.watchdir,
recursive_watch=self.parse_nginx_config_reloader_arguments.return_value.recursivewatch,
use_systemd=self.parse_nginx_config_reloader_arguments.return_value.use_systemd,
no_dbus=True,
)