Sunil Mohan Adapa 80d67c2054
tests: functional: Merge into main source hierarchy
- Add pytest hooks to ignore all functional tests if pytest_bdd is not
installed.

- Update pytest hooks to skip tests in file named 'test_functional.py' if
--include-functional argument is not provided.

- Move functional_tests/install.py into plinth/tests/functional and update
reference in Vagrantfile.

- Move scenario files into individual app folders. Rename them after the app
they are testing. Merge TODO items listed in todo.org into corresponding feature
files.

- Add test_functional.py in each app to build tests from the features file using
pytest_bdd.

- Move all step_definitions, support and data into plinth/tests/functional/.
Include all step_definitions from conftest.py. Update to relative imports
instead of absolute imports.

Tests performed:

- Run py.test-3 --collect-only shows all functional tests and lists 574 tests.
No errors show that name of feature files are correct. The number says that all
functional test features are included.

- Remove pytest_bdd (or modify the import name) and run py.test-3 --collect-only
skips collecting all functional tests and shows only 300+ tests.

- Run functional tests for a few apps with py.test-3 --include-functional -m
app. For storage, deluge.

- Run unit tests with py.test-3. Functional tests are listed by skipped.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2020-05-22 21:26:05 +05:30

45 lines
1.8 KiB
Gherkin

# SPDX-License-Identifier: AGPL-3.0-or-later
@apps @radicale
Feature: Radicale Calendar and Addressbook
Configure CalDAV/CardDAV server.
Background:
Given I'm a logged in user
Given the radicale application is installed
Scenario: Enable radicale application
Given the radicale application is disabled
When I enable the radicale application
Then the radicale service should be running
And the calendar should be available
And the addressbook should be available
Scenario: Owner-only access rights
Given the radicale application is enabled
And the access rights are set to "any user can view, but only the owner can make changes"
When I change the access rights to "only the owner can view or make changes"
Then the radicale service should be running
And the access rights should be "only the owner can view or make changes"
Scenario: Owner-write access rights
Given the radicale application is enabled
And the access rights are set to "only the owner can view or make changes"
When I change the access rights to "any user can view, but only the owner can make changes"
Then the radicale service should be running
And the access rights should be "any user can view, but only the owner can make changes"
Scenario: Authenticated access rights
Given the radicale application is enabled
And the access rights are set to "only the owner can view or make changes"
When I change the access rights to "any user can view or make changes"
Then the radicale service should be running
And the access rights should be "any user can view or make changes"
Scenario: Disable radicale application
Given the radicale application is enabled
When I disable the radicale application
Then the radicale service should not be running
And the calendar should not be available
And the addressbook should not be available