in libraries/botbuilder-applicationinsights/django_tests/tests.py [0:0]
def test_thrower(self):
"""Tests that unhandled exceptions generate an exception telemetry item parented to the request telemetry item"""
response = self.invoke_post("thrower")
self.assertEqual(response.status_code, 500)
errev, reqev = self.get_events(2)
# reqev = self.get_events(1)
# Check request event
tags = reqev["tags"]
data = reqev["data"]["baseData"]
reqid = tags["ai.operation.id"]
self.assertEqual(
reqev["name"], "Microsoft.ApplicationInsights.Request", "Event type"
)
self.assertEqual(reqev["iKey"], TEST_IKEY)
self.assertEqual(data["id"], reqid, "Request id")
self.assertEqual(data["responseCode"], 500, "Response code")
self.assertEqual(data["success"], False, "Success value")
self.assertEqual(data["name"], "POST /thrower", "Request name")
self.assertEqual(data["url"], "http://testserver/thrower", "Request url")
self.assertTrue(reqid, "Request id not empty")
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"
)
# Check exception event
tags = errev["tags"]
data = errev["data"]["baseData"]
self.assertEqual(
errev["name"], "Microsoft.ApplicationInsights.Exception", "Event type"
)
self.assertEqual(tags["ai.operation.parentId"], reqid, "Exception parent id")
self.assertEqual(len(data["exceptions"]), 1, "Exception count")
exc = data["exceptions"][0]
self.assertEqual(exc["typeName"], "ValueError", "Exception type")
self.assertEqual(exc["hasFullStack"], True, "Has full stack")
self.assertEqual(
exc["parsedStack"][0]["method"], "thrower", "Stack frame method name"
)
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"
)