mirror of
https://github.com/umap-project/umap.git
synced 2025-05-05 06:01:48 +02:00
wip: add basic tests for deleting rows from table editor
This commit is contained in:
parent
4e73eade18
commit
0c314f94a8
1 changed files with 97 additions and 0 deletions
|
@ -2,8 +2,65 @@ import json
|
|||
import re
|
||||
from pathlib import Path
|
||||
|
||||
from playwright.sync_api import expect
|
||||
|
||||
from umap.models import DataLayer
|
||||
|
||||
from ..base import DataLayerFactory
|
||||
|
||||
|
||||
DATALAYER_DATA = {
|
||||
"type": "FeatureCollection",
|
||||
"features": [
|
||||
{
|
||||
"type": "Feature",
|
||||
"properties": {
|
||||
"mytype": "even",
|
||||
"name": "Point 2",
|
||||
"mynumber": 10,
|
||||
"myboolean": True,
|
||||
"mydate": "2024/04/14 12:19:17",
|
||||
},
|
||||
"geometry": {"type": "Point", "coordinates": [0.065918, 48.385442]},
|
||||
},
|
||||
{
|
||||
"type": "Feature",
|
||||
"properties": {
|
||||
"mytype": "odd",
|
||||
"name": "Point 1",
|
||||
"mynumber": 12,
|
||||
"myboolean": False,
|
||||
"mydate": "2024/03/13 12:20:20",
|
||||
},
|
||||
"geometry": {"type": "Point", "coordinates": [3.55957, 49.767074]},
|
||||
},
|
||||
{
|
||||
"type": "Feature",
|
||||
"properties": {
|
||||
"mytype": "even",
|
||||
"name": "Point 4",
|
||||
"mynumber": 10,
|
||||
"myboolean": "true",
|
||||
"mydate": "2024/08/18 13:14:15",
|
||||
},
|
||||
"geometry": {"type": "Point", "coordinates": [0.856934, 45.290347]},
|
||||
},
|
||||
{
|
||||
"type": "Feature",
|
||||
"properties": {
|
||||
"mytype": "odd",
|
||||
"name": "Point 3",
|
||||
"mynumber": 14,
|
||||
"mydate": "2024-04-14T10:19:17.000Z",
|
||||
},
|
||||
"geometry": {"type": "Point", "coordinates": [4.372559, 47.945786]},
|
||||
},
|
||||
],
|
||||
"_umap_options": {
|
||||
"name": "Calque 2",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
def test_table_editor(live_server, openmap, datalayer, page):
|
||||
page.goto(f"{live_server.url}{openmap.get_absolute_url()}?edit")
|
||||
|
@ -23,3 +80,43 @@ def test_table_editor(live_server, openmap, datalayer, page):
|
|||
data = json.loads(Path(saved.geojson.path).read_text())
|
||||
assert data["features"][0]["properties"]["newprop"] == "newvalue"
|
||||
assert "name" not in data["features"][0]["properties"]
|
||||
|
||||
|
||||
def test_delete_rows_by_equality(live_server, openmap, page):
|
||||
DataLayerFactory(map=openmap, data=DATALAYER_DATA)
|
||||
page.goto(f"{live_server.url}{openmap.get_absolute_url()}?edit")
|
||||
markers = page.locator(".leaflet-marker-icon .icon_container")
|
||||
expect(markers).to_have_count(4)
|
||||
page.get_by_role("link", name="Manage layers").click()
|
||||
page.locator(".panel").get_by_title("Edit properties in a table").click()
|
||||
rows = page.locator(".umap-table-editor .trow")
|
||||
expect(rows).to_have_count(4)
|
||||
page.get_by_text("Delete rows").click()
|
||||
page.get_by_role("combobox").click()
|
||||
page.get_by_role("combobox").fill("mytype=odd")
|
||||
page.get_by_role("button", name="OK").click()
|
||||
expect(rows).to_have_count(2)
|
||||
expect(markers).to_have_count(2)
|
||||
expect(page.locator('.umap-table-editor input[name="mytype"]').first).to_have_value(
|
||||
"even"
|
||||
)
|
||||
|
||||
|
||||
def test_delete_rows_by_non_equality(live_server, openmap, page):
|
||||
DataLayerFactory(map=openmap, data=DATALAYER_DATA)
|
||||
page.goto(f"{live_server.url}{openmap.get_absolute_url()}?edit")
|
||||
markers = page.locator(".leaflet-marker-icon .icon_container")
|
||||
expect(markers).to_have_count(4)
|
||||
page.get_by_role("link", name="Manage layers").click()
|
||||
page.locator(".panel").get_by_title("Edit properties in a table").click()
|
||||
rows = page.locator(".umap-table-editor .trow")
|
||||
expect(rows).to_have_count(4)
|
||||
page.get_by_text("Delete rows").click()
|
||||
page.get_by_role("combobox").click()
|
||||
page.get_by_role("combobox").fill("mytype!=odd")
|
||||
page.get_by_role("button", name="OK").click()
|
||||
expect(rows).to_have_count(2)
|
||||
expect(markers).to_have_count(2)
|
||||
expect(page.locator('.umap-table-editor input[name="mytype"]').first).to_have_value(
|
||||
"odd"
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue