Я тестирую свой скрипт, который использует Selenium. Код выглядит следующим образом:
class ScoreCalculator:
# This is complicated setup for my script, with auth etc. I takes about 20 sec.
browser = browser_instance
def get_first_loan_id(self):
self.browser.get('I already patched this one')
...
# I would like to test this method.
Поскольку я исправляю ответ Selenium (содержимое на веб-сайте изменяется динамически, поэтому я сохранил снимок локально), мне не нужно проходить сложную часть инициализации браузера и тратить впустую20 секунд каждый раз, когда я запускаю эти тесты.
Я пытаюсь исправить переменную:
@mock.patch(
'app.browser_instance.browser_instance',
webdriver.Chrome(executable_path=r'/home/pitu/Desktop/chromedriver'),
)
Проблема этого процесса заключается в том, что переменная browser_instance оценивается до того, как она будет исправлена. Это выглядит так:
# First.
browser_instance = webdriver # Here evaluate browser_instance variable - takes 20sec
# Second.
browser_instance = light_webdriver # Replace with lightweight version - takes <1sec.
Есть ли способ исправить переменную без ее первоначальной оценки?