def test_wait_for_idle_timeout(self): mock_data_io = MagicMock() mock_data_io.get_api_data.return_value = {"idle": False} n = Node(mock_data_io) # TODO: Consider launching this method asynchronously # somehow to prevent deadlocks if the wait method has bugs in it start_time = time.time() final_is_idle_value = n.wait_for_idle(3.1) duration_in_seconds = time.time() - start_time self.assertGreaterEqual(duration_in_seconds, 3, "wait method should have taken at least 3 seconds to complete") self.assertFalse(final_is_idle_value)
def test_wait_for_idle(self): mock_data_io = MagicMock() def mock_get_api_data(): if not hasattr(mock_get_api_data, "is_called"): mock_get_api_data.is_called = True return {"idle": False} return {"idle": True} mock_data_io.get_api_data.side_effect = mock_get_api_data n = Node(mock_data_io) final_is_idle_value = n.wait_for_idle() self.assertTrue(final_is_idle_value) self.assertGreaterEqual( mock_data_io.get_api_data.call_count, 2, "Mock dataio object should have been called at least twice." )