def test_bot_event()

in libraries/botbuilder-applicationinsights/django_tests/tests.py [0:0]


    def test_bot_event(self):
        """Tests that traces logged from inside of a view are submitted and parented to the request telemetry item"""
        response = self.invoke_post("botlog_event")
        assert response.status_code == 200

        logev, reqev = self.get_events(2)

        # Check request event (minimal, since we validate this elsewhere)
        tags = reqev["tags"]
        data = reqev["data"]["baseData"]
        reqid = tags["ai.operation.id"]
        self.assertEqual(
            reqev["name"], "Microsoft.ApplicationInsights.Request", "Event type"
        )
        self.assertEqual(data["id"], reqid, "Request id")
        self.assertEqual(data["name"], "POST /botlog_event", "Operation name")
        self.assertEqual(data["url"], "http://testserver/botlog_event", "Request url")

        self.assertTrue(reqid, "Request id not empty")

        # Check log event
        tags = logev["tags"]
        data = logev["data"]["baseData"]
        self.assertEqual(
            logev["name"], "Microsoft.ApplicationInsights.Event", "Event type"
        )
        self.assertEqual(logev["iKey"], TEST_IKEY)
        self.assertEqual(data["name"], "botevent", "validate event name")
        self.assertEqual(data["properties"]["foo"], "bar", "foo=bar")
        self.assertEqual(data["properties"]["moo"], "cow", "moo=cow")
        # Test TelemetryProcessor properties
        self.assertEqual(tags["ai.user.id"], "SLACKFROMID")
        self.assertEqual(tags["ai.session.id"], "CONVERSATIONID")
        self.assertEqual(data["properties"]["channelId"], "SLACK", "channelId=SLACK")
        self.assertEqual(
            data["properties"]["activityId"], "bf3cc9a2f5de...", "activityID is set"
        )
        self.assertEqual(
            data["properties"]["activityType"], "message", "activityType == message"
        )