def test_bad_register_class(self): """ Trying to register a class with invalid/missing parameters passed to `register()` must raise a `ValueError` or `AttributeError` exception. """ registered = len(TaskRegistry.all()) # Register a class without the name of the method to register with self.assertRaisesRegex(TypeError, 'getattr()'): register('dummy-task')(MyTaskHolder) # Register a class with an invalid `coro_name` arg with self.assertRaisesRegex(TypeError, 'getattr()'): register('dummy-task', object())(MyTaskHolder) # Register a class with a wrong method name with self.assertRaisesRegex(AttributeError, 'yolo'): register('dummy-task', 'yolo')(MyTaskHolder) # No new item must have been registered self.assertEqual(registered, len(TaskRegistry.all()))
def test_register_not_coroutine(self): """ Trying to register a function or method that is not a coroutine must raise a `TypeError` exception. """ err = 'not a coroutine function' registered = len(TaskRegistry.all()) # A regular function cannot be registered with self.assertRaisesRegex(TypeError, err): register('dummy')(my_func) # A generator cannot be registered either with self.assertRaisesRegex(TypeError, err): register('dummy')(my_gen) with self.assertRaisesRegex(TypeError, err): register('dummy')(my_gen()) # A simple method is not a valid task with self.assertRaisesRegex(TypeError, err): register('dummy-task', 'dummy')(BadInitTaskHolder3) # No new item must have been registered self.assertEqual(registered, len(TaskRegistry.all()))