Здравствуйте. Не могу решить одну проблему. Пишу на пайтоне автотест с использованием Webdriver. Автотест проверяет страницы на 404\505 ошибки (дженкинс выдает 200-й реквест, пользователю показывает картинку с ошибкой.). Проблема с обработкой логов.
Коротко о структуре проекта:
мain.py - собственно наш запускаемый файл, вся логика, вызовы, обработчики лежат в нем;
test.py - наборы тестов. файл создан для более удобного содержания тестов и содержит только тесты, никаких обработчиков.
config.py - файл конфигурации, нам не пригодится.
В мain.py есть класс Log, там прописаны методы для логирования. Они работают не только в этом тесте, так что ошибки там нет.
Итак, в мain.py есть класс Fox. Его код:
class Fox:
@staticmethod
def handler(filename):
while True:
driver = WebDriver(executable_path=config.webdriver_location)
with open(filename, 'r') as file:
links = file.read().split('\n')
for link in links:
url = config.url + link
error_type = 'OK'
result_object = None
driver.get(url)
test.Hybris.start_categories_hybris(driver)
if error_type != 'OK':
Log.pages(link, result_object, error_type)
driver.quit()
В test.py есть класс Hybris. Его код:
class Hybris:
@staticmethod
def start_categories_hybris(driver):
start = Hybris()
start.error_404_505(driver)
@staticmethod
def error_404_505(driver):
error_type = 'OK'
result_object = None
try:
body = driver.find_element(By.TAG_NAME, 'body')
class_attribute = body.get_attribute('class')
if 'notFound' in class_attribute:
error_type = 'error_404'
elif 'error-page' in class_attribute:
error_type = 'error_505'
return error_type, result_object
except NoSuchElementException:
pass
Ну и запускаю я все это дело из файла main.py, вот так:
if __name__ == '__main__':
categories = threading.Thread(name='categories', target=Fox.handler(filename=config.categories_filename))
categories.start()
Проблема состоит в том, что метод из другого файла я вызываю верно, он обрабатывается (проверял), метод возвращает верные значения если считываю их из test.py(проверял), но main.py не принимает ретерн, а отображает только присвоенные значения.
Вопрос: как с помощью ретерна из одного файла я могу переопределить переменную в другом файле? Такое возможно? Спасибо зарание.