Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-opentelemetry-sdk for
openSUSE:Factory checked in at 2025-11-21 16:53:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-opentelemetry-sdk (Old)
and /work/SRC/openSUSE:Factory/.python-opentelemetry-sdk.new.2061 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-opentelemetry-sdk"
Fri Nov 21 16:53:39 2025 rev:14 rq:1318868 version:1.38.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-opentelemetry-sdk/python-opentelemetry-sdk.changes
2025-09-23 16:05:42.383650471 +0200
+++
/work/SRC/openSUSE:Factory/.python-opentelemetry-sdk.new.2061/python-opentelemetry-sdk.changes
2025-11-21 16:54:08.619951699 +0100
@@ -1,0 +2,10 @@
+Mon Nov 17 21:21:56 UTC 2025 - Dirk Müller <[email protected]>
+
+- update to 1.38.0:
+ * Add `rstcheck` to pre-commit to stop introducing invalid RST
+ * logs: extend Logger.emit to accept separated keyword
+ arguments
+ * logs: add warnings for classes that would be deprecated and
+ renamed in 1.39.0
+
+-------------------------------------------------------------------
Old:
----
opentelemetry_sdk-1.37.0.tar.gz
New:
----
opentelemetry_sdk-1.38.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-opentelemetry-sdk.spec ++++++
--- /var/tmp/diff_new_pack.dM4oPs/_old 2025-11-21 16:54:09.355982715 +0100
+++ /var/tmp/diff_new_pack.dM4oPs/_new 2025-11-21 16:54:09.359982883 +0100
@@ -26,7 +26,7 @@
%endif
%{?sle15_python_module_pythons}
Name: python-opentelemetry-sdk%{psuffix}
-Version: 1.37.0
+Version: 1.38.0
Release: 0
Summary: OpenTelemetry Python SDK
License: Apache-2.0
@@ -38,14 +38,14 @@
%if %{with test}
BuildRequires: %{python_module flaky}
BuildRequires: %{python_module opentelemetry-sdk = %{version}}
-BuildRequires: %{python_module opentelemetry-test-utils = 0.58b0}
+BuildRequires: %{python_module opentelemetry-test-utils = 0.59b0}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module typing-extensions >= 3.7.4}
%endif
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-opentelemetry-api = %{version}
-Requires: python-opentelemetry-semantic-conventions = 0.58b0
+Requires: python-opentelemetry-semantic-conventions = 0.59b0
Requires: python-typing-extensions >= 3.7.4
BuildArch: noarch
%python_subpackages
++++++ opentelemetry_sdk-1.37.0.tar.gz -> opentelemetry_sdk-1.38.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opentelemetry_sdk-1.37.0/PKG-INFO
new/opentelemetry_sdk-1.38.0/PKG-INFO
--- old/opentelemetry_sdk-1.37.0/PKG-INFO 2020-02-02 01:00:00.000000000
+0100
+++ new/opentelemetry_sdk-1.38.0/PKG-INFO 2020-02-02 01:00:00.000000000
+0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: opentelemetry-sdk
-Version: 1.37.0
+Version: 1.38.0
Summary: OpenTelemetry Python SDK
Project-URL: Homepage,
https://github.com/open-telemetry/opentelemetry-python/tree/main/opentelemetry-sdk
Project-URL: Repository, https://github.com/open-telemetry/opentelemetry-python
@@ -19,8 +19,8 @@
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.9
-Requires-Dist: opentelemetry-api==1.37.0
-Requires-Dist: opentelemetry-semantic-conventions==0.58b0
+Requires-Dist: opentelemetry-api==1.38.0
+Requires-Dist: opentelemetry-semantic-conventions==0.59b0
Requires-Dist: typing-extensions>=4.5.0
Description-Content-Type: text/x-rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opentelemetry_sdk-1.37.0/pyproject.toml
new/opentelemetry_sdk-1.38.0/pyproject.toml
--- old/opentelemetry_sdk-1.37.0/pyproject.toml 2020-02-02 01:00:00.000000000
+0100
+++ new/opentelemetry_sdk-1.38.0/pyproject.toml 2020-02-02 01:00:00.000000000
+0100
@@ -26,8 +26,8 @@
"Typing :: Typed",
]
dependencies = [
- "opentelemetry-api == 1.37.0",
- "opentelemetry-semantic-conventions == 0.58b0",
+ "opentelemetry-api == 1.38.0",
+ "opentelemetry-semantic-conventions == 0.59b0",
"typing-extensions >= 4.5.0",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_sdk-1.37.0/src/opentelemetry/sdk/_events/__init__.py
new/opentelemetry_sdk-1.38.0/src/opentelemetry/sdk/_events/__init__.py
--- old/opentelemetry_sdk-1.37.0/src/opentelemetry/sdk/_events/__init__.py
2020-02-02 01:00:00.000000000 +0100
+++ new/opentelemetry_sdk-1.38.0/src/opentelemetry/sdk/_events/__init__.py
2020-02-02 01:00:00.000000000 +0100
@@ -11,7 +11,9 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
import logging
+import warnings
from time import time_ns
from typing import Optional
@@ -20,7 +22,12 @@
from opentelemetry._events import EventLogger as APIEventLogger
from opentelemetry._events import EventLoggerProvider as APIEventLoggerProvider
from opentelemetry._logs import NoOpLogger, SeverityNumber, get_logger_provider
-from opentelemetry.sdk._logs import Logger, LoggerProvider, LogRecord
+from opentelemetry.sdk._logs import (
+ LogDeprecatedInitWarning,
+ Logger,
+ LoggerProvider,
+ LogRecord,
+)
from opentelemetry.util.types import _ExtendedAttributes
_logger = logging.getLogger(__name__)
@@ -50,18 +57,23 @@
# Do nothing if SDK is disabled
return
span_context = trace.get_current_span().get_span_context()
- log_record = LogRecord(
- timestamp=event.timestamp or time_ns(),
- observed_timestamp=None,
- trace_id=event.trace_id or span_context.trace_id,
- span_id=event.span_id or span_context.span_id,
- trace_flags=event.trace_flags or span_context.trace_flags,
- severity_text=None,
- severity_number=event.severity_number or SeverityNumber.INFO,
- body=event.body,
- resource=getattr(self._logger, "resource", None),
- attributes=event.attributes,
- )
+
+ # silence deprecation warnings from internal users
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore", category=LogDeprecatedInitWarning)
+
+ log_record = LogRecord(
+ timestamp=event.timestamp or time_ns(),
+ observed_timestamp=None,
+ trace_id=event.trace_id or span_context.trace_id,
+ span_id=event.span_id or span_context.span_id,
+ trace_flags=event.trace_flags or span_context.trace_flags,
+ severity_text=None,
+ severity_number=event.severity_number or SeverityNumber.INFO,
+ body=event.body,
+ resource=getattr(self._logger, "resource", None),
+ attributes=event.attributes,
+ )
self._logger.emit(log_record)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_sdk-1.37.0/src/opentelemetry/sdk/_logs/_internal/__init__.py
new/opentelemetry_sdk-1.38.0/src/opentelemetry/sdk/_logs/_internal/__init__.py
---
old/opentelemetry_sdk-1.37.0/src/opentelemetry/sdk/_logs/_internal/__init__.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_sdk-1.38.0/src/opentelemetry/sdk/_logs/_internal/__init__.py
2020-02-02 01:00:00.000000000 +0100
@@ -85,7 +85,7 @@
class LogDeprecatedInitWarning(UserWarning):
- """Custom warning to indicate deprecated LogRecord init was used.
+ """Custom warning to indicate that deprecated and soon to be deprecated
Log classes was used.
This class is used to filter and handle these specific warnings separately
from other warnings, ensuring that they are only shown once without
@@ -234,16 +234,21 @@
limits: LogLimits | None = None,
event_name: str | None = None,
):
- if trace_id or span_id or trace_flags:
- warnings.warn(
- "LogRecord init with `trace_id`, `span_id`, and/or
`trace_flags` is deprecated since 1.35.0. Use `context` instead.",
- LogDeprecatedInitWarning,
- stacklevel=2,
- )
-
+ warnings.warn(
+ "LogRecord will be removed in 1.39.0 and replaced by
ReadWriteLogRecord and ReadableLogRecord",
+ LogDeprecatedInitWarning,
+ stacklevel=2,
+ )
if not context:
context = get_current()
+ if trace_id or span_id or trace_flags:
+ warnings.warn(
+ "LogRecord init with `trace_id`, `span_id`, and/or
`trace_flags` is deprecated since 1.35.0. Use `context` instead.",
+ LogDeprecatedInitWarning,
+ stacklevel=2,
+ )
+
span = get_current_span(context)
span_context = span.get_span_context()
@@ -358,6 +363,11 @@
log_record: LogRecord,
instrumentation_scope: InstrumentationScope,
):
+ warnings.warn(
+ "LogData will be removed in 1.39.0 and replaced by
ReadWriteLogRecord and ReadableLogRecord",
+ LogDeprecatedInitWarning,
+ stacklevel=2,
+ )
self.log_record = log_record
self.instrumentation_scope = instrumentation_scope
@@ -599,7 +609,7 @@
)
return attributes
- def _translate(self, record: logging.LogRecord) -> LogRecord:
+ def _translate(self, record: logging.LogRecord) -> dict:
timestamp = int(record.created * 1e9)
observered_timestamp = time_ns()
attributes = self._get_attributes(record)
@@ -633,17 +643,15 @@
"WARN" if record.levelname == "WARNING" else record.levelname
)
- logger = get_logger(record.name, logger_provider=self._logger_provider)
- return LogRecord(
- timestamp=timestamp,
- observed_timestamp=observered_timestamp,
- context=get_current() or None,
- severity_text=level_name,
- severity_number=severity_number,
- body=body,
- resource=logger.resource,
- attributes=attributes,
- )
+ return {
+ "timestamp": timestamp,
+ "observed_timestamp": observered_timestamp,
+ "context": get_current() or None,
+ "severity_text": level_name,
+ "severity_number": severity_number,
+ "body": body,
+ "attributes": attributes,
+ }
def emit(self, record: logging.LogRecord) -> None:
"""
@@ -653,7 +661,7 @@
"""
logger = get_logger(record.name, logger_provider=self._logger_provider)
if not isinstance(logger, NoOpLogger):
- logger.emit(self._translate(record))
+ logger.emit(**self._translate(record))
def flush(self) -> None:
"""
@@ -692,16 +700,66 @@
def resource(self):
return self._resource
- def emit(self, record: APILogRecord):
+ @overload
+ def emit(
+ self,
+ *,
+ timestamp: int | None = None,
+ observed_timestamp: int | None = None,
+ context: Context | None = None,
+ severity_number: SeverityNumber | None = None,
+ severity_text: str | None = None,
+ body: AnyValue | None = None,
+ attributes: _ExtendedAttributes | None = None,
+ event_name: str | None = None,
+ ) -> None: ...
+
+ @overload
+ def emit( # pylint:disable=arguments-differ
+ self,
+ record: APILogRecord,
+ ) -> None: ...
+
+ def emit(
+ self,
+ record: APILogRecord | None = None,
+ *,
+ timestamp: int | None = None,
+ observed_timestamp: int | None = None,
+ context: Context | None = None,
+ severity_text: str | None = None,
+ severity_number: SeverityNumber | None = None,
+ body: AnyValue | None = None,
+ attributes: _ExtendedAttributes | None = None,
+ event_name: str | None = None,
+ ):
"""Emits the :class:`LogData` by associating :class:`LogRecord`
and instrumentation info.
"""
- if not isinstance(record, LogRecord):
- # pylint:disable=protected-access
- record = LogRecord._from_api_log_record(
- record=record, resource=self._resource
- )
- log_data = LogData(record, self._instrumentation_scope)
+
+ # silence deprecation warnings from internal users
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore", category=LogDeprecatedInitWarning)
+ if not record:
+ record = LogRecord(
+ timestamp=timestamp,
+ observed_timestamp=observed_timestamp,
+ context=context,
+ severity_text=severity_text,
+ severity_number=severity_number,
+ body=body,
+ attributes=attributes,
+ event_name=event_name,
+ resource=self._resource,
+ )
+ elif not isinstance(record, LogRecord):
+ # pylint:disable=protected-access
+ record = LogRecord._from_api_log_record(
+ record=record, resource=self._resource
+ )
+
+ log_data = LogData(record, self._instrumentation_scope)
+
self._multi_log_record_processor.on_emit(log_data)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_sdk-1.37.0/src/opentelemetry/sdk/_logs/_internal/export/__init__.py
new/opentelemetry_sdk-1.38.0/src/opentelemetry/sdk/_logs/_internal/export/__init__.py
---
old/opentelemetry_sdk-1.37.0/src/opentelemetry/sdk/_logs/_internal/export/__init__.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_sdk-1.38.0/src/opentelemetry/sdk/_logs/_internal/export/__init__.py
2020-02-02 01:00:00.000000000 +0100
@@ -26,7 +26,11 @@
detach,
set_value,
)
-from opentelemetry.sdk._logs import LogData, LogRecord, LogRecordProcessor
+from opentelemetry.sdk._logs import (
+ LogData,
+ LogRecord,
+ LogRecordProcessor,
+)
from opentelemetry.sdk._shared_internal import BatchProcessor, DuplicateFilter
from opentelemetry.sdk.environment_variables import (
OTEL_BLRP_EXPORT_TIMEOUT,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_sdk-1.37.0/src/opentelemetry/sdk/version/__init__.py
new/opentelemetry_sdk-1.38.0/src/opentelemetry/sdk/version/__init__.py
--- old/opentelemetry_sdk-1.37.0/src/opentelemetry/sdk/version/__init__.py
2020-02-02 01:00:00.000000000 +0100
+++ new/opentelemetry_sdk-1.38.0/src/opentelemetry/sdk/version/__init__.py
2020-02-02 01:00:00.000000000 +0100
@@ -12,4 +12,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-__version__ = "1.37.0"
+__version__ = "1.38.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_sdk-1.37.0/tests/logs/test_log_record.py
new/opentelemetry_sdk-1.38.0/tests/logs/test_log_record.py
--- old/opentelemetry_sdk-1.37.0/tests/logs/test_log_record.py 2020-02-02
01:00:00.000000000 +0100
+++ new/opentelemetry_sdk-1.38.0/tests/logs/test_log_record.py 2020-02-02
01:00:00.000000000 +0100
@@ -21,12 +21,14 @@
from opentelemetry.attributes import BoundedAttributes
from opentelemetry.context import get_current
from opentelemetry.sdk._logs import (
+ LogData,
LogDeprecatedInitWarning,
LogDroppedAttributesWarning,
LogLimits,
LogRecord,
)
from opentelemetry.sdk.resources import Resource
+from opentelemetry.sdk.util.instrumentation import InstrumentationScope
from opentelemetry.trace.span import TraceFlags
@@ -142,11 +144,22 @@
attributes=attr,
limits=limits,
)
- self.assertEqual(len(cw), 1)
- self.assertIsInstance(cw[-1].message, LogDroppedAttributesWarning)
+
+ # Check that at least one LogDroppedAttributesWarning was emitted
+ dropped_attributes_warnings = [
+ w for w in cw if isinstance(w.message, LogDroppedAttributesWarning)
+ ]
+ self.assertEqual(
+ len(dropped_attributes_warnings),
+ 1,
+ "Expected exactly one LogDroppedAttributesWarning due to
simplefilter('once')",
+ )
+
+ # Check the message content of the LogDroppedAttributesWarning
+ warning_message = str(dropped_attributes_warnings[0].message)
self.assertIn(
"Log record attributes were dropped due to limits",
- str(cw[-1].message),
+ warning_message,
)
def test_log_record_dropped_attributes_unset_limits(self):
@@ -159,7 +172,7 @@
self.assertTrue(result.dropped_attributes == 0)
self.assertEqual(attr, result.attributes)
- def test_log_record_deprecated_init_warning(self):
+ def test_log_record_context_deprecated_init_warning(self):
test_cases = [
{"trace_id": 123},
{"span_id": 123},
@@ -172,17 +185,66 @@
for _ in range(10):
LogRecord(**params)
- self.assertEqual(len(cw), 1)
- self.assertIsInstance(cw[-1].message, LogDeprecatedInitWarning)
- self.assertIn(
- "LogRecord init with `trace_id`, `span_id`, and/or
`trace_flags` is deprecated since 1.35.0. Use `context` instead.",
- str(cw[-1].message),
- )
+ # Check that the LogDeprecatedInitWarning was emitted
+ context_deprecated_warnings = [
+ w
+ for w in cw
+ if isinstance(w.message, LogDeprecatedInitWarning)
+ ]
+ self.assertEqual(len(context_deprecated_warnings), 2)
+
+ # Check we have the expected message once
+ log_record_context_warning = [
+ w.message
+ for w in cw
+ if "LogRecord init with `trace_id`, `span_id`, and/or
`trace_flags` is deprecated since 1.35.0. Use `context` instead."
+ in str(w.message)
+ ]
+
+ self.assertEqual(len(log_record_context_warning), 1)
with warnings.catch_warnings(record=True) as cw:
for _ in range(10):
LogRecord(context=get_current())
- self.assertEqual(len(cw), 0)
+
+ # Check that no LogDeprecatedInitWarning was emitted when using context
+ context_deprecated_warnings = [
+ w for w in cw if isinstance(w.message, LogDeprecatedInitWarning)
+ ]
+ self.assertEqual(len(context_deprecated_warnings), 1)
+
+ # Check we have no message
+ log_record_context_warning = [
+ w.message
+ for w in cw
+ if "LogRecord init with `trace_id`, `span_id`, and/or
`trace_flags` is deprecated since 1.35.0. Use `context` instead."
+ in str(w.message)
+ ]
+
+ self.assertEqual(len(log_record_context_warning), 0)
+
+ def test_log_record_init_deprecated_warning(self):
+ """Test that LogRecord initialization emits a
LogDeprecatedInitWarning."""
+ with warnings.catch_warnings(record=True) as cw:
+ warnings.simplefilter("always")
+ LogRecord()
+
+ # Check that at least one LogDeprecatedInitWarning was emitted
+ log_record_init_warnings = [
+ w for w in cw if isinstance(w.message, LogDeprecatedInitWarning)
+ ]
+ self.assertGreater(
+ len(log_record_init_warnings),
+ 0,
+ "Expected at least one LogDeprecatedInitWarning",
+ )
+
+ # Check the message content of the LogDeprecatedInitWarning
+ warning_message = str(log_record_init_warnings[0].message)
+ self.assertIn(
+ "LogRecord will be removed in 1.39.0 and replaced by
ReadWriteLogRecord and ReadableLogRecord",
+ warning_message,
+ )
# pylint:disable=protected-access
def test_log_record_from_api_log_record(self):
@@ -217,3 +279,33 @@
self.assertEqual(record.attributes, {"a": "b"})
self.assertEqual(record.event_name, "an.event")
self.assertEqual(record.resource, resource)
+
+
+class TestLogData(unittest.TestCase):
+ def test_init_deprecated_warning(self):
+ """Test that LogData initialization emits a
LogDeprecatedInitWarning."""
+ log_record = LogRecord()
+
+ with warnings.catch_warnings(record=True) as cw:
+ warnings.simplefilter("always")
+ LogData(
+ log_record=log_record,
+ instrumentation_scope=InstrumentationScope("foo", "bar"),
+ )
+
+ # Check that at least one LogDeprecatedInitWarning was emitted
+ init_warnings = [
+ w for w in cw if isinstance(w.message, LogDeprecatedInitWarning)
+ ]
+ self.assertGreater(
+ len(init_warnings),
+ 0,
+ "Expected at least one LogDeprecatedInitWarning",
+ )
+
+ # Check the message content of the LogDeprecatedInitWarning
+ warning_message = str(init_warnings[0].message)
+ self.assertIn(
+ "LogData will be removed in 1.39.0 and replaced by
ReadWriteLogRecord and ReadableLogRecord",
+ warning_message,
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opentelemetry_sdk-1.37.0/tests/logs/test_logs.py
new/opentelemetry_sdk-1.38.0/tests/logs/test_logs.py
--- old/opentelemetry_sdk-1.37.0/tests/logs/test_logs.py 2020-02-02
01:00:00.000000000 +0100
+++ new/opentelemetry_sdk-1.38.0/tests/logs/test_logs.py 2020-02-02
01:00:00.000000000 +0100
@@ -18,7 +18,13 @@
from unittest.mock import Mock, patch
from opentelemetry._logs import LogRecord as APILogRecord
-from opentelemetry.sdk._logs import Logger, LoggerProvider, LogRecord
+from opentelemetry._logs import SeverityNumber
+from opentelemetry.context import get_current
+from opentelemetry.sdk._logs import (
+ Logger,
+ LoggerProvider,
+ LogRecord,
+)
from opentelemetry.sdk._logs._internal import (
NoOpLogger,
SynchronousMultiLogRecordProcessor,
@@ -116,6 +122,7 @@
log_record_processor_mock.on_emit.assert_called_once()
log_data = log_record_processor_mock.on_emit.call_args.args[0]
self.assertTrue(isinstance(log_data.log_record, LogRecord))
+ self.assertTrue(log_data.log_record is log_record)
def test_can_emit_api_logrecord(self):
logger, log_record_processor_mock = self._get_logger()
@@ -126,4 +133,41 @@
logger.emit(api_log_record)
log_record_processor_mock.on_emit.assert_called_once()
log_data = log_record_processor_mock.on_emit.call_args.args[0]
- self.assertTrue(isinstance(log_data.log_record, LogRecord))
+ log_record = log_data.log_record
+ self.assertTrue(isinstance(log_record, LogRecord))
+ self.assertEqual(log_record.timestamp, None)
+ self.assertEqual(log_record.observed_timestamp, 0)
+ self.assertEqual(log_record.context, {})
+ self.assertEqual(log_record.severity_number, None)
+ self.assertEqual(log_record.severity_text, None)
+ self.assertEqual(log_record.body, "a log line")
+ self.assertEqual(log_record.attributes, {})
+ self.assertEqual(log_record.event_name, None)
+ self.assertEqual(log_record.resource, logger.resource)
+
+ def test_can_emit_with_keywords_arguments(self):
+ logger, log_record_processor_mock = self._get_logger()
+
+ logger.emit(
+ timestamp=100,
+ observed_timestamp=101,
+ context=get_current(),
+ severity_number=SeverityNumber.WARN,
+ severity_text="warn",
+ body="a body",
+ attributes={"some": "attributes"},
+ event_name="event_name",
+ )
+ log_record_processor_mock.on_emit.assert_called_once()
+ log_data = log_record_processor_mock.on_emit.call_args.args[0]
+ log_record = log_data.log_record
+ self.assertTrue(isinstance(log_record, LogRecord))
+ self.assertEqual(log_record.timestamp, 100)
+ self.assertEqual(log_record.observed_timestamp, 101)
+ self.assertEqual(log_record.context, {})
+ self.assertEqual(log_record.severity_number, SeverityNumber.WARN)
+ self.assertEqual(log_record.severity_text, "warn")
+ self.assertEqual(log_record.body, "a body")
+ self.assertEqual(log_record.attributes, {"some": "attributes"})
+ self.assertEqual(log_record.event_name, "event_name")
+ self.assertEqual(log_record.resource, logger.resource)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opentelemetry_sdk-1.37.0/tests/test_configurator.py
new/opentelemetry_sdk-1.38.0/tests/test_configurator.py
--- old/opentelemetry_sdk-1.37.0/tests/test_configurator.py 2020-02-02
01:00:00.000000000 +0100
+++ new/opentelemetry_sdk-1.38.0/tests/test_configurator.py 2020-02-02
01:00:00.000000000 +0100
@@ -113,7 +113,19 @@
self.resource = resource
self.processor = processor
- def emit(self, record):
+ def emit(
+ self,
+ record=None,
+ *,
+ timestamp=None,
+ observed_timestamp=None,
+ context=None,
+ severity_number=None,
+ severity_text=None,
+ body=None,
+ attributes=None,
+ event_name=None,
+ ):
self.processor.emit(record)