diff --git a/plinth/modules/snapshot/templates/snapshot_not_supported.html b/plinth/modules/snapshot/templates/snapshot_not_supported.html index 5a932f158..7e72da616 100644 --- a/plinth/modules/snapshot/templates/snapshot_not_supported.html +++ b/plinth/modules/snapshot/templates/snapshot_not_supported.html @@ -7,7 +7,7 @@ {% load i18n %} {% block configuration %} -
+
{% blocktrans trimmed with fs_types_supported|join:', ' as types_supported %} You have a filesystem of type {{ fs_type }}. Snapshots are currently only available on {{ types_supported }} diff --git a/plinth/modules/snapshot/tests/snapshot.feature b/plinth/modules/snapshot/tests/snapshot.feature index ce49b2580..bd2687186 100644 --- a/plinth/modules/snapshot/tests/snapshot.feature +++ b/plinth/modules/snapshot/tests/snapshot.feature @@ -6,7 +6,8 @@ Feature: Storage Snapshots Background: Given I'm a logged in user - Given the snapshot application is installed + And the snapshot application is installed + And the filesystem supports snapshots Scenario: Create a snapshot Given the list of snapshots is empty diff --git a/plinth/modules/snapshot/tests/test_functional.py b/plinth/modules/snapshot/tests/test_functional.py index 6016ad957..e036d5772 100644 --- a/plinth/modules/snapshot/tests/test_functional.py +++ b/plinth/modules/snapshot/tests/test_functional.py @@ -3,6 +3,7 @@ Functional, browser based tests for snapshot app. """ +import pytest from pytest_bdd import given, parsers, scenarios, then, when from plinth.tests import functional @@ -10,6 +11,13 @@ from plinth.tests import functional scenarios('snapshot.feature') +@given('the filesystem supports snapshots') +def is_snapshots_supported(session_browser): + if not _is_snapshot_supported(session_browser): + pytest.skip('Filesystem doesn\'t support snapshots') + assert True + + @given('the list of snapshots is empty') def empty_snapshots_list(session_browser): _delete_all(session_browser) @@ -99,6 +107,12 @@ def _get_count(browser): return len(browser.find_by_xpath('//tr')) - 1 +def _is_snapshot_supported(browser): + """Return whether the filesystem supports snapshots.""" + functional.nav_to_module(browser, 'snapshot') + return not bool(browser.find_by_id('snapshot-not-supported')) + + def _set_configuration(browser, free_space, timeline_enabled, software_enabled, hourly, daily, weekly, monthly, yearly): """Set the configuration for snapshots."""