Я столкнулся с проблемой доступности объектов, созданных в декораторе и необходимых в методе test_case
. Мой код, представленный ниже:
def execute_results_navigation(test_case):
def wrapper(self,*args,**kwargs):
result=Result()
pagination=Pagination()
results_page_index=1
while results_page_index<=pagination.get_pages_number():
for results_object_index in range(results.get_objects_number_per_single_page()):
test_case(self,*args,**kwargs)
pagination.set_active_page_number(results_page_index)
results_page_index+=1
return wrapper
Вместо test_case
в метод «внедряется» следующий код (все происходит с использованием предопределенного декоратора):
@execute_results_navigation
def test_check_availability_of_search_results(self):
"""
test case 2.22
"""
offer=Offer()
result.select_hotel(results_caller["button"],results_object_index)
offer_price=offer.get_offer_object_details().price
offer.verify_offer_availability(offer_price)
offer.back_to_search_results()
Метод
test_case
не имеет доступа к result
, pagination
объектам и results_object_index
переменным. Все объекты были инициализированы при вызове декоратора. Возможно, я делаю что-то не так с этим методом, но я подумал, что эти экземпляры существуют в методе wrapper
и доступ к ним не должен вызывать проблем.