69 lines
2.1 KiB
Python
69 lines
2.1 KiB
Python
# tmp_path fixture:
|
|
# https://docs.pytest.org/en/6.2.x/tmpdir.html
|
|
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
from icecream import ic # type: ignore
|
|
from playwright.sync_api import BrowserContext, expect
|
|
|
|
from pytest_abra import BaseUrl
|
|
from pytest_abra.html_helper import merge_html_reports
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def session_tmp_path(tmp_path_factory: pytest.TempPathFactory) -> Path:
|
|
return tmp_path_factory.mktemp("html_test")
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def html_file(session_tmp_path: Path) -> Path:
|
|
"""combines all generated pytest html reports into one"""
|
|
|
|
in_dir_path = Path(__file__).parent / "assets" / "html_merge"
|
|
in_dir_path = in_dir_path.resolve()
|
|
ic(in_dir_path)
|
|
|
|
html_file = session_tmp_path / "test.html"
|
|
|
|
merge_html_reports(in_dir_path.as_posix(), html_file.as_posix(), "combined.html")
|
|
return html_file
|
|
|
|
|
|
def test_merge_html(html_file: Path):
|
|
assert html_file.is_file()
|
|
assert html_file.parent.is_dir()
|
|
assert next(html_file.parent.glob("*"))
|
|
|
|
|
|
# @pytest.mark.slow
|
|
# def test_check_result_with_playwright(html_file: Path, context: BrowserContext):
|
|
# assert html_file.is_file()
|
|
|
|
# file_url = BaseUrl(netloc=html_file.as_posix(), scheme="file").get()
|
|
|
|
# page = context.new_page()
|
|
# page.goto(file_url)
|
|
|
|
# # check if combined is correct
|
|
# expect(page.get_by_text("2 Passed,")).to_be_visible()
|
|
# expect(page.get_by_text("2 Failed,")).to_be_visible()
|
|
# expect(page.get_by_text("tests ran in 12.946 seconds")).to_be_visible()
|
|
|
|
# # check if heading is correct
|
|
# expect(page.get_by_role("heading", name="combined.html")).to_be_visible()
|
|
|
|
# # check if traceback is included
|
|
# expect(page.get_by_text("E AssertionError: One or more")).to_be_visible()
|
|
|
|
# # check if asset works
|
|
# with page.expect_popup() as page1_info:
|
|
# page.get_by_role("link", name="Authentik Blueprint Status").click()
|
|
# page1 = page1_info.value
|
|
|
|
# # see if content of txt file is correct
|
|
# expect(page1.get_by_text("failed")).to_be_visible()
|
|
|
|
|
|
def test_demo(context: BrowserContext):
|
|
assert True
|