def test_observer_1_exception(self, caplog): gvm.set_variable("wait_observer_1", 0.1) gvm.set_variable("observer_1_exception", True) self.run_state_machine() self.assert_no_errors() assert_all_false(gvm.get_variable("inner_observer_1_finish"), gvm.get_variable("observer_1_finish"), gvm.get_variable("observer_1_finish"), gvm.get_variable("observer_2_finish")) testing_utils.assert_logger_warnings_and_errors(caplog, 0, 1)
def test_inner_observer_1_error(self, caplog): gvm.set_variable("wait_inner_observer_1", 0.1) gvm.set_variable("inner_observer_1_abort", True) self.run_state_machine() assert_gvm("inner_error_handler", False) assert_gvm("error_handler") assert_gvm("error_handler_2") assert_all_false(gvm.get_variable("inner_observer_1_finish"), gvm.get_variable("observer_1_finish"), gvm.get_variable("observer_1_finish"), gvm.get_variable("observer_2_finish")) testing_utils.assert_logger_warnings_and_errors(caplog, 0)
def test_observer_2_finish(self, caplog): gvm.set_variable("wait_observer_2", 0.1) self.run_state_machine() self.assert_no_errors() assert_gvm("observer_2_finish") assert_gvm("inner_exit_handler") assert_gvm("exit_handler") assert_gvm("exit_handler_2") assert_all_false(gvm.get_variable("inner_observer_2_finish"), gvm.get_variable("inner_observer_1_finish"), gvm.get_variable("observer_1_finish")) testing_utils.assert_logger_warnings_and_errors(caplog, 0)
def test_preemptive_wait2_timeout(caplog): with testing_utils.test_multithreading_lock: gvm.set_variable('state_2_wait', 0.5) gvm.set_variable('state_1_wait', 1.) run_state_machine() assert 0.5 < gvm.get_variable('state_2_wait_time') assert gvm.get_variable('state_1_preempted') assert not gvm.get_variable('state_2_preempted') testing_utils.assert_logger_warnings_and_errors(caplog)
def test_preemptive_wait_daemon(caplog): with testing_utils.test_multithreading_lock: gvm.set_variable('state_1_wait', 0.5) gvm.set_variable('state_2_wait', None) run_state_machine() assert 0.5 < gvm.get_variable('state_1_wait_time') # cannot assert this as state 2 may be launched later and will thus have a shorter execution time # assert 0.5 < gvm.get_variable('state_2_wait_time') assert not gvm.get_variable('state_1_preempted') assert gvm.get_variable('state_2_preempted') testing_utils.assert_logger_warnings_and_errors(caplog)
def test_default_run(self, caplog): gvm.set_variable("wait_inner_observer_1", 1) gvm.set_variable("wait_inner_observer_2", 1) gvm.set_variable("wait_observer_1", 1) gvm.set_variable("wait_observer_2", 1) self.run_state_machine() self.assert_no_errors() testing_utils.assert_logger_warnings_and_errors(caplog, 0)
def test_preemptive_wait_timeout(caplog): testing_utils.test_multithreading_lock.acquire() gvm.set_variable('state_1_wait', 0.5) gvm.set_variable('state_2_wait', 1.) run_state_machine() try: assert 0.5 < gvm.get_variable('state_1_wait_time') assert not gvm.get_variable('state_1_preempted') assert gvm.get_variable('state_2_preempted') testing_utils.assert_logger_warnings_and_errors(caplog) finally: testing_utils.test_multithreading_lock.release()
def setup(self): # This methods runs before each test method and resets the global variables gvm.set_variable("wait_inner_observer_1", 10) gvm.set_variable("wait_inner_observer_2", 10) gvm.set_variable("wait_observer_1", 10) gvm.set_variable("wait_observer_2", 10) gvm.set_variable("inner_error_handler", False) gvm.set_variable("inner_exit_handler", False) gvm.set_variable("error_handler", False) gvm.set_variable("error_handler_2", False) gvm.set_variable("exit_handler", False) gvm.set_variable("exit_handler_2", False) gvm.set_variable("inner_observer_1_abort", False) gvm.set_variable("inner_observer_1_exception", False) gvm.set_variable("observer_1_abort", False) gvm.set_variable("observer_1_exception", False) gvm.set_variable("observer_1_finish", False) gvm.set_variable("observer_2_finish", False) gvm.set_variable("inner_observer_1_finish", False) gvm.set_variable("inner_observer_2_finish", False)