diff options
author | Daniel Schadt <kingdread@gmx.de> | 2023-11-25 11:07:59 +0100 |
---|---|---|
committer | Daniel Schadt <kingdread@gmx.de> | 2023-11-25 11:07:59 +0100 |
commit | 6e6a5a836dd1bd567078896a9e75d93061fd13a6 (patch) | |
tree | 45000737a4f18a99397f793a2cd1ad2a42d3002f /tests | |
parent | 40779bcfea8fce9a23c552cf449d25a0971ee329 (diff) | |
parent | ac2eea33e8e2b03a0c4c1c170e6141355bef01a5 (diff) | |
download | fietsboek-6e6a5a836dd1bd567078896a9e75d93061fd13a6.tar.gz fietsboek-6e6a5a836dd1bd567078896a9e75d93061fd13a6.tar.bz2 fietsboek-6e6a5a836dd1bd567078896a9e75d93061fd13a6.zip |
Merge branch 'disable-image-upload'
Diffstat (limited to 'tests')
-rw-r--r-- | tests/conftest.py | 9 | ||||
-rw-r--r-- | tests/playwright/conftest.py | 4 | ||||
-rw-r--r-- | tests/playwright/test_no_image_uploads.py | 34 |
3 files changed, 42 insertions, 5 deletions
diff --git a/tests/conftest.py b/tests/conftest.py index a4366ab..94f795a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -28,11 +28,14 @@ def ini_file(request): # potentially grab this path from a pytest option return os.path.abspath(request.config.option.ini or 'testing.ini') -@pytest.fixture(scope='session') +# Even though the ini file is scoped to session, we scope the actual settings +# to module only. This way, we can test different configurations in different +# modules. +@pytest.fixture(scope='module') def app_settings(ini_file): return get_appsettings(ini_file) -@pytest.fixture(scope='session') +@pytest.fixture(scope='module') def dbengine(app_settings, ini_file): engine = models.get_engine(app_settings) @@ -73,7 +76,7 @@ def _cleanup_data(app_settings): if (data_dir / "tracks").is_dir(): shutil.rmtree(data_dir / "tracks") -@pytest.fixture(scope='session') +@pytest.fixture(scope='module') def app(app_settings, dbengine, tmp_path_factory): app_settings["fietsboek.data_dir"] = str(tmp_path_factory.mktemp("data")) logging.getLogger().setLevel(logging.DEBUG) diff --git a/tests/playwright/conftest.py b/tests/playwright/conftest.py index 12a0047..4e7f5a4 100644 --- a/tests/playwright/conftest.py +++ b/tests/playwright/conftest.py @@ -15,7 +15,7 @@ from fietsboek.config import Config import pytest -@pytest.fixture(scope="session") +@pytest.fixture(scope="module") def server_port(): """Return a (likely) free port. @@ -29,7 +29,7 @@ def server_port(): return port -@pytest.fixture(scope="session", autouse=True) +@pytest.fixture(scope="module", autouse=True) def running_server(server_port, app): """Have the app running as an actual server.""" server = simple_server.make_server("127.0.0.1", server_port, app) diff --git a/tests/playwright/test_no_image_uploads.py b/tests/playwright/test_no_image_uploads.py new file mode 100644 index 0000000..b133697 --- /dev/null +++ b/tests/playwright/test_no_image_uploads.py @@ -0,0 +1,34 @@ +import pytest +from playwright.sync_api import Page, expect + +from testutils import extract_and_upload + + +@pytest.fixture(scope="module") +def app_settings(app_settings): + """Override the standard app settings to disable image uploads.""" + app_settings["fietsboek.enable_image_uploads"] = "false" + return app_settings + + +def test_image_button_disabled_during_upload(page: Page, playwright_helper, tmp_path, dbaccess): + playwright_helper.login() + + page.goto("/") + page.get_by_text("Upload").click() + + # We unpack one of the test GPX files + extract_and_upload(page, "Teasi_1.gpx.gz", tmp_path) + + # We now fill in most of the data + expect(page.locator("#selectImagesButton")).to_be_disabled() + + +def test_image_button_disabled_during_edit(page: Page, playwright_helper, dbaccess): + playwright_helper.login() + track_id = playwright_helper.add_track().id + + page.goto(f"/track/{track_id}") + page.locator(".btn", has_text="Edit").click() + + expect(page.locator("#selectImagesButton")).to_be_disabled() |