Spaces:
Build error
Build error
Validify-testbot-1
/
botbuilder-python
/libraries
/botbuilder-dialogs
/tests
/test_date_time_prompt.py
# Copyright (c) Microsoft Corporation. All rights reserved. | |
# Licensed under the MIT License. | |
import aiounittest | |
from botbuilder.dialogs.prompts import DateTimePrompt, PromptOptions | |
from botbuilder.core import MessageFactory | |
from botbuilder.core import ConversationState, MemoryStorage, TurnContext | |
from botbuilder.dialogs import DialogSet, DialogTurnStatus | |
from botbuilder.core.adapters import TestAdapter, TestFlow | |
class DatetimePromptTests(aiounittest.AsyncTestCase): | |
async def test_date_time_prompt(self): | |
# Create new ConversationState with MemoryStorage and register the state as middleware. | |
conver_state = ConversationState(MemoryStorage()) | |
# Create a DialogState property | |
dialog_state = conver_state.create_property("dialogState") | |
# Create new DialogSet. | |
dialogs = DialogSet(dialog_state) | |
# Create and add DateTime prompt to DialogSet. | |
date_time_prompt = DateTimePrompt("DateTimePrompt") | |
dialogs.add(date_time_prompt) | |
# Initialize TestAdapter | |
async def exec_test(turn_context: TurnContext) -> None: | |
prompt_msg = "What date would you like?" | |
dialog_context = await dialogs.create_context(turn_context) | |
results = await dialog_context.continue_dialog() | |
if results.status == DialogTurnStatus.Empty: | |
options = PromptOptions(prompt=MessageFactory.text(prompt_msg)) | |
await dialog_context.begin_dialog("DateTimePrompt", options) | |
else: | |
if results.status == DialogTurnStatus.Complete: | |
resolution = results.result[0] | |
reply = MessageFactory.text( | |
f"Timex: '{resolution.timex}' Value: '{resolution.value}'" | |
) | |
await turn_context.send_activity(reply) | |
await conver_state.save_changes(turn_context) | |
adapt = TestAdapter(exec_test) | |
test_flow = TestFlow(None, adapt) | |
tf2 = await test_flow.send("hello") | |
tf3 = await tf2.assert_reply("What date would you like?") | |
tf4 = await tf3.send("5th December 2018 at 9am") | |
await tf4.assert_reply("Timex: '2018-12-05T09' Value: '2018-12-05 09:00:00'") | |