Тестирование - исправление переменной перед ее оценкой - PullRequest
0 голосов
/ 06 октября 2019

Я тестирую свой скрипт, который использует 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.

Есть ли способ исправить переменную без ее первоначальной оценки?

...