def test_with_arguments(self): go('hello', world='world') Dummy().go('hello', world='world') metrics = self._query_backend() assert len([m for m in metrics if m.value['name'] == get_fqn(go)]) == 1 assert len([m for m in metrics if m.value['name'] == get_fqn(Dummy().go)]) == 1
def test_with_arguments(self): go('hello', world='world') Dummy().go('hello', world='world') metrics = self._query_backend(get_fqn(go)) self.assertEqual(metrics['hits']['total'], 1) metrics = self._query_backend(get_fqn(Dummy().go)) self.assertEqual(metrics['hits']['total'], 1)
def test_with_arguments(self): go('hello', world='world') Dummy().go('hello', world='world') metrics = list(self._query_backend(get_fqn(go))) self.assertEqual(len(metrics), 1) metrics = list(self._query_backend(get_fqn(Dummy().go))) self.assertEqual(len(metrics), 1)
def test_with_arguments(self): go("hello", world="world") Dummy().go("hello", world="world") metrics = list(self._query_backend(get_fqn(go))) self.assertEqual(len(metrics), 1) metrics = list(self._query_backend(get_fqn(Dummy().go))) self.assertEqual(len(metrics), 1)
def test_with_arguments(self): go("hello", world="world") Dummy().go("hello", world="world") metrics = self._query_backend(get_fqn(go)) self.assertEqual(metrics["hits"]["total"], 1) metrics = self._query_backend(get_fqn(Dummy().go)) self.assertEqual(metrics["hits"]["total"], 1)
def test_old_hooks(self): def old_hook(response, exception, metric, func_args, func_kwargs): return dict(old_hook='old_hook') def new_hook(response, exception, metric, func, func_args, func_kwargs): return dict(new_hook='new_hook', attribute_from_class=func.__self__.attr) class Class: attr = 1 @time_execution def method(self): return True with settings(backends=[CollectorBackend()], hooks=[old_hook, new_hook]): collector = settings.backends[0] Class().method() assert len(collector.metrics) == 1 metadata = collector.metrics[0][get_fqn(Class().method)] assert "old_hook" in metadata assert "new_hook" in metadata assert metadata["attribute_from_class"] == Class.attr
async def test_decorated_method(self): class User: @AsyncDecorator async def method(self, a): return a assert get_fqn(User().method) == \ 'tests.test_fqn_decorators_async.User.method'
def test_decorated_method(self): class User: @AsyncDecorator async def method(self, a): return a assert get_fqn(User( ).method) == "tests.test_fqn_decorators_asynchronous.User.method"
def test_decorated_class(self): assert fqn_decorators.get_fqn(examples.A) == 'tests.examples.A'
async def test_decorated_method_async(self): assert get_fqn(AsyncDecorator().before) == \ 'fqn_decorators.async.AsyncDecorator.before'
def test_decorated_method(self): assert fqn_decorators.get_fqn(examples.A().method) == \ 'tests.examples.A.method'
def test_decorated_inherited_method(self): assert fqn_decorators.get_fqn(InheritedExample().method) == \ 'tests.test_fqn_decorators.InheritedExample.method'
def test_decorated_function(self): assert fqn_decorators.get_fqn( examples.my_test_func) == "tests.examples.my_test_func"
def test_method(self): assert fqn_decorators.get_fqn(fqn_decorators.Decorator().before) == \ 'fqn_decorators.decorators.Decorator.before'
def test_function(self): assert fqn_decorators.get_fqn(fqn_decorators.get_fqn) == \ 'fqn_decorators.decorators.get_fqn'
def test_decorated_method_async(self): assert get_fqn(AsyncDecorator().before ) == "fqn_decorators.asynchronous.AsyncDecorator.before"
def test_custom_hook(self): with settings(backends=[CollectorBackend()], hooks=[global_hook]): collector = settings.backends[0] @time_execution(extra_hooks=[local_hook]) def func_local_hook(*args, **kwargs): return True func_local_hook() assert len(collector.metrics) == 1 metadata = collector.metrics[0][func_local_hook.get_fqn()] assert metadata["local_hook_key"] == "local hook value" assert metadata["global_hook_key"] == "global hook value" collector.clean() @time_execution(extra_hooks=[local_hook], disable_default_hooks=True) def func_local_hook_disable_default_hooks(*args, **kwargs): return True func_local_hook_disable_default_hooks() assert len(collector.metrics) == 1 metadata = collector.metrics[0][func_local_hook_disable_default_hooks.get_fqn()] assert metadata["local_hook_key"] == "local hook value" assert "global_hook_key" not in metadata collector.clean() @time_execution def func_global_hook(*args, **kwargs): return True func_global_hook() assert len(collector.metrics) == 1 metadata = collector.metrics[0][func_global_hook.get_fqn()] assert metadata["global_hook_key"] == "global hook value" assert "local_hook_key" not in metadata collector.clean() class ClassNoHooks: @time_execution(extra_hooks=[local_hook]) def method_local_hook(self): return True @time_execution def method_global_hook(self): return True ClassNoHooks().method_local_hook() assert len(collector.metrics) == 1 metadata = collector.metrics[0][ClassNoHooks().method_local_hook.get_fqn()] assert metadata["global_hook_key"] == "global hook value" assert metadata["local_hook_key"] == "local hook value" collector.clean() ClassNoHooks().method_global_hook() assert len(collector.metrics) == 1 metadata = collector.metrics[0][ClassNoHooks().method_global_hook.get_fqn()] assert metadata["global_hook_key"] == "global hook value" assert "local_hook_key" not in metadata collector.clean() @time_execution(extra_hooks=[local_hook]) class ClassLocalHook: def method(self): return True @time_execution def method_global_hook(self): return True ClassLocalHook().method() assert len(collector.metrics) == 1 metadata = collector.metrics[0][get_fqn(ClassLocalHook)] assert metadata["global_hook_key"] == "global hook value" assert metadata["local_hook_key"] == "local hook value" collector.clean() ClassLocalHook().method_global_hook() assert len(collector.metrics) == 2 metadata_class = collector.metrics[0][get_fqn(ClassLocalHook)] assert metadata_class["local_hook_key"] == "local hook value" assert metadata_class["global_hook_key"] == "global hook value" metadata = collector.metrics[1][ClassLocalHook().method_global_hook.get_fqn()] assert metadata["global_hook_key"] == "global hook value" assert "local_hook_key" not in metadata collector.clean() @time_execution class ClassGlobalHook: def method(self): return True @time_execution(extra_hooks=[local_hook]) def method_local_hook(self): return True ClassGlobalHook().method() assert len(collector.metrics) == 1 metadata = collector.metrics[0][get_fqn(ClassGlobalHook)] assert metadata["global_hook_key"] == "global hook value" assert "local_hook_key" not in metadata collector.clean() ClassGlobalHook().method_local_hook() assert len(collector.metrics) == 2 metadata_class = collector.metrics[0][get_fqn(ClassGlobalHook)] assert metadata_class["global_hook_key"] == "global hook value" assert "local_hook_key" not in metadata_class metadata = collector.metrics[1][ClassGlobalHook().method_local_hook.get_fqn()] assert metadata["global_hook_key"] == "global hook value" assert metadata["local_hook_key"] == "local hook value" collector.clean()
def test_decorated_class(self): assert fqn_decorators.get_fqn(examples.A) == "tests.examples.A"
def test_decorated_method(self): assert fqn_decorators.get_fqn( examples.A().method) == "tests.examples.A.method"
def test_method(self): assert fqn_decorators.get_fqn(fqn_decorators.Decorator( ).before) == "fqn_decorators.decorators.Decorator.before"
def test_class(self): assert fqn_decorators.get_fqn( fqn_decorators.Decorator) == "fqn_decorators.decorators.Decorator"
async def test_class_async(self): assert get_fqn(AsyncDecorator) == \ 'fqn_decorators.async.AsyncDecorator'
def test_decorated_function(self): assert fqn_decorators.get_fqn(examples.my_test_func) == \ 'tests.examples.my_test_func'
def test_class_async(self): assert get_fqn( AsyncDecorator) == "fqn_decorators.asynchronous.AsyncDecorator"
def test_class(self): assert fqn_decorators.get_fqn(fqn_decorators.Decorator) == \ 'fqn_decorators.decorators.Decorator'
def test_decorated_inherited_method(self): assert fqn_decorators.get_fqn(InheritedExample( ).method) == "tests.test_fqn_decorators.InheritedExample.method"
def test_function(self): assert fqn_decorators.get_fqn( fqn_decorators.get_fqn) == "fqn_decorators.decorators.get_fqn"