diff --git a/umap/tests/base.py b/umap/tests/base.py index 12b672fc..af4011fd 100644 --- a/umap/tests/base.py +++ b/umap/tests/base.py @@ -1,5 +1,6 @@ import copy import json +from pathlib import Path import factory from django.contrib.auth import get_user_model @@ -40,7 +41,7 @@ class LicenceFactory(factory.django.DjangoModelFactory): class TileLayerFactory(factory.django.DjangoModelFactory): name = "Test zoom layer" - url_template = "http://{s}.test.org/{z}/{x}/{y}.png" + url_template = "https://{s}.test.org/osmfr/{z}/{x}/{y}.png" attribution = "Test layer attribution" class Meta: @@ -150,3 +151,8 @@ def login_required(response): redirect_url = reverse("login") assert j["login_required"] == redirect_url return True + + +def mock_tiles(route): + path = Path(__file__).parent / "fixtures/empty_tile.png" + route.fulfill(path=path) diff --git a/umap/tests/fixtures/empty_tile.png b/umap/tests/fixtures/empty_tile.png new file mode 100644 index 00000000..f607ae0a Binary files /dev/null and b/umap/tests/fixtures/empty_tile.png differ diff --git a/umap/tests/integration/conftest.py b/umap/tests/integration/conftest.py index 079f6b78..9bf1aad9 100644 --- a/umap/tests/integration/conftest.py +++ b/umap/tests/integration/conftest.py @@ -6,6 +6,8 @@ from pathlib import Path import pytest from playwright.sync_api import expect +from ..base import mock_tiles + @pytest.fixture(scope="session") def browser_context_args(browser_context_args): @@ -23,7 +25,7 @@ def set_timeout(context): @pytest.fixture(autouse=True) def mock_osm_tiles(page): if not bool(os.environ.get("PWDEBUG", False)): - page.route("*/**/osmfr/**", lambda route: route.fulfill()) + page.route("*/**/osmfr/**", mock_tiles) @pytest.fixture diff --git a/umap/tests/integration/test_import.py b/umap/tests/integration/test_import.py index e0d44f2d..6d8f29ee 100644 --- a/umap/tests/integration/test_import.py +++ b/umap/tests/integration/test_import.py @@ -1,5 +1,4 @@ import json -import os import platform import re from pathlib import Path @@ -10,6 +9,7 @@ from playwright.sync_api import expect from umap.models import DataLayer +from ..base import mock_tiles from .helpers import save_and_get_json pytestmark = pytest.mark.django_db @@ -72,6 +72,8 @@ def test_umap_import_from_file(live_server, tilelayer, page): def test_umap_import_from_textarea(live_server, tilelayer, page, settings): + page.route("https://tile.openstreetmap.fr/hot/**", mock_tiles) + settings.UMAP_ALLOW_ANONYMOUS = True page.goto(f"{live_server.url}/map/new/") page.get_by_role("button", name="Open browser").click()