diff options
Diffstat (limited to 'taskflow/tests/unit/test_utils.py')
| -rw-r--r-- | taskflow/tests/unit/test_utils.py | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/taskflow/tests/unit/test_utils.py b/taskflow/tests/unit/test_utils.py index 56e3919..c69b769 100644 --- a/taskflow/tests/unit/test_utils.py +++ b/taskflow/tests/unit/test_utils.py @@ -19,266 +19,11 @@ import inspect import random import time -import six -import testtools - from taskflow import test -from taskflow.tests import utils as test_utils -from taskflow.types import failure -from taskflow.utils import lock_utils from taskflow.utils import misc -from taskflow.utils import reflection from taskflow.utils import threading_utils -def mere_function(a, b): - pass - - -def function_with_defs(a, b, optional=None): - pass - - -def function_with_kwargs(a, b, **kwargs): - pass - - -class Class(object): - - def method(self, c, d): - pass - - @staticmethod - def static_method(e, f): - pass - - @classmethod - def class_method(cls, g, h): - pass - - -class CallableClass(object): - def __call__(self, i, j): - pass - - -class ClassWithInit(object): - def __init__(self, k, l): - pass - - -class CallbackEqualityTest(test.TestCase): - def test_different_simple_callbacks(self): - - def a(): - pass - - def b(): - pass - - self.assertFalse(reflection.is_same_callback(a, b)) - - def test_static_instance_callbacks(self): - - class A(object): - - @staticmethod - def b(a, b, c): - pass - - a = A() - b = A() - - self.assertTrue(reflection.is_same_callback(a.b, b.b)) - - def test_different_instance_callbacks(self): - - class A(object): - def b(self): - pass - - def __eq__(self, other): - return True - - b = A() - c = A() - - self.assertFalse(reflection.is_same_callback(b.b, c.b)) - self.assertTrue(reflection.is_same_callback(b.b, c.b, strict=False)) - - -class GetCallableNameTest(test.TestCase): - - def test_mere_function(self): - name = reflection.get_callable_name(mere_function) - self.assertEqual(name, '.'.join((__name__, 'mere_function'))) - - def test_method(self): - name = reflection.get_callable_name(Class.method) - self.assertEqual(name, '.'.join((__name__, 'Class', 'method'))) - - def test_instance_method(self): - name = reflection.get_callable_name(Class().method) - self.assertEqual(name, '.'.join((__name__, 'Class', 'method'))) - - def test_static_method(self): - name = reflection.get_callable_name(Class.static_method) - if six.PY3: - self.assertEqual(name, - '.'.join((__name__, 'Class', 'static_method'))) - else: - # NOTE(imelnikov): static method are just functions, class name - # is not recorded anywhere in them. - self.assertEqual(name, - '.'.join((__name__, 'static_method'))) - - def test_class_method(self): - name = reflection.get_callable_name(Class.class_method) - self.assertEqual(name, '.'.join((__name__, 'Class', 'class_method'))) - - def test_constructor(self): - name = reflection.get_callable_name(Class) - self.assertEqual(name, '.'.join((__name__, 'Class'))) - - def test_callable_class(self): - name = reflection.get_callable_name(CallableClass()) - self.assertEqual(name, '.'.join((__name__, 'CallableClass'))) - - def test_callable_class_call(self): - name = reflection.get_callable_name(CallableClass().__call__) - self.assertEqual(name, '.'.join((__name__, 'CallableClass', - '__call__'))) - - -# These extended/special case tests only work on python 3, due to python 2 -# being broken/incorrect with regard to these special cases... -@testtools.skipIf(not six.PY3, 'python 3.x is not currently available') -class GetCallableNameTestExtended(test.TestCase): - # Tests items in http://legacy.python.org/dev/peps/pep-3155/ - - class InnerCallableClass(object): - def __call__(self): - pass - - def test_inner_callable_class(self): - obj = self.InnerCallableClass() - name = reflection.get_callable_name(obj.__call__) - expected_name = '.'.join((__name__, 'GetCallableNameTestExtended', - 'InnerCallableClass', '__call__')) - self.assertEqual(expected_name, name) - - def test_inner_callable_function(self): - def a(): - - def b(): - pass - - return b - - name = reflection.get_callable_name(a()) - expected_name = '.'.join((__name__, 'GetCallableNameTestExtended', - 'test_inner_callable_function', '<locals>', - 'a', '<locals>', 'b')) - self.assertEqual(expected_name, name) - - def test_inner_class(self): - obj = self.InnerCallableClass() - name = reflection.get_callable_name(obj) - expected_name = '.'.join((__name__, - 'GetCallableNameTestExtended', - 'InnerCallableClass')) - self.assertEqual(expected_name, name) - - -class GetCallableArgsTest(test.TestCase): - - def test_mere_function(self): - result = reflection.get_callable_args(mere_function) - self.assertEqual(['a', 'b'], result) - - def test_function_with_defaults(self): - result = reflection.get_callable_args(function_with_defs) - self.assertEqual(['a', 'b', 'optional'], result) - - def test_required_only(self): - result = reflection.get_callable_args(function_with_defs, - required_only=True) - self.assertEqual(['a', 'b'], result) - - def test_method(self): - result = reflection.get_callable_args(Class.method) - self.assertEqual(['self', 'c', 'd'], result) - - def test_instance_method(self): - result = reflection.get_callable_args(Class().method) - self.assertEqual(['c', 'd'], result) - - def test_class_method(self): - result = reflection.get_callable_args(Class.class_method) - self.assertEqual(['g', 'h'], result) - - def test_class_constructor(self): - result = reflection.get_callable_args(ClassWithInit) - self.assertEqual(['k', 'l'], result) - - def test_class_with_call(self): - result = reflection.get_callable_args(CallableClass()) - self.assertEqual(['i', 'j'], result) - - def test_decorators_work(self): - @lock_utils.locked - def locked_fun(x, y): - pass - result = reflection.get_callable_args(locked_fun) - self.assertEqual(['x', 'y'], result) - - -class AcceptsKwargsTest(test.TestCase): - - def test_no_kwargs(self): - self.assertEqual( - reflection.accepts_kwargs(mere_function), False) - - def test_with_kwargs(self): - self.assertEqual( - reflection.accepts_kwargs(function_with_kwargs), True) - - -class GetClassNameTest(test.TestCase): - - def test_std_exception(self): - name = reflection.get_class_name(RuntimeError) - self.assertEqual(name, 'RuntimeError') - - def test_global_class(self): - name = reflection.get_class_name(failure.Failure) - self.assertEqual(name, 'taskflow.types.failure.Failure') - - def test_class(self): - name = reflection.get_class_name(Class) - self.assertEqual(name, '.'.join((__name__, 'Class'))) - - def test_instance(self): - name = reflection.get_class_name(Class()) - self.assertEqual(name, '.'.join((__name__, 'Class'))) - - def test_int(self): - name = reflection.get_class_name(42) - self.assertEqual(name, 'int') - - -class GetAllClassNamesTest(test.TestCase): - - def test_std_class(self): - names = list(reflection.get_all_class_names(RuntimeError)) - self.assertEqual(names, test_utils.RUNTIME_ERROR_CLASSES) - - def test_std_class_up_to(self): - names = list(reflection.get_all_class_names(RuntimeError, - up_to=Exception)) - self.assertEqual(names, test_utils.RUNTIME_ERROR_CLASSES[:-2]) - - class CachedPropertyTest(test.TestCase): def test_attribute_caching(self): |
