diff --git a/plinth/modules/security/tests/security.feature b/plinth/modules/security/tests/security.feature deleted file mode 100644 index d9dba5b9a..000000000 --- a/plinth/modules/security/tests/security.feature +++ /dev/null @@ -1,25 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later - -@security @essential @system -Feature: Security - Configure security options. - -Background: - Given I'm a logged in user - -Scenario: Disable restricted console logins - Given restricted console logins are enabled - When I disable restricted console logins - Then restricted console logins should be disabled - -Scenario: Backup and restore security - When I enable restricted console logins - And I create a backup of the security app data with name test_security - And I disable restricted console logins - And I restore the security app data backup with name test_security - Then restricted console logins should be enabled - -Scenario: Enable restricted console logins - Given restricted console logins are disabled - When I enable restricted console logins - Then restricted console logins should be enabled diff --git a/plinth/modules/security/tests/test_functional.py b/plinth/modules/security/tests/test_functional.py index c0266b111..356d3f12d 100644 --- a/plinth/modules/security/tests/test_functional.py +++ b/plinth/modules/security/tests/test_functional.py @@ -3,29 +3,37 @@ Functional, browser based tests for security app. """ -from pytest_bdd import given, parsers, scenarios, then, when - +import pytest from plinth.tests import functional -scenarios('security.feature') +pytestmark = [pytest.mark.system, pytest.mark.security] -@given(parsers.parse('restricted console logins are {enabled}')) -def security_given_enable_restricted_logins(session_browser, enabled): - should_enable = (enabled == 'enabled') - _enable_restricted_logins(session_browser, should_enable) +@pytest.fixture(scope='module', autouse=True) +def fixture_background(session_browser): + """Login.""" + functional.login(session_browser) -@when(parsers.parse('I {enable} restricted console logins')) -def security_enable_restricted_logins(session_browser, enable): - should_enable = (enable == 'enable') - _enable_restricted_logins(session_browser, should_enable) +def test_restricted_console_logins(session_browser): + """Test enabling and disabling restricted console logins.""" + _enable_restricted_logins(session_browser, False) + assert not _get_restricted_logins(session_browser) + + _enable_restricted_logins(session_browser, True) + assert _get_restricted_logins(session_browser) -@then(parsers.parse('restricted console logins should be {enabled}')) -def security_assert_restricted_logins(session_browser, enabled): - enabled = (enabled == 'enabled') - assert _get_restricted_logins(session_browser) == enabled +@pytest.mark.backups +def test_backup_restore(session_browser): + """Test backup and restore of configuration.""" + _enable_restricted_logins(session_browser, True) + functional.backup_create(session_browser, 'security', 'test_security') + + _enable_restricted_logins(session_browser, False) + functional.backup_restore(session_browser, 'security', 'test_security') + + assert _get_restricted_logins(session_browser) def _enable_restricted_logins(browser, should_enable):