Вывод данных в консоль python
У меня есть код с проверками на статус страницы
from ATPages import SearchHelper
import requests
print("dsdsdsdsd")
#Проверка главной страницы расширения
def test_main(browser):
main_page = SearchHelper(browser)
main_page.go_to_site()
response = requests.head(browser.current_url)
assert response.status_code == 200
#Открываем коллекцию горячей подборки
def test_collection1(browser):
main_page = SearchHelper(browser)
#window_before = browser.window_handles[0] #Запоминаем предыдущую страницу
main_page.click_button_collection1()
#window_after = browser.window_handles[1] #Запоминаем новую страницу
#browser.switch_to.window(window_after) #Перемещаемся на новую страницу
response = requests.head(browser.current_url)
assert response.status_code == 200
browser.back()
print("asdasdasd23e24234")
#Бестселлеры
def test_collection2(browser):
main_page = SearchHelper(browser)
main_page.click_button_collection2()
response = requests.head(browser.current_url)
assert response.status_code == 200
browser.back()
#Покупатели рекомендуют
def test_collection3(browser):
main_page = SearchHelper(browser)
main_page.click_button_collection3()
response = requests.head(browser.current_url)
assert response.status_code == 200
print("response")
browser.back()
Первые принты для проверки выводит ли код вообще что-то, в последнем то, что я хочу видеть - ответ от сервера, но у меня не выводится ни один принт, подскажите в чем может быть проблема.
Вот что выводится в консоли
C:\Users\Александр\Desktop\Test AT>pytest test.py
==================================================================== test session starts =====================================================================
platform win32 -- Python 3.10.2, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
sensitiveurl: .*
rootdir: C:\Users\Александр\Desktop\Test AT
plugins: base-url-1.4.2, html-3.1.1, metadata-2.0.1, selenium-3.0.0, variables-1.9.0
collected 4 items
test.py
DevTools listening on ws://127.0.0.1:50346/devtools/browser/4a0dfb7d-a291-4398-8426-2801e080e630
.... [100%]
===================================================================== 4 passed in 15.65s =====================================================================
C:\Users\Александр\Desktop\Test AT>
P.S. Еще буду рад подсказке - как зайти в консоль и проверять переменные без print, знаю, что такой функционал есть, но никак не могу вспомнить
Ответы (1 шт):
Чтоб видеть вывод теста в консоль добавьте опцию -rP к запуску команды:
pytest -rP test.py
Не по теме вопроса:
browser.back()
не выполнится и вероятно, следующие тесты не пройду, если assert будет ложным и бросит исключение или какое-то другое исключение будет брошено.
Нужно делать так:
def test_collection2(browser):
main_page = SearchHelper(browser)
main_page.click_button_collection2()
try:
response = requests.head(browser.current_url)
assert response.status_code == 200
finally:
browser.back()
Или если в каждом тесте такое нужно делать, то можно это перенести в fixture и тогда явно в тесте это делать не нужно:
@pytest.fixture
def browser(browser):
try:
yield browser
finally:
browser.back()
def test_collection2(browser):
...
assert response.status_code == 200
# browser.back() делать не нужно, об этом позаботиться наша fixture