diff --git a/plinth/modules/openvpn/tests/test_functional.py b/plinth/modules/openvpn/tests/test_functional.py index 10d13ffdb..59285c245 100644 --- a/plinth/modules/openvpn/tests/test_functional.py +++ b/plinth/modules/openvpn/tests/test_functional.py @@ -12,58 +12,41 @@ base_url = functional.config['DEFAULT']['URL'] shortcut_href = '?selected=shortcut-openvpn' -@pytest.fixture(scope='module', autouse=True) -def fixture_background(session_browser): - """Login and install the app.""" - functional.login(session_browser) - functional.install(session_browser, 'openvpn') - yield - functional.app_disable(session_browser, 'openvpn') +class TestOpenvpnApp(functional.BaseAppTests): + app_name = 'openvpn' + has_service = True + has_web = False + def test_download_profile(self, session_browser): + """Test that OpenVPN profile is downloadable.""" + functional.app_enable(session_browser, 'openvpn') + _download_profile(session_browser) -def test_enable_disable(session_browser): - """Test enabling the app.""" - functional.app_disable(session_browser, 'openvpn') + def test_user_group(self, session_browser): + """Test that only users in vpn group have access.""" + functional.app_enable(session_browser, 'openvpn') + if not functional.user_exists(session_browser, 'vpnuser'): + functional.create_user(session_browser, 'vpnuser', groups=['vpn']) + if not functional.user_exists(session_browser, 'nonvpnuser'): + functional.create_user(session_browser, 'nonvpnuser', groups=[]) - functional.app_enable(session_browser, 'openvpn') - assert functional.service_is_running(session_browser, 'openvpn') + functional.login_with_account(session_browser, base_url, 'vpnuser') + _download_profile(session_browser) - functional.app_disable(session_browser, 'openvpn') - assert functional.service_is_not_running(session_browser, 'openvpn') + functional.login_with_account(session_browser, base_url, 'nonvpnuser') + _not_on_front_page(session_browser) + functional.login(session_browser) -def test_download_profile(session_browser): - """Test that OpenVPN profile is downloadable.""" - functional.app_enable(session_browser, 'openvpn') - _download_profile(session_browser) + @pytest.mark.backups + def test_backup_restore(self, session_browser): + """Test backup and restore of app data.""" + functional.app_enable(session_browser, 'openvpn') + profile = _download_profile(session_browser) + functional.backup_create(session_browser, 'openvpn', 'test_openvpn') - -def test_user_group(session_browser): - """Test that only users in vpn group have access.""" - functional.app_enable(session_browser, 'openvpn') - if not functional.user_exists(session_browser, 'vpnuser'): - functional.create_user(session_browser, 'vpnuser', groups=['vpn']) - if not functional.user_exists(session_browser, 'nonvpnuser'): - functional.create_user(session_browser, 'nonvpnuser', groups=[]) - - functional.login_with_account(session_browser, base_url, 'vpnuser') - _download_profile(session_browser) - - functional.login_with_account(session_browser, base_url, 'nonvpnuser') - _not_on_front_page(session_browser) - - functional.login(session_browser) - - -@pytest.mark.backups -def test_backup_restore(session_browser): - """Test backup and restore of app data.""" - functional.app_enable(session_browser, 'openvpn') - profile = _download_profile(session_browser) - functional.backup_create(session_browser, 'openvpn', 'test_openvpn') - - functional.backup_restore(session_browser, 'openvpn', 'test_openvpn') - _profile_download_compare(session_browser, profile) + functional.backup_restore(session_browser, 'openvpn', 'test_openvpn') + _profile_download_compare(session_browser, profile) def _not_on_front_page(session_browser):