Setup to create integration tests with Playwright
This commit is contained in:
parent
d8b63974f9
commit
95bf685159
4 changed files with 26 additions and 1 deletions
6
Makefile
6
Makefile
|
@ -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/*
|
||||||
|
|
|
@ -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",
|
||||||
|
|
0
umap/tests/integration/__init__.py
Normal file
0
umap/tests/integration/__init__.py
Normal file
18
umap/tests/integration/test_basics.py
Normal file
18
umap/tests/integration/test_basics.py
Normal 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)
|
Loading…
Reference in a new issue