예제 #1
0
def test_botframework_attachments():
    from rasa.core.channels.botframework import BotFrameworkInput
    from copy import deepcopy

    ch = BotFrameworkInput("app_id", "app_pass")

    payload = {
        "type": "message",
        "id": "123",
        "channelId": "msteams",
        "serviceUrl": "https://smba.trafficmanager.net/emea/",
        "from": {
            "id": "12:123",
            "name": "Rasa",
            "aadObjectId": "123"
        },
        "conversation": {
            "conversationType": "personal",
            "tenantId": "123",
            "id": "a:123",
        },
        "recipient": {
            "id": "12:123",
            "name": "Rasa chat"
        },
    }
    assert ch.add_attachments_to_metadata(payload, None) is None

    attachments = [{
        "contentType": "application/vnd.microsoft.teams.file.download.info",
        "content": {
            "downloadUrl": "https://test.sharepoint.com/personal/rasa/123",
            "uniqueId": "123",
            "fileType": "csv",
        },
        "contentUrl": "https://test.sharepoint.com/personal/rasa/123",
        "name": "rasa-test.csv",
    }]
    payload["attachments"] = attachments

    assert ch.add_attachments_to_metadata(payload, None) == {
        "attachments": attachments
    }

    metadata = {"test": 1, "bigger_test": {"key": "value"}}
    updated_metadata = deepcopy(metadata)
    updated_metadata.update({"attachments": attachments})

    assert ch.add_attachments_to_metadata(payload,
                                          metadata) == updated_metadata
예제 #2
0
def test_botframework_channel():
    with mock.patch.object(sanic.Sanic, "run", fake_sanic_run):
        # START DOC INCLUDE
        from rasa.core.channels.botframework import BotFrameworkInput
        from rasa.core.agent import Agent
        from rasa.core.interpreter import RegexInterpreter

        # load your trained agent
        agent = Agent.load(MODEL_PATH, interpreter=RegexInterpreter())

        input_channel = BotFrameworkInput(
            # you get this from your Bot Framework account
            app_id="MICROSOFT_APP_ID",
            # also from your Bot Framework account
            app_password="******",
        )

        s = agent.handle_channels([input_channel], 5004)
        # END DOC INCLUDE
        # the above marker marks the end of the code snipped included
        # in the docs
        routes_list = utils.list_routes(s)
        assert routes_list.get("botframework_webhook.health").startswith(
            "/webhooks/botframework")
        assert routes_list.get("botframework_webhook.webhook").startswith(
            "/webhooks/botframework/webhook")
예제 #3
0
def test_botframework_channel():
    # START DOC INCLUDE
    from rasa.core.channels.botframework import BotFrameworkInput

    input_channel = BotFrameworkInput(
        # you get this from your Bot Framework account
        app_id="MICROSOFT_APP_ID",
        # also from your Bot Framework account
        app_password="******",
    )

    s = rasa.core.run.configure_app([input_channel], port=5004)
    # END DOC INCLUDE
    # the above marker marks the end of the code snipped included
    # in the docs
    routes_list = utils.list_routes(s)
    assert routes_list["botframework_webhook.health"].startswith(
        "/webhooks/botframework")
    assert routes_list["botframework_webhook.webhook"].startswith(
        "/webhooks/botframework/webhook")