|  | 
| 20 | 20 |     _DependencyData, | 
| 21 | 21 |     _ExceptionData, | 
| 22 | 22 |     _RequestData, | 
|  | 23 | +    _TelemetryData, | 
| 23 | 24 | ) | 
| 24 | 25 | 
 | 
| 25 | 26 | 
 | 
|  | 27 | + | 
|  | 28 | +class TestTelemetryData(unittest.TestCase): | 
|  | 29 | + | 
|  | 30 | +    @patch("azure.monitor.opentelemetry.exporter._quickpulse._types._RequestData") | 
|  | 31 | +    def test_from_span_server_kind_server(self, fn_mock): | 
|  | 32 | +        span = Mock() | 
|  | 33 | +        span.kind = SpanKind.SERVER | 
|  | 34 | +        data_mock = Mock() | 
|  | 35 | +        fn_mock._from_span.return_value = data_mock | 
|  | 36 | +        result = _TelemetryData._from_span(span) | 
|  | 37 | +        self.assertEqual(result, data_mock) | 
|  | 38 | +        fn_mock._from_span.assert_called_once_with(span) | 
|  | 39 | + | 
|  | 40 | +    @patch("azure.monitor.opentelemetry.exporter._quickpulse._types._RequestData") | 
|  | 41 | +    def test_from_span_consumer_kind_(self, fn_mock): | 
|  | 42 | +        span = Mock() | 
|  | 43 | +        span.kind = SpanKind.CONSUMER | 
|  | 44 | +        data_mock = Mock() | 
|  | 45 | +        fn_mock._from_span.return_value = data_mock | 
|  | 46 | +        result = _TelemetryData._from_span(span) | 
|  | 47 | +        self.assertEqual(result, data_mock) | 
|  | 48 | +        fn_mock._from_span.assert_called_once_with(span) | 
|  | 49 | + | 
|  | 50 | +    @patch("azure.monitor.opentelemetry.exporter._quickpulse._types._DependencyData") | 
|  | 51 | +    def test_from_span_dependency_kind(self, fn_mock): | 
|  | 52 | +        span = Mock() | 
|  | 53 | +        span.kind = SpanKind.CLIENT | 
|  | 54 | +        data_mock = Mock() | 
|  | 55 | +        fn_mock._from_span.return_value = data_mock | 
|  | 56 | +        result = _TelemetryData._from_span(span) | 
|  | 57 | +        self.assertEqual(result, data_mock) | 
|  | 58 | +        fn_mock._from_span.assert_called_once_with(span) | 
|  | 59 | + | 
|  | 60 | +    @patch("azure.monitor.opentelemetry.exporter._quickpulse._types._ExceptionData") | 
|  | 61 | +    def test_from_log_record_with_exception(self, fn_mock): | 
|  | 62 | +        log_record = Mock() | 
|  | 63 | +        log_record.attributes = { | 
|  | 64 | +            SpanAttributes.EXCEPTION_TYPE: "SomeException", | 
|  | 65 | +            SpanAttributes.EXCEPTION_MESSAGE: "An error occurred" | 
|  | 66 | +        } | 
|  | 67 | +        data_mock = Mock() | 
|  | 68 | +        fn_mock._from_log_record.return_value = data_mock | 
|  | 69 | +        result = _TelemetryData._from_log_record(log_record) | 
|  | 70 | +        self.assertEqual(result, data_mock) | 
|  | 71 | +        fn_mock._from_log_record.assert_called_once_with(log_record) | 
|  | 72 | + | 
|  | 73 | +    @patch("azure.monitor.opentelemetry.exporter._quickpulse._types._TraceData") | 
|  | 74 | +    def test_from_log_record_without_exception(self, fn_mock): | 
|  | 75 | +        log_record = Mock() | 
|  | 76 | +        log_record.attributes = {} | 
|  | 77 | +        data_mock = Mock() | 
|  | 78 | +        fn_mock._from_log_record.return_value = data_mock | 
|  | 79 | +        result = _TelemetryData._from_log_record(log_record) | 
|  | 80 | +        self.assertEqual(result, data_mock) | 
|  | 81 | +        fn_mock._from_log_record.assert_called_once_with(log_record) | 
|  | 82 | + | 
|  | 83 | + | 
| 26 | 84 | class TestRequestData(unittest.TestCase): | 
| 27 | 85 | 
 | 
| 28 | 86 |     @patch("azure.monitor.opentelemetry.exporter.export.trace._utils._get_url_for_http_request") | 
|  | 
0 commit comments