mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-05-20 10:34:30 +00:00
bepasty: Convert functional tests to non-BDD python format
Signed-off-by: James Valleroy <jvalleroy@mailbox.org> [sunil: Avoid global variable] [sunil: Make a method local] Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
This commit is contained in:
parent
a0d880b62c
commit
0213fe370b
@ -1,52 +0,0 @@
|
|||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
@apps @bepasty
|
|
||||||
Feature: bepasty File Sharing
|
|
||||||
Run bepasty file upload and sharing app.
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given I'm a logged in user
|
|
||||||
Given the bepasty application is installed
|
|
||||||
|
|
||||||
Scenario: Enable bepasty application
|
|
||||||
Given the bepasty application is disabled
|
|
||||||
When I enable the bepasty application
|
|
||||||
Then the bepasty site should be available
|
|
||||||
|
|
||||||
Scenario: Set default permissions to List and read all files
|
|
||||||
Given the bepasty application is enabled
|
|
||||||
And I am not logged in to bepasty
|
|
||||||
When I set the default permissions to List and read all files
|
|
||||||
Then I should be able to List all Items in bepasty
|
|
||||||
|
|
||||||
Scenario: Set default permissions to Read files
|
|
||||||
Given the bepasty application is enabled
|
|
||||||
And I am not logged in to bepasty
|
|
||||||
When I set the default permissions to Read files
|
|
||||||
Then I should not be able to List all Items in bepasty
|
|
||||||
|
|
||||||
Scenario: Add password
|
|
||||||
Given the bepasty application is enabled
|
|
||||||
When I add a bepasty password
|
|
||||||
Then I should be able to login to bepasty with that password
|
|
||||||
|
|
||||||
Scenario: Remove password
|
|
||||||
Given the bepasty application is enabled
|
|
||||||
When I add a bepasty password
|
|
||||||
When I remove all bepasty passwords
|
|
||||||
Then I should not be able to login to bepasty with that password
|
|
||||||
|
|
||||||
@backups
|
|
||||||
Scenario: Backup and restore bepasty
|
|
||||||
Given the bepasty application is enabled
|
|
||||||
When I add a bepasty password
|
|
||||||
And I create a backup of the bepasty app data with name test_bepasty
|
|
||||||
And I remove all bepasty passwords
|
|
||||||
And I restore the bepasty app data backup with name test_bepasty
|
|
||||||
Then the bepasty site should be available
|
|
||||||
And I should be able to login to bepasty with that password
|
|
||||||
|
|
||||||
Scenario: Disable bepasty application
|
|
||||||
Given the bepasty application is enabled
|
|
||||||
When I disable the bepasty application
|
|
||||||
Then the bepasty site should not be available
|
|
||||||
@ -3,63 +3,83 @@
|
|||||||
Functional, browser based tests for bepasty app.
|
Functional, browser based tests for bepasty app.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from pytest_bdd import given, scenarios, then, when
|
import pytest
|
||||||
|
|
||||||
from plinth.tests import functional
|
from plinth.tests import functional
|
||||||
|
|
||||||
scenarios('bepasty.feature')
|
pytestmark = [pytest.mark.apps, pytest.mark.bepasty]
|
||||||
|
|
||||||
last_password_added = None
|
|
||||||
|
|
||||||
|
|
||||||
@given('I am not logged in to bepasty')
|
@pytest.fixture(scope='module', autouse=True)
|
||||||
def not_logged_in(session_browser):
|
def fixture_background(session_browser):
|
||||||
|
"""Login and install the app."""
|
||||||
|
functional.login(session_browser)
|
||||||
|
functional.install(session_browser, 'bepasty')
|
||||||
|
yield
|
||||||
|
functional.app_disable(session_browser, 'bepasty')
|
||||||
|
|
||||||
|
|
||||||
|
def test_enable_disable(session_browser):
|
||||||
|
"""Test enabling the app."""
|
||||||
|
functional.app_disable(session_browser, 'bepasty')
|
||||||
|
|
||||||
|
functional.app_enable(session_browser, 'bepasty')
|
||||||
|
assert functional.is_available(session_browser, 'bepasty')
|
||||||
|
|
||||||
|
functional.app_disable(session_browser, 'bepasty')
|
||||||
|
assert not functional.is_available(session_browser, 'bepasty')
|
||||||
|
|
||||||
|
|
||||||
|
def test_set_default_permissions_list_and_read_all(session_browser):
|
||||||
|
functional.app_enable(session_browser, 'bepasty')
|
||||||
_logout(session_browser)
|
_logout(session_browser)
|
||||||
|
|
||||||
|
|
||||||
@when('I set the default permissions to Read files')
|
|
||||||
def set_default_permissions_read(session_browser):
|
|
||||||
_set_default_permissions(session_browser, 'read')
|
|
||||||
|
|
||||||
|
|
||||||
@when('I set the default permissions to List and read all files')
|
|
||||||
def set_default_permissions_list_read(session_browser):
|
|
||||||
_set_default_permissions(session_browser, 'read list')
|
_set_default_permissions(session_browser, 'read list')
|
||||||
|
|
||||||
|
|
||||||
@when('I add a bepasty password')
|
|
||||||
def add_password(session_browser):
|
|
||||||
global last_password_added
|
|
||||||
_remove_all_passwords(session_browser)
|
|
||||||
_add_password(session_browser)
|
|
||||||
last_password_added = _get_password(session_browser)
|
|
||||||
|
|
||||||
|
|
||||||
@when('I remove all bepasty passwords')
|
|
||||||
def remove_all_passwords(session_browser):
|
|
||||||
_remove_all_passwords(session_browser)
|
|
||||||
|
|
||||||
|
|
||||||
@then('I should be able to login to bepasty with that password')
|
|
||||||
def should_login(session_browser):
|
|
||||||
assert _can_login(session_browser, last_password_added)
|
|
||||||
|
|
||||||
|
|
||||||
@then('I should not be able to login to bepasty with that password')
|
|
||||||
def should_not_login(session_browser):
|
|
||||||
assert not _can_login(session_browser, last_password_added)
|
|
||||||
|
|
||||||
|
|
||||||
@then('I should be able to List all Items in bepasty')
|
|
||||||
def should_list_all(session_browser):
|
|
||||||
assert _can_list_all(session_browser)
|
assert _can_list_all(session_browser)
|
||||||
|
|
||||||
|
|
||||||
@then('I should not be able to List all Items in bepasty')
|
def test_set_default_permissions_read_files(session_browser):
|
||||||
def should_not_list_all(session_browser):
|
functional.app_enable(session_browser, 'bepasty')
|
||||||
|
_logout(session_browser)
|
||||||
|
_set_default_permissions(session_browser, 'read')
|
||||||
|
|
||||||
assert _cannot_list_all(session_browser)
|
assert _cannot_list_all(session_browser)
|
||||||
|
|
||||||
|
|
||||||
|
def test_add_password(session_browser):
|
||||||
|
functional.app_enable(session_browser, 'bepasty')
|
||||||
|
password_added = _add_and_save_password(session_browser)
|
||||||
|
|
||||||
|
assert _can_login(session_browser, password_added)
|
||||||
|
|
||||||
|
|
||||||
|
def test_remove_password(session_browser):
|
||||||
|
functional.app_enable(session_browser, 'bepasty')
|
||||||
|
password_added = _add_and_save_password(session_browser)
|
||||||
|
_remove_all_passwords(session_browser)
|
||||||
|
|
||||||
|
assert not _can_login(session_browser, password_added)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.backups
|
||||||
|
def test_backup_and_restore(session_browser):
|
||||||
|
functional.app_enable(session_browser, 'bepasty')
|
||||||
|
password_added = _add_and_save_password(session_browser)
|
||||||
|
functional.backup_create(session_browser, 'bepasty', 'test_bepasty')
|
||||||
|
|
||||||
|
_remove_all_passwords(session_browser)
|
||||||
|
functional.backup_restore(session_browser, 'bepasty', 'test_bepasty')
|
||||||
|
|
||||||
|
assert functional.is_available(session_browser, 'bepasty')
|
||||||
|
assert _can_login(session_browser, password_added)
|
||||||
|
|
||||||
|
|
||||||
|
def _add_and_save_password(session_browser):
|
||||||
|
_remove_all_passwords(session_browser)
|
||||||
|
_add_password(session_browser)
|
||||||
|
return _get_password(session_browser)
|
||||||
|
|
||||||
|
|
||||||
def _set_default_permissions(browser, permissions=''):
|
def _set_default_permissions(browser, permissions=''):
|
||||||
functional.nav_to_module(browser, 'bepasty')
|
functional.nav_to_module(browser, 'bepasty')
|
||||||
browser.choose('default_permissions', permissions)
|
browser.choose('default_permissions', permissions)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user