Skip to content

Commit 5cfd1ff

Browse files
committed
DRY config setup in test_workflow_engine
1 parent c35d446 commit 5cfd1ff

File tree

1 file changed

+50
-33
lines changed

1 file changed

+50
-33
lines changed

st2actions/tests/unit/test_workflow_engine.py

Lines changed: 50 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from tooz import coordination
2727
from tooz.drivers.redis import RedisDriver
2828

29+
import st2tests.config as tests_config
2930
from st2actions.workflows import workflows
3031
from st2common.bootstrap import actionsregistrar
3132
from st2common.bootstrap import runnersregistrar
@@ -92,7 +93,39 @@ def setUpClass(cls):
9293
for pack in PACKS:
9394
actions_registrar.register_from_pack(pack)
9495

96+
@staticmethod
97+
def reset_config(
98+
graceful_shutdown=None, # default is True (st2common.config)
99+
exit_still_active_check=None, # default is 300 (st2common.config)
100+
still_active_check_interval=None, # default is 2 (st2common.config)
101+
service_registry=None, # default is False (st2common.config)
102+
):
103+
tests_config.reset()
104+
tests_config.parse_args()
105+
if graceful_shutdown is not None:
106+
cfg.CONF.set_override(
107+
name="graceful_shutdown", override=graceful_shutdown, group="actionrunner"
108+
)
109+
if exit_still_active_check is not None:
110+
cfg.CONF.set_override(
111+
name="exit_still_active_check",
112+
override=exit_still_active_check,
113+
group="workflow_engine",
114+
)
115+
if still_active_check_interval is not None:
116+
cfg.CONF.set_override(
117+
name="still_active_check_interval",
118+
override=still_active_check_interval,
119+
group="workflow_engine",
120+
)
121+
if service_registry is not None:
122+
cfg.CONF.set_override(
123+
name="service_registry", override=service_registry, group="coordination"
124+
)
125+
95126
def test_process(self):
127+
self.reset_config()
128+
96129
wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml")
97130
lv_ac_db = lv_db_models.LiveActionDB(action=wf_meta["name"])
98131
lv_ac_db, ac_ex_db = action_service.request(lv_ac_db)
@@ -145,10 +178,8 @@ def test_process(self):
145178

146179
@mock.patch.object(RedisDriver, "get_lock")
147180
def test_process_error_handling(self, mock_get_lock):
148-
# tests_config.parse_args() # maybe call self.reset()
149-
cfg.CONF.set_override(
150-
name="service_registry", override=True, group="coordination"
151-
)
181+
self.reset_config(service_registry=True)
182+
152183
expected_errors = [
153184
{
154185
"message": "Execution failed. See result for details.",
@@ -211,6 +242,8 @@ def test_process_error_handling(self, mock_get_lock):
211242
mock.MagicMock(side_effect=Exception("Unexpected error.")),
212243
)
213244
def test_process_error_handling_has_error(self, mock_get_lock):
245+
self.reset_config()
246+
214247
mock_get_lock.side_effect = coordination_service.NoOpLock(name="noop")
215248
wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml")
216249
lv_ac_db = lv_db_models.LiveActionDB(action=wf_meta["name"])
@@ -266,17 +299,11 @@ def test_process_error_handling_has_error(self, mock_get_lock):
266299
self.assertEqual(lv_ac_db.status, action_constants.LIVEACTION_STATUS_CANCELED)
267300

268301
def test_workflow_engine_shutdown(self):
269-
cfg.CONF.set_override(
270-
name="graceful_shutdown", override=True, group="actionrunner"
271-
)
272-
cfg.CONF.set_override(
273-
name="service_registry", override=True, group="coordination"
274-
)
275-
cfg.CONF.set_override(
276-
name="exit_still_active_check", override=4, group="workflow_engine"
277-
)
278-
cfg.CONF.set_override(
279-
name="still_active_check_interval", override=1, group="workflow_engine"
302+
self.reset_config(
303+
graceful_shutdown=True,
304+
exit_still_active_check=4,
305+
still_active_check_interval=1,
306+
service_registry=True,
280307
)
281308

282309
wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml")
@@ -337,9 +364,8 @@ def test_workflow_engine_shutdown(self):
337364
mock.MagicMock(return_value=coordination_service.NoOpAsyncResult(("member-1",))),
338365
)
339366
def test_workflow_engine_shutdown_with_multiple_members(self):
340-
cfg.CONF.set_override(
341-
name="service_registry", override=True, group="coordination"
342-
)
367+
self.reset_config(service_registry=True)
368+
343369
wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml")
344370
lv_ac_db = lv_db_models.LiveActionDB(action=wf_meta["name"])
345371
lv_ac_db, ac_ex_db = action_service.request(lv_ac_db)
@@ -380,9 +406,8 @@ def test_workflow_engine_shutdown_with_multiple_members(self):
380406
self.assertEqual(lv_ac_db.status, action_constants.LIVEACTION_STATUS_RUNNING)
381407

382408
def test_workflow_engine_shutdown_with_service_registry_disabled(self):
383-
cfg.CONF.set_override(
384-
name="service_registry", override=False, group="coordination"
385-
)
409+
self.reset_config(service_registry=True)
410+
386411
wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml")
387412
lv_ac_db = lv_db_models.LiveActionDB(action=wf_meta["name"])
388413
lv_ac_db, ac_ex_db = action_service.request(lv_ac_db)
@@ -411,12 +436,8 @@ def test_workflow_engine_shutdown_with_service_registry_disabled(self):
411436
mock.MagicMock(return_value=coordination_service.NoOpLock(name="noop")),
412437
)
413438
def test_workflow_engine_shutdown_first_then_start(self):
414-
cfg.CONF.set_override(
415-
name="service_registry", override=True, group="coordination"
416-
)
417-
cfg.CONF.set_override(
418-
name="exit_still_active_check", override=0, group="workflow_engine"
419-
)
439+
self.reset_config(service_registry=True, exit_still_active_check=0)
440+
420441
wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml")
421442
lv_ac_db = lv_db_models.LiveActionDB(action=wf_meta["name"])
422443
lv_ac_db, ac_ex_db = action_service.request(lv_ac_db)
@@ -468,12 +489,8 @@ def test_workflow_engine_shutdown_first_then_start(self):
468489
mock.MagicMock(return_value=coordination_service.NoOpLock(name="noop")),
469490
)
470491
def test_workflow_engine_start_first_then_shutdown(self):
471-
cfg.CONF.set_override(
472-
name="service_registry", override=True, group="coordination"
473-
)
474-
cfg.CONF.set_override(
475-
name="exit_still_active_check", override=0, group="workflow_engine"
476-
)
492+
self.reset_config(service_registry=True, exit_still_active_check=0)
493+
477494
wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml")
478495
lv_ac_db = lv_db_models.LiveActionDB(action=wf_meta["name"])
479496
lv_ac_db, ac_ex_db = action_service.request(lv_ac_db)

0 commit comments

Comments
 (0)