|
26 | 26 | from tooz import coordination |
27 | 27 | from tooz.drivers.redis import RedisDriver |
28 | 28 |
|
| 29 | +import st2tests.config as tests_config |
29 | 30 | from st2actions.workflows import workflows |
30 | 31 | from st2common.bootstrap import actionsregistrar |
31 | 32 | from st2common.bootstrap import runnersregistrar |
@@ -92,7 +93,39 @@ def setUpClass(cls): |
92 | 93 | for pack in PACKS: |
93 | 94 | actions_registrar.register_from_pack(pack) |
94 | 95 |
|
| 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 | + |
95 | 126 | def test_process(self): |
| 127 | + self.reset_config() |
| 128 | + |
96 | 129 | wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml") |
97 | 130 | lv_ac_db = lv_db_models.LiveActionDB(action=wf_meta["name"]) |
98 | 131 | lv_ac_db, ac_ex_db = action_service.request(lv_ac_db) |
@@ -145,10 +178,8 @@ def test_process(self): |
145 | 178 |
|
146 | 179 | @mock.patch.object(RedisDriver, "get_lock") |
147 | 180 | 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 | + |
152 | 183 | expected_errors = [ |
153 | 184 | { |
154 | 185 | "message": "Execution failed. See result for details.", |
@@ -211,6 +242,8 @@ def test_process_error_handling(self, mock_get_lock): |
211 | 242 | mock.MagicMock(side_effect=Exception("Unexpected error.")), |
212 | 243 | ) |
213 | 244 | def test_process_error_handling_has_error(self, mock_get_lock): |
| 245 | + self.reset_config() |
| 246 | + |
214 | 247 | mock_get_lock.side_effect = coordination_service.NoOpLock(name="noop") |
215 | 248 | wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml") |
216 | 249 | 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): |
266 | 299 | self.assertEqual(lv_ac_db.status, action_constants.LIVEACTION_STATUS_CANCELED) |
267 | 300 |
|
268 | 301 | 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, |
280 | 307 | ) |
281 | 308 |
|
282 | 309 | wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml") |
@@ -337,9 +364,8 @@ def test_workflow_engine_shutdown(self): |
337 | 364 | mock.MagicMock(return_value=coordination_service.NoOpAsyncResult(("member-1",))), |
338 | 365 | ) |
339 | 366 | 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 | + |
343 | 369 | wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml") |
344 | 370 | lv_ac_db = lv_db_models.LiveActionDB(action=wf_meta["name"]) |
345 | 371 | 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): |
380 | 406 | self.assertEqual(lv_ac_db.status, action_constants.LIVEACTION_STATUS_RUNNING) |
381 | 407 |
|
382 | 408 | 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 | + |
386 | 411 | wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml") |
387 | 412 | lv_ac_db = lv_db_models.LiveActionDB(action=wf_meta["name"]) |
388 | 413 | 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): |
411 | 436 | mock.MagicMock(return_value=coordination_service.NoOpLock(name="noop")), |
412 | 437 | ) |
413 | 438 | 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 | + |
420 | 441 | wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml") |
421 | 442 | lv_ac_db = lv_db_models.LiveActionDB(action=wf_meta["name"]) |
422 | 443 | 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): |
468 | 489 | mock.MagicMock(return_value=coordination_service.NoOpLock(name="noop")), |
469 | 490 | ) |
470 | 491 | 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 | + |
477 | 494 | wf_meta = self.get_wf_fixture_meta_data(TEST_PACK_PATH, "sequential.yaml") |
478 | 495 | lv_ac_db = lv_db_models.LiveActionDB(action=wf_meta["name"]) |
479 | 496 | lv_ac_db, ac_ex_db = action_service.request(lv_ac_db) |
|
0 commit comments