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

40 lines
1.8 KiB
Gherkin

# SPDX-License-Identifier: AGPL-3.0-or-later
# TODO Scenario: Enable standard services
# TODO Scenario: Disable standard services
# TODO Scenario: Add custom service
# TODO Scenario: Delete custom service
@apps @pagekite
Feature: Pagekite Public Visibility
Configure Pagekite public visitbility server.
Background:
Given I'm a logged in user
Given the pagekite application is installed
Scenario: Enable pagekite application
Given the pagekite application is disabled
When I enable the pagekite application
Then the pagekite service should be running
Scenario: Configure pagekite application
Given the pagekite application is enabled
When I configure pagekite with host pagekite.example.com, port 8080, kite name mykite.example.com and kite secret mysecret
Then pagekite should be configured with host pagekite.example.com, port 8080, kite name mykite.example.com and kite secret mysecret
@backups
Scenario: Backup and restore pagekite
Given the pagekite application is enabled
When I configure pagekite with host beforebackup.example.com, port 8081, kite name beforebackup.example.com and kite secret beforebackupsecret
And I create a backup of the pagekite app data with name test_pagekite
And I configure pagekite with host afterbackup.example.com, port 8082, kite name afterbackup.example.com and kite secret afterbackupsecret
And I restore the pagekite app data backup with name test_pagekite
Then the pagekite service should be running
And pagekite should be configured with host beforebackup.example.com, port 8081, kite name beforebackup.example.com and kite secret beforebackupsecret
Scenario: Disable pagekite application
Given the pagekite application is enabled
When I disable the pagekite application
Then the pagekite service should not be running