mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-08-01 17:34:38 +08:00
Move DD code into its own directory (#6)
This commit is contained in:
67
reference/tests/contrib/test_utils.py
Normal file
67
reference/tests/contrib/test_utils.py
Normal file
@ -0,0 +1,67 @@
|
||||
from functools import partial
|
||||
from ddtrace.utils.importlib import func_name
|
||||
|
||||
|
||||
class SomethingCallable(object):
|
||||
"""
|
||||
A dummy class that implements __call__().
|
||||
"""
|
||||
value = 42
|
||||
|
||||
def __call__(self):
|
||||
return 'something'
|
||||
|
||||
def me(self):
|
||||
return self
|
||||
|
||||
@staticmethod
|
||||
def add(a, b):
|
||||
return a + b
|
||||
|
||||
@classmethod
|
||||
def answer(cls):
|
||||
return cls.value
|
||||
|
||||
|
||||
def some_function():
|
||||
"""
|
||||
A function doing nothing.
|
||||
"""
|
||||
return 'nothing'
|
||||
|
||||
|
||||
def minus(a, b):
|
||||
return a - b
|
||||
|
||||
|
||||
minus_two = partial(minus, b=2) # partial funcs need special handling (no module)
|
||||
|
||||
# disabling flake8 test below, yes, declaring a func like this is bad, we know
|
||||
plus_three = lambda x: x + 3 # noqa: E731
|
||||
|
||||
|
||||
class TestContrib(object):
|
||||
"""
|
||||
Ensure that contrib utility functions handles corner cases
|
||||
"""
|
||||
def test_func_name(self):
|
||||
# check that func_name works on anything callable, not only funcs.
|
||||
assert 'nothing' == some_function()
|
||||
assert 'tests.contrib.test_utils.some_function' == func_name(some_function)
|
||||
|
||||
f = SomethingCallable()
|
||||
assert 'something' == f()
|
||||
assert 'tests.contrib.test_utils.SomethingCallable' == func_name(f)
|
||||
|
||||
assert f == f.me()
|
||||
assert 'tests.contrib.test_utils.me' == func_name(f.me)
|
||||
assert 3 == f.add(1, 2)
|
||||
assert 'tests.contrib.test_utils.add' == func_name(f.add)
|
||||
assert 42 == f.answer()
|
||||
assert 'tests.contrib.test_utils.answer' == func_name(f.answer)
|
||||
|
||||
assert 'tests.contrib.test_utils.minus' == func_name(minus)
|
||||
assert 5 == minus_two(7)
|
||||
assert 'partial' == func_name(minus_two)
|
||||
assert 10 == plus_three(7)
|
||||
assert 'tests.contrib.test_utils.<lambda>' == func_name(plus_three)
|
Reference in New Issue
Block a user