def test_set_flow_run_state_with_error(patch_post): response = { "data": {"setFlowRunState": None}, "errors": [{"message": "something went wrong"}], } post = patch_post(response) with set_temporary_config( {"cloud.api": "http://my-cloud.foo", "cloud.auth_token": "secret_token"} ): client = Client() with pytest.raises(ClientError, match="something went wrong"): client.set_flow_run_state(flow_run_id="74-salt", version=0, state=Pending())
def test_set_flow_run_state_with_error(monkeypatch): response = { "data": {"setFlowRunState": None}, "errors": [{"message": "something went wrong"}], } post = MagicMock(return_value=MagicMock(json=MagicMock(return_value=response))) monkeypatch.setattr("requests.post", post) with set_temporary_config( {"cloud.graphql": "http://my-cloud.foo", "cloud.auth_token": "secret_token"} ): client = Client() with pytest.raises(ClientError) as exc: client.set_flow_run_state(flow_run_id="74-salt", version=0, state=Pending()) assert "something went wrong" in str(exc.value)
def test_set_flow_run_state_gets_queued(patch_post): response = { "data": { "set_flow_run_states": { "states": [{ "id": "74-salt", "status": "QUEUED", "message": None }] } } } post = patch_post(response) with set_temporary_config({ "cloud.api": "http://my-cloud.foo", "cloud.auth_token": "secret_token", "backend": "cloud", }): client = Client() state = Running() result = client.set_flow_run_state(flow_run_id="74-salt", version=0, state=state) assert isinstance(result, State) assert state != result assert result.is_queued()
def test_set_flow_run_state_uses_config_queue_interval(patch_post, interval_seconds, monkeypatch): response = { "data": { "set_flow_run_states": { "states": [{ "id": "74-salt", "status": "QUEUED", "message": None }] } } } post = patch_post(response) with set_temporary_config({ "cloud.api": "http://my-cloud.foo", "cloud.auth_token": "secret_token", "backend": "cloud", "cloud.queue_interval": interval_seconds, }): client = Client() # Mocking the concept of "now" so we can have consistent assertions now = pendulum.now("UTC") mock_now = MagicMock(return_value=now) monkeypatch.setattr("prefect.client.client.pendulum.now", mock_now) result = client.set_flow_run_state(flow_run_id="74-salt", version=0, state=Running()) mock_now.assert_called_once() assert now.add(seconds=interval_seconds) == result.start_time
def test_set_flow_run_state(patch_post): response = { "data": { "set_flow_run_states": { "states": [{ "id": 1, "status": "SUCCESS", "message": None }] } } } post = patch_post(response) with set_temporary_config({ "cloud.api": "http://my-cloud.foo", "cloud.auth_token": "secret_token" }): client = Client() state = Pending() result = client.set_flow_run_state(flow_run_id="74-salt", version=0, state=state) assert isinstance(result, State) assert isinstance(result, Pending)
def test_set_flow_run_state(patch_post): response = {"data": {"setFlowRunState": {"id": 1}}} post = patch_post(response) with set_temporary_config( {"cloud.api": "http://my-cloud.foo", "cloud.auth_token": "secret_token"} ): client = Client() result = client.set_flow_run_state( flow_run_id="74-salt", version=0, state=Pending() ) assert result is None
def test_set_flow_run_state(monkeypatch): response = {"data": {"setFlowRunState": {"id": 1}}} post = MagicMock(return_value=MagicMock(json=MagicMock(return_value=response))) monkeypatch.setattr("requests.post", post) with set_temporary_config( {"cloud.graphql": "http://my-cloud.foo", "cloud.auth_token": "secret_token"} ): client = Client() result = client.set_flow_run_state( flow_run_id="74-salt", version=0, state=Pending() ) assert result is None