mirror of
https://github.com/umap-project/umap.git
synced 2025-05-04 13:41:49 +02:00
wip: use django channels in playwright tests
This commit is contained in:
parent
a5db41595b
commit
4cc9540119
4 changed files with 24 additions and 11 deletions
|
@ -4,11 +4,11 @@ from django.core.signing import TimestampSigner
|
||||||
from .websocket_server import (
|
from .websocket_server import (
|
||||||
JoinRequest,
|
JoinRequest,
|
||||||
JoinResponse,
|
JoinResponse,
|
||||||
|
ListPeersResponse,
|
||||||
OperationMessage,
|
OperationMessage,
|
||||||
|
PeerMessage,
|
||||||
Request,
|
Request,
|
||||||
ValidationError,
|
ValidationError,
|
||||||
PeerMessage,
|
|
||||||
ListPeersResponse,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ export class SyncEngine {
|
||||||
|
|
||||||
start(authToken) {
|
start(authToken) {
|
||||||
this.transport = new WebSocketTransport(
|
this.transport = new WebSocketTransport(
|
||||||
this._umap.properties.websocketURI,
|
Utils.template(this._umap.properties.websocketURI, { id: this._umap.id }),
|
||||||
authToken,
|
authToken,
|
||||||
this
|
this
|
||||||
)
|
)
|
||||||
|
|
|
@ -5,6 +5,7 @@ import time
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
from channels.testing import ChannelsLiveServerTestCase
|
||||||
from playwright.sync_api import expect
|
from playwright.sync_api import expect
|
||||||
|
|
||||||
from ..base import mock_tiles
|
from ..base import mock_tiles
|
||||||
|
@ -87,3 +88,15 @@ def websocket_server():
|
||||||
yield ds_proc
|
yield ds_proc
|
||||||
# Shut it down at the end of the pytest session
|
# Shut it down at the end of the pytest session
|
||||||
ds_proc.terminate()
|
ds_proc.terminate()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="function")
|
||||||
|
def channels_live_server(request, settings):
|
||||||
|
server = ChannelsLiveServerTestCase()
|
||||||
|
server.serve_static = False
|
||||||
|
server._pre_setup()
|
||||||
|
settings.WEBSOCKET_FRONT_URI = f"{server.live_server_ws_url}/ws/sync/{{id}}/"
|
||||||
|
|
||||||
|
yield server
|
||||||
|
|
||||||
|
server._post_teardown()
|
||||||
|
|
|
@ -12,7 +12,7 @@ DATALAYER_UPDATE = re.compile(r".*/datalayer/update/.*")
|
||||||
|
|
||||||
@pytest.mark.xdist_group(name="websockets")
|
@pytest.mark.xdist_group(name="websockets")
|
||||||
def test_websocket_connection_can_sync_markers(
|
def test_websocket_connection_can_sync_markers(
|
||||||
new_page, live_server, websocket_server, tilelayer
|
new_page, live_server, channels_live_server, tilelayer
|
||||||
):
|
):
|
||||||
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
||||||
map.settings["properties"]["syncEnabled"] = True
|
map.settings["properties"]["syncEnabled"] = True
|
||||||
|
@ -80,7 +80,7 @@ def test_websocket_connection_can_sync_markers(
|
||||||
|
|
||||||
@pytest.mark.xdist_group(name="websockets")
|
@pytest.mark.xdist_group(name="websockets")
|
||||||
def test_websocket_connection_can_sync_polygons(
|
def test_websocket_connection_can_sync_polygons(
|
||||||
context, live_server, websocket_server, tilelayer
|
context, live_server, channels_live_server, tilelayer
|
||||||
):
|
):
|
||||||
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
||||||
map.settings["properties"]["syncEnabled"] = True
|
map.settings["properties"]["syncEnabled"] = True
|
||||||
|
@ -164,7 +164,7 @@ def test_websocket_connection_can_sync_polygons(
|
||||||
|
|
||||||
@pytest.mark.xdist_group(name="websockets")
|
@pytest.mark.xdist_group(name="websockets")
|
||||||
def test_websocket_connection_can_sync_map_properties(
|
def test_websocket_connection_can_sync_map_properties(
|
||||||
new_page, live_server, websocket_server, tilelayer
|
new_page, live_server, channels_live_server, tilelayer
|
||||||
):
|
):
|
||||||
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
||||||
map.settings["properties"]["syncEnabled"] = True
|
map.settings["properties"]["syncEnabled"] = True
|
||||||
|
@ -196,7 +196,7 @@ def test_websocket_connection_can_sync_map_properties(
|
||||||
|
|
||||||
@pytest.mark.xdist_group(name="websockets")
|
@pytest.mark.xdist_group(name="websockets")
|
||||||
def test_websocket_connection_can_sync_datalayer_properties(
|
def test_websocket_connection_can_sync_datalayer_properties(
|
||||||
new_page, live_server, websocket_server, tilelayer
|
new_page, live_server, channels_live_server, tilelayer
|
||||||
):
|
):
|
||||||
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
||||||
map.settings["properties"]["syncEnabled"] = True
|
map.settings["properties"]["syncEnabled"] = True
|
||||||
|
@ -225,7 +225,7 @@ def test_websocket_connection_can_sync_datalayer_properties(
|
||||||
|
|
||||||
@pytest.mark.xdist_group(name="websockets")
|
@pytest.mark.xdist_group(name="websockets")
|
||||||
def test_websocket_connection_can_sync_cloned_polygons(
|
def test_websocket_connection_can_sync_cloned_polygons(
|
||||||
context, live_server, websocket_server, tilelayer
|
context, live_server, channels_live_server, tilelayer
|
||||||
):
|
):
|
||||||
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
||||||
map.settings["properties"]["syncEnabled"] = True
|
map.settings["properties"]["syncEnabled"] = True
|
||||||
|
@ -288,7 +288,7 @@ def test_websocket_connection_can_sync_cloned_polygons(
|
||||||
|
|
||||||
@pytest.mark.xdist_group(name="websockets")
|
@pytest.mark.xdist_group(name="websockets")
|
||||||
def test_websocket_connection_can_sync_late_joining_peer(
|
def test_websocket_connection_can_sync_late_joining_peer(
|
||||||
new_page, live_server, websocket_server, tilelayer
|
new_page, live_server, channels_live_server, tilelayer
|
||||||
):
|
):
|
||||||
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
||||||
map.settings["properties"]["syncEnabled"] = True
|
map.settings["properties"]["syncEnabled"] = True
|
||||||
|
@ -349,7 +349,7 @@ def test_websocket_connection_can_sync_late_joining_peer(
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.xdist_group(name="websockets")
|
@pytest.mark.xdist_group(name="websockets")
|
||||||
def test_should_sync_datalayers(new_page, live_server, websocket_server, tilelayer):
|
def test_should_sync_datalayers(new_page, live_server, channels_live_server, tilelayer):
|
||||||
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
map = MapFactory(name="sync", edit_status=Map.ANONYMOUS)
|
||||||
map.settings["properties"]["syncEnabled"] = True
|
map.settings["properties"]["syncEnabled"] = True
|
||||||
map.save()
|
map.save()
|
||||||
|
@ -422,7 +422,7 @@ def test_should_sync_datalayers(new_page, live_server, websocket_server, tilelay
|
||||||
|
|
||||||
@pytest.mark.xdist_group(name="websockets")
|
@pytest.mark.xdist_group(name="websockets")
|
||||||
def test_create_and_sync_map(
|
def test_create_and_sync_map(
|
||||||
new_page, live_server, websocket_server, tilelayer, login, user
|
new_page, live_server, channels_live_server, tilelayer, login, user
|
||||||
):
|
):
|
||||||
# Create a syncable map with peerA
|
# Create a syncable map with peerA
|
||||||
peerA = login(user, prefix="Page A")
|
peerA = login(user, prefix="Page A")
|
||||||
|
|
Loading…
Reference in a new issue