def test5_decorated_methods( self) : dwa = DecoratorRegistry.parametrized_decorator( decorator_with_args) jd = DecoratorRegistry.decorator( decorator_with_args) class TestClass( object): @jd @dwa(1, 2, 3) @free_decorator def test_method( self) : pass self.assertTrue( 'test_method' in next( DecoratorRegistry.decorated_methods( TestClass, jd))) self.assertTrue( 'test_method' in next( DecoratorRegistry.decorated_methods( TestClass, dwa))) self.assertFalse( len( list( DecoratorRegistry.decorated_methods( TestClass, free_decorator))) != 0)
def test3_parametrized_decorator( self) : @decorator_with_args(1, 2, 3) def somefunc( *args) : return args noregres = somefunc( 7, 7, 7) rdwa = DecoratorRegistry.parametrized_decorator( decorator_with_args) @rdwa(1, 2, 3) def somefunc2( *args) : return args regres = somefunc2( 7, 7, 7) self.assertEqual( noregres, regres) self.assertTrue( DecoratorRegistry.DECORATOR in somefunc2.__annotations__) self.assertTrue( DecoratorRegistry.NATIVE_FUNCTION in somefunc2.__annotations__) self.assertEqual( somefunc2.__annotations__[DecoratorRegistry.NATIVE_FUNCTION].__name__, 'somefunc2') self.assertTrue( DecoratorRegistry.DECORATORS in somefunc2.__annotations__[DecoratorRegistry.NATIVE_FUNCTION].__annotations__) self.assertTrue( rdwa in somefunc2.__annotations__[DecoratorRegistry.NATIVE_FUNCTION].__annotations__[DecoratorRegistry.DECORATORS])
def test4_is_decorated_with( self) : @decorator_with_args(1, 2, 3) def somefunc10( *args) : return args rdwa = DecoratorRegistry.parametrized_decorator( decorator_with_args) @rdwa(1, 2, 3) def somefunc20( *args) : return args @just_decorator def somefunc30( *args) : return args rjd = DecoratorRegistry.decorator( just_decorator) @rjd def somefunc40( *args) : return args self.assertFalse( DecoratorRegistry.is_decorated_with( somefunc10, decorator_with_args)) self.assertTrue( DecoratorRegistry.is_decorated_with( somefunc20, rdwa)) self.assertFalse( DecoratorRegistry.is_decorated_with( somefunc30, just_decorator)) self.assertTrue( DecoratorRegistry.is_decorated_with( somefunc40, rjd))