async def test_get_500_get_status_all_failed(binding_string): mock_request = MockRequest(expected_url=f"{RPC_BASE_URL}instances/", response=[500, MESSAGE_500]) client = DurableOrchestrationClient(binding_string) client._get_async_request = mock_request.get with pytest.raises(Exception): await client.get_status_all()
async def test_get_404_get_status_failed(binding_string): mock_request = MockRequest(expected_url=f"{RPC_BASE_URL}instances/{TEST_INSTANCE_ID}", response=[404, MESSAGE_404]) client = DurableOrchestrationClient(binding_string) client._get_async_request = mock_request.get result = await client.get_status(TEST_INSTANCE_ID) assert result is not None assert result.message == MESSAGE_404
async def test_get_200_get_status_success(binding_string): mock_request = MockRequest(expected_url=f"{RPC_BASE_URL}instances/{TEST_INSTANCE_ID}", response=[200, dict(createdTime=TEST_CREATED_TIME, lastUpdatedTime=TEST_LAST_UPDATED_TIME, runtimeStatus="Completed")]) client = DurableOrchestrationClient(binding_string) client._get_async_request = mock_request.get result = await client.get_status(TEST_INSTANCE_ID) assert result is not None assert result.runtime_status == "Completed"
async def test_wait_or_response_check_status_response(binding_string): status = dict(createdTime=TEST_CREATED_TIME, lastUpdatedTime=TEST_LAST_UPDATED_TIME, runtimeStatus="Running") mock_request = MockRequest(expected_url=f"{RPC_BASE_URL}instances/{TEST_INSTANCE_ID}", response=[200, status]) client = DurableOrchestrationClient(binding_string) client._get_async_request = mock_request.get with pytest.raises(Exception): await client.wait_for_completion_or_create_check_status_response( None, TEST_INSTANCE_ID, timeout_in_milliseconds=500)
async def test_wait_or_response_check_status_response(binding_string): status = dict(createdTime=TEST_CREATED_TIME, lastUpdatedTime=TEST_LAST_UPDATED_TIME, runtimeStatus="Running") mock_request = MockRequest(expected_url=f"{RPC_BASE_URL}instances/{TEST_INSTANCE_ID}", response=[200, status]) client = DurableOrchestrationClient(binding_string) client._get_async_request = mock_request.get request = Mock(url="http://test_azure.net/api/orchestrators/DurableOrchestrationTrigger") result = await client.wait_for_completion_or_create_check_status_response( request, TEST_INSTANCE_ID, timeout_in_milliseconds=2000) assert result is not None assert mock_request.get_count == 3
async def test_get_200_get_status_all_success(binding_string): mock_request = MockRequest(expected_url=f"{RPC_BASE_URL}instances/", response=[200, [dict(createdTime=TEST_CREATED_TIME, lastUpdatedTime=TEST_LAST_UPDATED_TIME, runtimeStatus="Running"), dict(createdTime=TEST_CREATED_TIME, lastUpdatedTime=TEST_LAST_UPDATED_TIME, runtimeStatus="Running") ]]) client = DurableOrchestrationClient(binding_string) client._get_async_request = mock_request.get result = await client.get_status_all() assert result is not None assert len(result) == 2
async def test_wait_or_response_200_failed(binding_string): status = dict(createdTime=TEST_CREATED_TIME, lastUpdatedTime=TEST_LAST_UPDATED_TIME, runtimeStatus="Failed") mock_request = MockRequest(expected_url=f"{RPC_BASE_URL}instances/{TEST_INSTANCE_ID}", response=[200, status]) client = DurableOrchestrationClient(binding_string) client._get_async_request = mock_request.get result = await client.wait_for_completion_or_create_check_status_response( None, TEST_INSTANCE_ID) assert result is not None assert result.status_code == 500 assert result.mimetype == 'application/json' assert json.loads(result.get_body().decode()) == DurableOrchestrationStatus.from_json( status).to_json()
async def test_wait_or_response_200_completed(binding_string): output = 'Some output' mock_request = MockRequest(expected_url=f"{RPC_BASE_URL}instances/{TEST_INSTANCE_ID}", response=[200, dict(createdTime=TEST_CREATED_TIME, lastUpdatedTime=TEST_LAST_UPDATED_TIME, runtimeStatus="Completed", output=output)]) client = DurableOrchestrationClient(binding_string) client._get_async_request = mock_request.get result = await client.wait_for_completion_or_create_check_status_response( None, TEST_INSTANCE_ID) assert result is not None assert result.status_code == 200 assert result.mimetype == 'application/json' assert result.get_body().decode() == output