|
17 | 17 | import unittest |
18 | 18 | from unittest.mock import Mock, patch |
19 | 19 |
|
20 | | -from opentelemetry.sdk._logs import LoggerProvider |
| 20 | +from opentelemetry._logs import LogRecord, SeverityNumber |
| 21 | +from opentelemetry.sdk._logs import LoggerProvider, ReadableLogRecord |
21 | 22 | from opentelemetry.sdk._logs._internal import ( |
22 | 23 | NoOpLogger, |
23 | 24 | SynchronousMultiLogRecordProcessor, |
@@ -85,3 +86,36 @@ def test_logger_provider_init(self, resource_patch): |
85 | 86 | ) |
86 | 87 | ) |
87 | 88 | self.assertIsNotNone(logger_provider._at_exit_handler) |
| 89 | + |
| 90 | + |
| 91 | +class TestReadableLogRecord(unittest.TestCase): |
| 92 | + def setUp(self): |
| 93 | + self.log_record = LogRecord( |
| 94 | + timestamp=1234567890, |
| 95 | + observed_timestamp=1234567891, |
| 96 | + body="Test log message", |
| 97 | + attributes={"key": "value"}, |
| 98 | + severity_number=SeverityNumber.INFO, |
| 99 | + severity_text="INFO", |
| 100 | + ) |
| 101 | + self.resource = Resource({"service.name": "test-service"}) |
| 102 | + self.readable_log_record = ReadableLogRecord( |
| 103 | + log_record=self.log_record, |
| 104 | + resource=self.resource, |
| 105 | + instrumentation_scope=None, |
| 106 | + ) |
| 107 | + |
| 108 | + def test_readable_log_record_is_frozen(self): |
| 109 | + """Test that ReadableLogRecord is frozen and cannot be modified.""" |
| 110 | + with self.assertRaises((AttributeError, TypeError)): |
| 111 | + self.readable_log_record.log_record = LogRecord( |
| 112 | + timestamp=999, |
| 113 | + body="Modified" |
| 114 | + ) |
| 115 | + |
| 116 | + def test_readable_log_record_can_read_attributes(self): |
| 117 | + """Test that ReadableLogRecord provides read access to all fields.""" |
| 118 | + self.assertEqual(self.readable_log_record.log_record.timestamp, 1234567890) |
| 119 | + self.assertEqual(self.readable_log_record.log_record.body, "Test log message") |
| 120 | + self.assertEqual(self.readable_log_record.log_record.attributes["key"], "value") |
| 121 | + self.assertEqual(self.readable_log_record.resource.attributes["service.name"], "test-service") |
0 commit comments