in dialogflow-cx/utilities.py [0:0]
def run_hermetic_test(sample):
"""Drives a hermetic sample test suite by mocking out client interactions."""
user_input = ["MOCK_USER_INPUT"]
with ExitStack() as stack:
patch_client(
sample.agent_delegator.client,
"create_agent",
stack,
return_value=cx.Agent(name="MOCK_AGENT_NAME"),
)
patch_client(
sample.webhook_delegator.client,
"create_webhook",
stack,
return_value=cx.Webhook(name="MOCK_WEBHOOK_NAME"),
)
patch_client(
sample.intent_delegator.client,
"create_intent",
stack,
return_value=cx.Intent(name="MOCK_INTENT_NAME"),
)
patch_client(
sample.page_delegator.client,
"create_page",
stack,
return_value=cx.Page(name="MOCK_PAGE_NAME"),
)
patch_client(
sample.start_flow_delegator.client,
"get_flow",
stack,
return_value=cx.Flow(name="MOCK_FLOW_NAME"),
)
patch_client(sample.page_delegator.client, "update_page", stack)
patch_client(sample.start_flow_delegator.client, "update_flow", stack)
lro = mock.create_autospec(Operation, instance=True, spec_set=True)
lro.running = lambda: False
patch_client(
sample.start_flow_delegator.client, "train_flow", stack, return_value=lro
)
patch_client(sample.page_delegator.client, "delete_page", stack)
patch_client(sample.intent_delegator.client, "delete_intent", stack)
patch_client(sample.webhook_delegator.client, "delete_webhook", stack)
patch_client(sample.agent_delegator.client, "delete_agent", stack)
patch_client(
sample.test_cases_client,
"create_test_case",
stack,
return_value=cx.TestCase(
name="MOCK_TEST_CASE_NAME",
display_name="MOCK_TEST_CASE_DISPLAY_NAME",
),
)
patch_client(sample.test_cases_client, "batch_delete_test_cases", stack)
patch_client(
sample.session_delegator.client,
"detect_intent",
stack,
return_value=cx.DetectIntentResponse(),
)
def result():
return cx.RunTestCaseResponse(
result=cx.TestCaseResult(
test_result=cx.TestResult.PASSED,
conversation_turns=[
cx.ConversationTurn(
virtual_agent_output=cx.ConversationTurn.VirtualAgentOutput(
differences=[],
)
)
],
)
)
lro = mock.create_autospec(Operation, instance=True, spec_set=True)
lro.result = result
patch_client(sample.test_cases_client, "run_test_case", stack, return_value=lro)
sample.setup()
sample.run(user_input, quiet=True)
sample.tear_down()