Decapod UI

Decapod conftest

Contains fixtures specific for Decapod (UI testing).

whale.decapod_ui.conftest.auth_steps(decapod)[source]

Get auth steps to login or logout in decapod.

whale.decapod_ui.conftest.decapod(video_capture)[source]

Initial fixture to start.

whale.decapod_ui.conftest.login(auth_steps)[source]

Login to decapod.

Majority of tests requires user login. Logs out after test.

whale.decapod_ui.conftest.report_dir(request)[source]

Create report directory to put test logs.

whale.decapod_ui.conftest.ui_cluster_steps(decapod, login)[source]

Function fixture to get cluster steps.

Parameters:
  • decapod (Decapod) – instatiated decapod application
  • login (None) – user should log in before cluster actions
Returns:

instantiated cluster steps

Return type:

ClusterSteps

whale.decapod_ui.conftest.ui_configuration_steps(decapod, login)[source]

Function fixture to get configuration steps.

Parameters:
  • decapod (Decapod) – instantiated decapod web application
  • login (None) – should log in decapod before steps using
Returns:

instantiated configuration steps

Return type:

ConfigurationSteps

whale.decapod_ui.conftest.ui_role_steps(decapod, login)[source]

Function fixture to get role steps.

Parameters:
  • login (None) – should log in decapod before steps using
  • decapod (Decapod) – instantiated decapod web application
Returns:

Instantiated role steps

Return type:

RoleSteps

whale.decapod_ui.conftest.ui_user_steps(decapod, login)[source]

Function fixture to get user steps.

Parameters:
  • login (None) – should log in decapod before steps using
  • decapod (Decapod) – instantiated decapod web application
Returns:

Instantiated user steps

Return type:

UserSteps

whale.decapod_ui.conftest.video_capture(virtual_display, report_dir)[source]

Capture video of test.

whale.decapod_ui.conftest.virtual_display(request)[source]

Run test in virtual X server if env var is defined.

Decapod steps

Contains steps specific for decapod (UI testing).

class whale.decapod_ui.steps.AuthSteps(app)[source]

Authentication steps.

check_alert_present()[source]

Step to check alert message is present.

login(username='login', password='password', check=True)[source]

Step to log in user account.

Parameters:
  • username (-) – string, user name.
  • password (-) – string, user password.
logout(check=True)[source]

Step to log out user account.

class whale.decapod_ui.steps.ClusterSteps(app)[source]

Cluster steps.

create_cluster(name=None, check=True)[source]

Step to create cluster.

Parameters:
  • name (str, optional) – name of cluster
  • check (bool, optional) – flag whether to check step or not
Returns:

cluster name

Return type:

str

Raises:

Exception – if cluster is not present on page

update_cluster(name, new_name=None, check=True)[source]

Step to create cluster.

Parameters:
  • name (str) – name of cluster to be updated
  • new_name (str, optional) – name of cluster after update
  • check (bool, optional) – flag whether to check step or not
Returns:

cluster name

Return type:

str

Raises:

Exception – if cluster name was not changed

class whale.decapod_ui.steps.RoleSteps(app)[source]

Role steps.

create_role(role_name=None, check=True)[source]

Step to create role.

Parameters:
  • role_name (str) – role name
  • check (bool, optional) – flag whether to check step or not
Returns:

role name

Return type:

str

Raises:

Exception – if role is not present on page

delete_role(role_name, check=True)[source]

Step to delete role.

Parameters:
  • role_name (str) – role name
  • check (bool, optional) – flag whether to check step or not
Raises:

Exception – if role is present on page

update_role(role_name, new_role_name=None, api_permissions=None, playbook_permissions=None, check=True)[source]

Step to update role.

Parameters:
  • role_name (str) – role name
  • new_role_name (str|None) – new role name
  • api_permissions (list|None) – list of api permissions
  • playbook_permissions (list|None) – list of playbook permissions
  • check (bool, optional) – flag whether to check step or not
Returns:

role name

Return type:

str

Raises:

Exception – if role is not present on page

class whale.decapod_ui.steps.UserSteps(app)[source]

User steps.

create_user(role_name, login=None, full_name=None, check=True)[source]

Step to create user.

Parameters:
  • role_name (str) – role name of user
  • login (str, optional) – login of user
  • full_name (str, optional) – full name of user
  • check (bool, optional) – flag whether to check step or not
Returns:

user login

Return type:

str

Raises:

Exception – if user is not present on page

delete_user(login, check=True)[source]

Step to delete user.

Parameters:
  • login (str) – login of user to be deleted
  • check (bool, optional) – flag whether to check step or not
Raises:

Exception – if user is present on page

update_user(login, new_login=None, new_full_name=None, new_email=None, new_role_name=None, check=True)[source]

Step to update user.

Parameters:
  • login (str, optional) – login of user to be changed
  • new_login (str, optional) – new login of user
  • new_full_name (str, optional) – new full name of user
  • new_email (str, optional) – new email of user
  • new_role_name (str, optional) – new role of user
  • check (bool, optional) – flag whether to check step or not
Returns:

user login

Return type:

str

Raises:

Exception – if check failed

Decapod tests

Auth tests

whale.decapod_ui.tests.test_auth.test_login_logout(auth_steps)[source]

Scenario: User can log in and log out to/from Decapod UI.

Steps:

  1. User logs in
  2. User logs out

Cluster tests

whale.decapod_ui.tests.test_clusters.test_create_cluster(ui_cluster_steps, cluster_steps)[source]

Scenario: Cluster may be created in UI.

Steps:

  1. Create cluster via UI
  2. Find cluster by name via API

Teardown:

  1. Delete cluster via API
whale.decapod_ui.tests.test_clusters.test_update_cluster(cluster, ui_cluster_steps, cluster_steps)[source]

Scenario: Cluster may be updated in UI.

Setup:

  1. Create cluster via API

Steps:

  1. Update cluster name via UI
  2. Find cluster by name via API

Teardown:

  1. Delete cluster via API

Playbook configuration tests

whale.decapod_ui.tests.test_configuration.test_create_config_deploy_cluster(cluster, playbook_steps, server_steps, playbook_config_steps, ui_configuration_steps)[source]

Scenario: Playbook configuration may be created in UI.

Setup:

  1. Create cluster via API

Steps:

  1. Get servers list via API
  2. Find playbook name by ID using API
  3. Create playbook cluster deploy configuration via UI

Teardown:

  1. Delete playbook configuration via API
  2. Delete cluster via API
whale.decapod_ui.tests.test_configuration.test_delete_config(playbook_config_deploy, ui_configuration_steps)[source]

Scenario: Playbook configuration may be deleted in UI.

Setup:

  1. Create cluster via API
  2. Create playbook cluster deploy configuration via API

Steps:

  1. Delete playbook cluster deploy configuration via UI

Teardown:

  1. Delete cluster via API
whale.decapod_ui.tests.test_configuration.test_update_config_cluster_name(playbook_config_deploy, cluster_steps, ui_configuration_steps)[source]

Scenario: Playbook configuration may be updated in UI.

Setup:

  1. Create cluster via API
  2. Create playbook cluster deploy configuration via API

Steps:

  1. Create second cluster via API
  2. Update cluster name of playbook configuration using UI

Teardown:

  1. Delete playbook configuration via API
  2. Delete clusters via API

Execution tests

whale.decapod_ui.tests.test_execution.test_create_execution_deploy_cluster(playbook_config_deploy, execution_steps, ui_configuration_steps)[source]

Scenario: Execution for cluster deployment may be created in UI.

Setup:

  1. Create cluster via API
  2. Create playbook cluster deploy configuration via API

Steps:

  1. Create execution via UI
  2. Check execution was successfully completed via API

Teardown:

  1. Delete playbook configuration via API
  2. Delete cluster via API
whale.decapod_ui.tests.test_execution.test_create_execution_purge_cluster(cluster_steps, deploy_cluster, playbook_config_steps, execution_steps, ui_configuration_steps)[source]

Scenario: Execution for cluster deletion may be created in UI.

Setup:

  1. Create cluster via API
  2. Create playbook configuration for cluster deployment via API
  3. Create execution for cluster deployment via API

Steps:

  1. Create playbook configuration for cluster deletion via API
  2. Create execution for cluster deletion via UI
  3. Check cluster has been deleted

Teardown:

  1. Delete playbook configurations

User UI tests

whale.decapod_ui.tests.test_user.test_create_user(role, user_steps, ui_user_steps)[source]

Scenario: User may be created in UI.

Setup:

  1. Create role using API

Steps:

  1. Create user via UI
  2. Find user by login via API

Teardown:

  1. Delete user via API
  2. Delete role using API
whale.decapod_ui.tests.test_user.test_delete_user(user, ui_user_steps)[source]

Scenario: User may be deleted in UI.

Setup:

  1. Create role using API
  2. Create user via API

Steps:

  1. Delete user via UI

Teardown:

  1. Delete role using API
whale.decapod_ui.tests.test_user.test_update_user(user, role_steps, user_steps, ui_user_steps)[source]

Scenario: User may be updated in UI.

Setup:

  1. Create role using API
  2. Create user via API

Steps:

  1. Create new role using API
  2. Update user login, full name, email and role via UI
  3. Find user by login via API

Teardown:

  1. Delete user via API
  2. Delete created roles using API