- Add wrapt2.patch for compatibility with wrapt v2 OBS-URL: https://build.opensuse.org/request/show/1325383 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-opentelemetry-instrumentation?expand=0&rev=15
118 lines
5.0 KiB
Diff
118 lines
5.0 KiB
Diff
Index: opentelemetry_instrumentation-0.60b0/tests/test_utils.py
|
|
===================================================================
|
|
--- opentelemetry_instrumentation-0.60b0.orig/tests/test_utils.py
|
|
+++ opentelemetry_instrumentation-0.60b0/tests/test_utils.py
|
|
@@ -15,7 +15,11 @@
|
|
import unittest
|
|
from http import HTTPStatus
|
|
|
|
-from wrapt import ObjectProxy, wrap_function_wrapper
|
|
+from wrapt import wrap_function_wrapper
|
|
+try:
|
|
+ from wrapt import BaseObjectProxy
|
|
+except ImportError:
|
|
+ from wrapt import ObjectProxy as BaseObjectProxy
|
|
|
|
from opentelemetry.context import (
|
|
_SUPPRESS_HTTP_INSTRUMENTATION_KEY,
|
|
@@ -263,23 +267,23 @@ class UnwrapTestCase(unittest.TestCase):
|
|
def test_can_unwrap_object_attribute(self):
|
|
self._wrap_method()
|
|
instance = WrappedClass()
|
|
- self.assertTrue(isinstance(instance.method, ObjectProxy))
|
|
+ self.assertTrue(isinstance(instance.method, BaseObjectProxy))
|
|
|
|
unwrap(WrappedClass, "method")
|
|
- self.assertFalse(isinstance(instance.method, ObjectProxy))
|
|
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
|
|
|
|
def test_can_unwrap_object_attribute_as_string(self):
|
|
self._wrap_method()
|
|
instance = WrappedClass()
|
|
- self.assertTrue(isinstance(instance.method, ObjectProxy))
|
|
+ self.assertTrue(isinstance(instance.method, BaseObjectProxy))
|
|
|
|
unwrap("tests.test_utils.WrappedClass", "method")
|
|
- self.assertFalse(isinstance(instance.method, ObjectProxy))
|
|
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
|
|
|
|
def test_raises_import_error_if_path_not_well_formed(self):
|
|
self._wrap_method()
|
|
instance = WrappedClass()
|
|
- self.assertTrue(isinstance(instance.method, ObjectProxy))
|
|
+ self.assertTrue(isinstance(instance.method, BaseObjectProxy))
|
|
|
|
with self.assertRaisesRegex(
|
|
ImportError, "Cannot parse '' as dotted import path"
|
|
@@ -287,23 +291,23 @@ class UnwrapTestCase(unittest.TestCase):
|
|
unwrap("", "method")
|
|
|
|
unwrap(WrappedClass, "method")
|
|
- self.assertFalse(isinstance(instance.method, ObjectProxy))
|
|
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
|
|
|
|
def test_raises_import_error_if_cannot_find_module(self):
|
|
self._wrap_method()
|
|
instance = WrappedClass()
|
|
- self.assertTrue(isinstance(instance.method, ObjectProxy))
|
|
+ self.assertTrue(isinstance(instance.method, BaseObjectProxy))
|
|
|
|
with self.assertRaisesRegex(ImportError, "No module named 'does'"):
|
|
unwrap("does.not.exist.WrappedClass", "method")
|
|
|
|
unwrap(WrappedClass, "method")
|
|
- self.assertFalse(isinstance(instance.method, ObjectProxy))
|
|
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
|
|
|
|
def test_raises_import_error_if_cannot_find_object(self):
|
|
self._wrap_method()
|
|
instance = WrappedClass()
|
|
- self.assertTrue(isinstance(instance.method, ObjectProxy))
|
|
+ self.assertTrue(isinstance(instance.method, BaseObjectProxy))
|
|
|
|
with self.assertRaisesRegex(
|
|
ImportError, "Cannot import 'NotWrappedClass' from"
|
|
@@ -311,7 +315,7 @@ class UnwrapTestCase(unittest.TestCase):
|
|
unwrap("tests.test_utils.NotWrappedClass", "method")
|
|
|
|
unwrap(WrappedClass, "method")
|
|
- self.assertFalse(isinstance(instance.method, ObjectProxy))
|
|
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
|
|
|
|
# pylint: disable=no-self-use
|
|
def test_does_nothing_if_cannot_find_attribute(self):
|
|
@@ -320,6 +324,6 @@ class UnwrapTestCase(unittest.TestCase):
|
|
|
|
def test_does_nothing_if_attribute_is_not_from_wrapt(self):
|
|
instance = WrappedClass()
|
|
- self.assertFalse(isinstance(instance.method, ObjectProxy))
|
|
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
|
|
unwrap(WrappedClass, "method")
|
|
- self.assertFalse(isinstance(instance.method, ObjectProxy))
|
|
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
|
|
Index: opentelemetry_instrumentation-0.60b0/src/opentelemetry/instrumentation/utils.py
|
|
===================================================================
|
|
--- opentelemetry_instrumentation-0.60b0.orig/src/opentelemetry/instrumentation/utils.py
|
|
+++ opentelemetry_instrumentation-0.60b0/src/opentelemetry/instrumentation/utils.py
|
|
@@ -20,7 +20,10 @@ from importlib import import_module
|
|
from re import escape, sub
|
|
from typing import Any, Dict, Generator, Sequence
|
|
|
|
-from wrapt import ObjectProxy
|
|
+try:
|
|
+ from wrapt import BaseObjectProxy
|
|
+except ImportError:
|
|
+ from wrapt import ObjectProxy as BaseObjectProxy
|
|
|
|
from opentelemetry import context, trace
|
|
|
|
@@ -108,7 +111,7 @@ def unwrap(obj: object, attr: str):
|
|
) from exc
|
|
|
|
func = getattr(obj, attr, None)
|
|
- if func and isinstance(func, ObjectProxy) and hasattr(func, "__wrapped__"):
|
|
+ if func and isinstance(func, BaseObjectProxy) and hasattr(func, "__wrapped__"):
|
|
setattr(obj, attr, func.__wrapped__)
|
|
|
|
|