Setup to create integration tests with Playwright

This commit is contained in:
David Larlet 2023-04-27 20:33:41 -04:00 committed by Yohan Boniface
parent d8b63974f9
commit 95bf685159
4 changed files with 26 additions and 1 deletions

View file

@ -8,6 +8,7 @@ install: ## Install the dependencies
.PHONY: develop .PHONY: develop
develop: ## Install the test and dev dependencies develop: ## Install the test and dev dependencies
python3 -m pip install -e .[test,dev] python3 -m pip install -e .[test,dev]
playwright install
.PHONY: pretty-templates .PHONY: pretty-templates
pretty-templates: ## Prettify template files pretty-templates: ## Prettify template files
@ -45,9 +46,12 @@ publish: ## Publish the Python package to Pypi
@hatch publish @hatch publish
make clean make clean
test: test:
py.test -xv umap/tests/ py.test -xv umap/tests/
test-integration:
DJANGO_ALLOW_ASYNC_UNSAFE=1 py.test -xv umap/tests/integration/
clean: clean:
rm -f dist/* rm -f dist/*
rm -rf build/* rm -rf build/*

View file

@ -52,8 +52,11 @@ dev = [
] ]
test = [ test = [
"factory-boy==3.2.1", "factory-boy==3.2.1",
"playwright==1.32.1",
"pytest==6.2.5", "pytest==6.2.5",
"pytest-django==4.5.2", "pytest-django==4.5.2",
"pytest-playwright==0.3.3",
] ]
docker = [ docker = [
"uwsgi==2.0.21", "uwsgi==2.0.21",

View file

View file

@ -0,0 +1,18 @@
import pytest
from playwright.sync_api import expect
def test_page_title(page, live_server):
page.goto(live_server.url)
expect(page).to_have_title("uMap")
@pytest.mark.parametrize(
"lang,link_name,link_url",
[("fr", "Créer une carte", "/fr/map/new/"), ("en", "Create a map", "/en/map/new/")],
)
def test_create_map_link(page, live_server, lang, link_name, link_url):
page.goto(f"{live_server.url}/{lang}/")
create_map_button = page.locator("header nav a.button")
expect(create_map_button).to_have_text(link_name)
expect(create_map_button).to_have_attribute("href", link_url)