Декоратор работает и выполняет то что от него требуется.
Возникла необходимость протестировать его с помошью py.test (и только им)
и вот с этим у меня как то не срастается.
вот модуль декоратора
#-*- coding: utf-8 -*- from functools import wraps import threading import time def background_worker(interval): ''' Запускает декорированную функцию в отдельном потоке с задержкой в interval ''' def my_decorator(func): @wraps(func) # корректируем параметр __name__ у оборачиваемой функции def wrapper(): # дополнительная функция на основании которой мы создадим поток def inner(): while True: time.sleep(interval) func() # создаем настраивам и запускаем поток t = threading.Thread(target=inner) t.setDaemon(True) t.start() return wrapper return my_decorator
вот модуль теста
import pytest from mydecorator import background_worker @background_worker(1) def _job(): print "Job" return 'Job' def test_decorator(): print 'Func Name:'+_job.__name__ assert _job.__name__=='_job','Function Name OK' t_job=_job() if __name__=='__main__': test_decorator()