diff options
| author | Daniel Schadt <kingdread@gmx.de> | 2023-04-13 20:12:32 +0200 | 
|---|---|---|
| committer | Daniel Schadt <kingdread@gmx.de> | 2023-04-13 20:12:32 +0200 | 
| commit | be05f4d4e1729714ffb4c3c37b5dcedcd7c79c26 (patch) | |
| tree | d1d444cbcb934b85dc59a7e8e18568614a8e2610 /tests | |
| parent | c6ba50be205763342992fdddad6ca59755051dd9 (diff) | |
| parent | 5b051b9f97892784d281556db3d5f8b01671568d (diff) | |
| download | fietsboek-be05f4d4e1729714ffb4c3c37b5dcedcd7c79c26.tar.gz fietsboek-be05f4d4e1729714ffb4c3c37b5dcedcd7c79c26.tar.bz2 fietsboek-be05f4d4e1729714ffb4c3c37b5dcedcd7c79c26.zip | |
Merge branch 'profiles'
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/conftest.py | 16 | ||||
| -rw-r--r-- | tests/playwright/test_profiles.py | 25 | ||||
| -rw-r--r-- | tests/unit/test_util.py | 14 | 
3 files changed, 50 insertions, 5 deletions
| diff --git a/tests/conftest.py b/tests/conftest.py index a499bec..d4394cd 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -12,7 +12,7 @@ import pytest  import transaction  import webtest -from sqlalchemy import delete, select +from sqlalchemy import delete, inspect, select  from fietsboek import main, models  from fietsboek.data import DataManager @@ -59,12 +59,18 @@ def data_manager(app_settings):  def _cleanup_data(app_settings):      yield      engine = models.get_engine(app_settings) +    db_meta = inspect(engine)      with engine.begin() as connection:          for table in reversed(Base.metadata.sorted_tables): -            connection.execute(table.delete()) -    data_dir = Path(app_settings["fietsboek.data_dir"]) -    if (data_dir / "tracks").is_dir(): -        shutil.rmtree(data_dir / "tracks") +            # The unit tests don't always set up the tables, so be gentle when +            # tearing them down +            if db_meta.has_table(table.name): +                connection.execute(table.delete()) +    # The unit tests also often don't have a data directory, so be gentle here as well +    if "fietsboek.data_dir" in app_settings: +        data_dir = Path(app_settings["fietsboek.data_dir"]) +        if (data_dir / "tracks").is_dir(): +            shutil.rmtree(data_dir / "tracks")  @pytest.fixture(scope='session')  def app(app_settings, dbengine, tmp_path_factory): diff --git a/tests/playwright/test_profiles.py b/tests/playwright/test_profiles.py new file mode 100644 index 0000000..7e5fb3c --- /dev/null +++ b/tests/playwright/test_profiles.py @@ -0,0 +1,25 @@ +from playwright.sync_api import Page, expect + + +def test_forbidden(page: Page, playwright_helper): +    john = playwright_helper.john_doe() + +    with page.expect_response(lambda resp: resp.status == 403): +        page.goto(f"/user/{john.id}") + + +def test_profile(page: Page, playwright_helper): +    playwright_helper.login() + +    page.goto("/") +    page.get_by_role("button", name="User").click() +    page.get_by_role("link", name="Profile").click() + +    expect(page.locator("#profileLength")).to_have_text("0 km") +    expect(page.locator("#profileUphill")).to_have_text("0 m") +    expect(page.locator("#profileDownhill")).to_have_text("0 m") +    expect(page.locator("#profileMovingTime")).to_have_text("0:00:00") +    expect(page.locator("#profileStoppedTime")).to_have_text("0:00:00") +    expect(page.locator("#profileMaxSpeed")).to_have_text("0 km/h") +    expect(page.locator("#profileAvgSpeed")).to_have_text("0 km/h") +    expect(page.locator("#profileNumberOfTracks")).to_have_text("0") diff --git a/tests/unit/test_util.py b/tests/unit/test_util.py index b35f218..0ac5c33 100644 --- a/tests/unit/test_util.py +++ b/tests/unit/test_util.py @@ -30,6 +30,11 @@ def test_fix_iso_timestamp(timestamp, fixed):  @pytest.mark.parametrize('delta, multiple, expected', [      ( +        timedelta(seconds=0), +        timedelta(seconds=1), +        timedelta(seconds=0), +    ), +    (          timedelta(minutes=42),          timedelta(minutes=15),          timedelta(minutes=45), @@ -82,3 +87,12 @@ def test_tour_metadata(gpx_file):  @pytest.mark.parametrize('mps, kph', [(1, 3.6), (10, 36)])  def test_mps_to_kph(mps, kph):      assert util.mps_to_kph(mps) == pytest.approx(kph, 0.1) + + +def test_tile_url(app_request): +    route_url = util.tile_url(app_request, "tile-proxy", provider="bobby") + +    assert "{x}" in route_url +    assert "{y}" in route_url +    assert "{z}" in route_url +    assert "bobby" in route_url | 
