Horizon¶
Tests launching¶
py.test stepler/horizon
Special environment variables:
VIRTUAL_DISPLAYsays py.test to use xvfb. Not specified by default.
Required software:
firefox v45 or less- modern firefox versions require geckodriver, which is unstable stillavconv- is used to capture tests videoxvfb- optionally, if you are going to use virtual X11 display
Note
It requires X11 display to launch firefox. With server distributive it’s
recommended to use xvfb. Environment variable DISPLAY should be
defined and point to actual X11 display. Otherwise tests will be failed.
Horizon conftest¶
Contains fixtures specific for horizon (UI testing).
-
stepler.horizon.conftest.admin_only(credentials, admin_project_resources)[source]¶ Function fixture to set admin credentials to log in horizon.
Note
It should be used only in test and never in other fixture in order to avoid undefined behavior.
See also
-
stepler.horizon.conftest.allocate_floating_ip(floating_ips_steps_ui)[source]¶ Fixture to create floating IP with options.
Can be called several times during test.
Parameters: floating_ips_steps_ui (object) – instantiated floating ips steps Yields: function – function to allocate floating IP
-
stepler.horizon.conftest.any_one(request, credentials, admin_project_resources, user_project_resources)[source]¶ Session fixture to define user to log in horizon.
Parameters: request (object) – pytest request parametrized with values adminanduser.Note
It should be used only in test and never in other fixture in order to avoid undefined behavior.
See also
-
stepler.horizon.conftest.api_access_steps_ui(login, horizon)[source]¶ Fixture to get api access steps.
Parameters: - login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated UI api access steps
Return type:
-
stepler.horizon.conftest.auth_steps(horizon)[source]¶ Function fixture to get auth steps.
Parameters: horizon (object) – instantiated horizon web application Returns: instantiated auth steps Return type: stepler.horizon.steps.AuthSteps
-
stepler.horizon.conftest.container(create_container_ui)[source]¶ Fixture to create container with default options before test.
Parameters: - create_container_ui (function) – function to create container
- options (with) –
Returns: dict with container name
Return type:
-
stepler.horizon.conftest.containers_steps_ui(login, horizon)[source]¶ Fixture to get containers steps.
Parameters: - login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated containers steps
Return type:
-
stepler.horizon.conftest.create_container_ui(containers_steps_ui)[source]¶ Callable fixture to create container with options.
Can be called several times during test.
Parameters: containers_steps_ui (obj) – instantiated containers steps Yields: function – function to create container with options
-
stepler.horizon.conftest.defaults_steps_ui(login, horizon)[source]¶ Fixture to get defaults steps.
Parameters: - login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated UI defaults steps
Return type:
-
stepler.horizon.conftest.flavors_steps_ui(flavor_steps, login, horizon)[source]¶ Fixture to get flavors steps.
flavor_steps instance is used for flavors cleanup.
Parameters: - flavor_steps (object) – instantiated flavor steps
- login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated flavors steps
Return type:
-
stepler.horizon.conftest.floating_ip(allocate_floating_ip)[source]¶ Fixture to create floating IP with default options before test.
Parameters: allocate_floating_ip (function) – function to allocate floating IP Returns: floating IP Return type: AttrDict
-
stepler.horizon.conftest.floating_ips_steps_ui(network_setup, login, horizon)[source]¶ Fixture to get floating IPs steps.
Parameters: - network_setup (None) – should set up network before steps using
- login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated floating IP steps
Return type:
-
stepler.horizon.conftest.horizon()[source]¶ Function fixture to launch browser and open horizon page.
It launches browser before tests and closes after.
Yields: stepler.horizon.app.Horizon – instantiated horizon web application
-
stepler.horizon.conftest.horizon_autouse(logger, video_capture, admin_project_resources, user_project_resources)[source]¶ Function fixture to aggregate and execute other fixtures.
It is used as one entry point for fixtures, which would like to be executed as autouse.
-
stepler.horizon.conftest.horizon_create_security_group(neutron_security_group_steps)[source]¶ Callable function fixture to create security group with options.
Parameters: neutron_security_group_steps (object) – instantiated security groups steps Returns: function to create security group Return type: function
-
stepler.horizon.conftest.horizon_image(horizon_images)[source]¶ Fixture to create cirros image with default options.
Parameters: horizon_images (list) – list of created images Returns: glance image Return type: object
-
stepler.horizon.conftest.horizon_images(request, get_glance_steps, uncleanable, credentials)[source]¶ Fixture to create cirros images with default options.
Parameters: - request (object) – py.test’s SubRequest instance
- get_glance_steps (function) – function to get glance steps
- uncleanable (AttrDict) – data structure with skipped resources
- credentials (object) – CredentialsManager instance
Returns: images list
Return type:
-
stepler.horizon.conftest.horizon_security_group(horizon_create_security_group)[source]¶ Function fixture to create security group before test.
Args: horizon_create_security_group (function): function to create security
group with options.Returns: security group Return type: dict
-
stepler.horizon.conftest.horizon_server(horizon_servers)[source]¶ Function fixture to create server with default options before test.
Parameters: horizon_servers (list) – list with one nova server Returns: nova server Return type: object
-
stepler.horizon.conftest.horizon_server_with_private_image(horizon_servers_with_private_image)[source]¶ Function fixture to create server with default options before test.
Parameters: horizon_servers (list) – list with one nova server Returns: nova server Return type: object
-
stepler.horizon.conftest.horizon_servers(request, cirros_image, security_group, net_subnet_router, flavor_steps, server_steps)[source]¶ Function fixture to create servers with default options before test.
Parameters: - request (object) – py.test’s SubRequest instance
- cirros_image (object) – cirros image from glance
- security_group (object) – nova security group
- net_subnet_router (tuple) – neutron network, subnet, router
- flavor_steps (FlavorSteps) – instantiated flavor steps
- server_steps (ServerSteps) – instantiated server steps
Returns: nova servers
Return type:
-
stepler.horizon.conftest.horizon_servers_with_private_image(request, cirros_image_private, security_group, net_subnet_router, flavor_steps, server_steps)[source]¶ Function fixture to create servers with default options before test.
Parameters: - request (object) – py.test’s SubRequest instance
- cirros_image (object) – cirros image from glance
- security_group (object) – nova security group
- net_subnet_router (tuple) – neutron network, subnet, router
- flavor_steps (FlavorSteps) – instantiated flavor steps
- server_steps (ServerSteps) – instantiated server steps
Returns: nova servers
Return type:
-
stepler.horizon.conftest.host_aggregates_steps_ui(login, horizon)[source]¶ Fixture to get host aggregates steps.
Parameters: - login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: - instantiated UI
host aggregates steps
Return type:
-
stepler.horizon.conftest.images_steps_ui(glance_steps, login, horizon)[source]¶ Fixture to get images steps.
glance_steps instance is used for images cleanup.
Parameters: - glance_steps (GlanceSteps) – instantiated glance steps
- login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated UI images steps
Return type:
-
stepler.horizon.conftest.instances_steps_ui(network_setup, server_steps, login, horizon)[source]¶ Function fixture to get instances steps.
server_steps instance is used for servers cleanup.
Parameters: - network_setup (None) – should set up network before steps using
- server_steps (ServerSteps) – instantiated server steps
- login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated instances steps
Return type:
-
stepler.horizon.conftest.keypairs_steps_ui(keypair_steps, login, horizon)[source]¶ Fixture to get keypairs steps.
keypair_steps instance is used for keypairs cleanup.
Parameters: - keypair_steps (object) – instantiated keypair steps
- login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated UI keypairs steps
Return type:
-
stepler.horizon.conftest.login(auth_steps, credentials)[source]¶ Function fixture to log in horizon.
Logs in horizon UI before test. Logs out after test.
Parameters: auth_steps (AuthSteps) – instantiated auth steps
-
stepler.horizon.conftest.namespaces_steps_ui(login, horizon)[source]¶ Fixture to get namespaces steps.
Parameters: - login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated UI namespaces steps
Return type:
-
stepler.horizon.conftest.network_setup(credentials, admin_project_resources, user_project_resources, get_network_steps, get_router_steps, get_subnet_steps, uncleanable)[source]¶ Session fixture to setup network.
For generated user and admin projects it creates internal network, subnet and router and joins them with external network via router. After tests it deletes created router, network and subnet.
Parameters: - credentials (obj) – CredentialsManager instance
- admin_project_resources (AttrDict) – admin project resources
- user_project_resources (AttrDict) – user project resources
- get_network_steps (function) – function to get network steps
- get_router_steps (function) – function to get router steps
- get_subnet_steps (function) – function to get subnet steps
- uncleanable (AttrDict) – data structure with skipped resources
-
stepler.horizon.conftest.networks_steps_ui(network_setup, network_steps, login, horizon)[source]¶ Functional fixture to get UI networks steps.
network_steps instance is used for networks cleanup.
Parameters: - network_setup (None) – should set up network before steps using
- network_steps (NetworkSteps) – instantiated network steps
- login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated UI network steps
Return type:
-
stepler.horizon.conftest.new_user_login(login, new_user_with_project, auth_steps)[source]¶ Fixture to log in as new user.
Parameters: Yields: AttrDict – dict with username, password and project name
-
stepler.horizon.conftest.overview_steps_ui(login, horizon)[source]¶ Fixture to get overview steps.
Parameters: - login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated UI overview steps
Return type:
-
stepler.horizon.conftest.project_name_non_ascii(projects_steps_ui, admin_project_resources)[source]¶ Fixture to create project with non ascii name and switch to it.
-
stepler.horizon.conftest.projects_steps_ui(login, horizon)[source]¶ Fixture to get projects steps.
Parameters: - login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated UI projects steps
Return type:
-
stepler.horizon.conftest.routers_steps_ui(network_setup, router_steps, login, horizon)[source]¶ Function fixture to get routers steps.
router_steps instance is used for routers cleanup.
Parameters: - network_setup (None) – should set up network before steps using
- router_steps (RouterSteps) – instantiated router steps
- login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated routers steps
Return type:
-
stepler.horizon.conftest.security_groups_steps_ui(login, horizon)[source]¶ Fixture to get security groups steps.
Parameters: - login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
-
stepler.horizon.conftest.settings_steps_ui(login, horizon)[source]¶ Get settings steps.
Parameters: - login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated settings steps
Return type:
-
stepler.horizon.conftest.stacks_steps_ui(stack_steps, login, horizon)[source]¶ Functional fixture to get UI stacks steps. :param stack_steps: instantiated stack steps :type stack_steps: StackSteps :param login: should log in horizon before steps using :type login: None :param horizon: instantiated horizon web application :type horizon: Horizon
Returns: instantiated stacks steps Return type: stepler.horizon.steps.StacksSteps
-
stepler.horizon.conftest.update_defaults(defaults_steps_ui)[source]¶ Callable fixture to update defaults.
Parameters: defaults_steps_ui (DefaultsSteps) – instantiated defaults steps Yields: function – function to update defaults
-
stepler.horizon.conftest.update_settings(settings_steps_ui)[source]¶ Update settings.
Parameters: settings_steps (SettingsSteps) – instantiated settings steps Yields: function – function to update user settings
-
stepler.horizon.conftest.user_only(credentials, user_project_resources)[source]¶ Function fixture to set user credentials to log in horizon.
Note
It should be used only in test and never in other fixture in order to avoid undefined behavior.
See also
-
stepler.horizon.conftest.users_steps_ui(login, horizon)[source]¶ Fixture to get users steps.
Parameters: - login (None) – should log in horizon before steps using
- horizon (Horizon) – instantiated horizon web application
Returns: instantiated users steps
Return type:
-
stepler.horizon.conftest.virtual_display(request)[source]¶ Run test in virtual X server if env var is defined.
-
stepler.horizon.conftest.volume_types_steps_ui(horizon, login)[source]¶ Get volume types UI steps.
Parameters: - horizon (Horizon) – instantiated horizon web application
- login (None) – should log in horizon before steps using
-
stepler.horizon.conftest.volumes_steps_ui(volume_steps, snapshot_steps, backup_steps, login, horizon)[source]¶ Fixture to get volumes steps.
volume_steps instance is used for volumes cleanup. snapshot_steps instance is used for snapshots cleanup. backup_steps instance is used for backups cleanup.
Parameters: - volume_steps (VolumeSteps) – instantiated volume steps
- snapshot_steps (SnapshotSteps) – instantiated snapshot steps
- backup_steps (BackupSteps) – instantiated backup steps
- horizon (Horizon) – instantiated horizon web application
- login (None) – should log in horizon before steps using
Horizon steps¶
Contains steps specific for horizon (UI testing).
-
class
stepler.horizon.steps.ApiAccessSteps(app)[source]¶ Api access steps.
Step to download RCv2 file via menu.
Step to download RCv3 file via menu.
-
class
stepler.horizon.steps.AuthSteps(app)[source]¶ Authentication steps.
-
class
stepler.horizon.steps.ContainersSteps(app)[source]¶ Containers steps.
-
check_container_name_volume_backups()[source]¶ Step to check that container has name ‘volumebackups’.
-
-
class
stepler.horizon.steps.FlavorsSteps(app)[source]¶ Flavors steps.
-
class
stepler.horizon.steps.ImagesSteps(app)[source]¶ Images steps.
-
add_metadata(image_name, metadata, check=True)[source]¶ Step to add image metadata.
Parameters: - image_name (str) – image name
- metadata (dict) – image metadata {name: value}
- check (bool) – flag whether to check step or not
Raises: TimeoutExpired– if image status is not ‘Active’AssertionError– if check failed
-
check_flavors_limited_in_launch_instance_form(image_name, disk_size, ram_size)[source]¶ Step to check flavors are limited in launch instance form.
-
check_image_info(image_name, expected_description=None, expected_metadata=None)[source]¶ Step to check image detailed info.
This step checks that values of description/metadata in detailed info are correct. For ‘None’ values, these data must be missing.
Parameters: - image_name (str) – image name
- expected_description (str|None) – expected image description
- expected_metadata (dict|None) – expected image metadata {name: value} (max = 2 keys)
Raises: AssertionError– if real and expected data are different
-
check_non_public_image_not_visible(image_name)[source]¶ Step to check non-public image is not visible for other projects.
Parameters: image_name (str) – image name Raises: AssertionError– if image is available in public images list
-
check_page_is_available(image_name, check=True)[source]¶ Step to check page is available and then close it.
Parameters: image_name – image name
-
create_image(image_name, image_description=None, image_url='http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img', image_file=None, disk_format='QCOW2', min_disk=None, min_ram=None, protected=False, big_image=False, check=True)[source]¶ Step to create image.
Parameters: - image_name (str) – image name
- image_description (object|None) – image description
- image_url (str) – URL of image location
- image_file (str) – path of image file
- disk_format (str) – disk format
- min_disk (int) – min disk size (in Gb)
- min_ram (int) – min RAM size (in Mb)
- protected (bool) – indicator whether image is protected or not
- big_image (bool) – indicator whether image has big size or not
- check (bool) – flag whether to check step or not
-
delete_metadata(image_name, metadata, check=True)[source]¶ Step to delete metadata.
Parameters: - image_name (str) – image name
- metadata (dict) – image metadata {name: value}
- check (bool) – flag whether to check step or not
Raises: TimeoutExpired– if image status is not ‘Active’
-
launch_instance(image_name, instance_name, network_name, flavor, check=True)[source]¶ Step to launch instance from image.
-
open_link_in_new_tab(image_name, check=True)[source]¶ Step to open link of image info in new tab.
Parameters: image_name (str) – image name
-
update_image(image_name, new_image_name=None, description=None, min_disk=None, min_ram=None, protected=False, check=True)[source]¶ Step to update image.
Parameters: - image_name (str) – image name
- new_image_name (str) – new image name
- description (str|None) – image description
- metadata (dict|None) – image metadata {name: value} (max = 2 keys)
- min_disk (int|None) – minimal disk size
- min_ram (int|None) – minimal ram
- protected (bool) – flag whether to set protected or not
- check – flag whether to check step or not
-
-
class
stepler.horizon.steps.InstancesSteps(app)[source]¶ Instances steps.
-
add_security_group(instance_name, security_group_name, check=True)[source]¶ Step to add security group.
-
check_admin_instances_pagination(instance_names)[source]¶ Step to check instances pagination as admin.
-
check_admin_instances_pagination_filter(instance_names)[source]¶ Step to check instances pagination with filtering as admin.
-
check_flavor_absent_in_instance_launch_form(flavor)[source]¶ Step to check flavor is absent in instance launch form.
-
check_instances_pagination_filter(instance_names)[source]¶ Step to check instances pagination with filtering.
-
check_instances_sum(instance_names, min_instances_sum=2)[source]¶ Step to check quantity of instances.
-
create_instance(instance_name=None, network_name='internal_net', count=1, check=True)[source]¶ Step to create instance.
-
create_instance_snapshot(instance_name, snapshot_name=None, check=True)[source]¶ Step to create instance snapshot.
-
-
class
stepler.horizon.steps.KeypairsSteps(app)[source]¶ Keypairs steps.
Step to check import Key Pair disabled if quota exceeded.
-
class
stepler.horizon.steps.NamespacesSteps(app)[source]¶ Namespaces steps.
-
class
stepler.horizon.steps.NetworksSteps(app)[source]¶ networks steps.
-
add_subnet(network_name, subnet_name=None, network_address='10.109.3.0/24', check=True)[source]¶ Step to add subnet for network.
-
admin_update_network(network_name, new_network_name=False, shared=False, check=True)[source]¶ Step to update network as admin.
Step to check network share status.
-
create_network(network_name=None, shared=False, create_subnet=False, subnet_name='subnet', network_adress='192.168.0.0/24', gateway_ip='192.168.0.1', check=True)[source]¶ Step to create network.
Step to check user can’t create shared network.
-
-
class
stepler.horizon.steps.OverviewSteps(app)[source]¶ Overview steps.
-
class
stepler.horizon.steps.ProjectsSteps(app)[source]¶ Projects steps.
-
class
stepler.horizon.steps.RoutersSteps(app)[source]¶ Routers steps.
-
class
stepler.horizon.steps.SecurityGroupsSteps(app)[source]¶ Security groups steps.
-
add_group_rule(group_name, port_number='25', check=True)[source]¶ Step to add rule to the security group.
-
-
class
stepler.horizon.steps.SettingsSteps(app)[source]¶ Settings steps.
-
class
stepler.horizon.steps.StacksSteps(app)[source]¶ Stacks steps.
-
change_stack_template(stack, admin_password, env_data='\nresource_registry:\n OS::Nova::Server::MyServer: myserver.yaml\n\nparameter_defaults:\n NetworkName: my_network', template_data='\nheat_template_version: 2013-05-23\n\ndescription: Just an example\n\nparameters:\n key_name:\n type: string\n default: test\n description: Name of an existing key pair to use for the instance\n flavor:\n type: string\n description: Instance type for the instance to be created\n default: m1.tiny_test\n image:\n type: string\n default: TestCirros-0.3.5\n description: ID or name of the image to use for the instance\n\nresources:\n my_instance:\n type: OS::Nova::Server\n properties:\n name: My Cirros Instance\n image: { get_param: image }\n flavor: { get_param: flavor }\n key_name: { get_param: key_name }', template_source='Direct Input', env_source='Direct Input', new_flavor='m1.tiny_test', new_image='TestCirros-0.3.5', new_keypair='test', check=True)[source]¶ Step to change stack template.
-
create_stack(stack_name, admin_password, keypair, template_source='Direct Input', env_source='Direct Input', flavor='m1.extra_tiny_test', image='TestCirros-0.3.5', check=True)[source]¶ Step to create stack.
-
-
class
stepler.horizon.steps.UsersSteps(app)[source]¶ Users steps.
Step to check users items is absent in menu.
-
class
stepler.horizon.steps.VolumeTypesSteps(app)[source]¶ Volume types steps.
-
class
stepler.horizon.steps.VolumesSteps(app)[source]¶ Volumes steps.
-
accept_transfer(transfer_id, transfer_key, volume_name, check=True)[source]¶ Step to accept transfer.
-
check_backup_creation_form_name_field_max_length(volume_name, expected_length)[source]¶ Step to check max possible length of backup name input.
Parameters: - volume_name (str) – name of volume to open backup creating form on it
- expected_length (int) – expected max form field length
Raises: AssertionError– if actual max length is not equal to expected_length
-
check_default_migration_policy(volume_name)[source]¶ Step to check default migration policy.
Parameters: volume_name (str) – name of volume to open snapshot create form on it Raises: AssertionError– if default migration policy not equal On Demand
-
check_snapshot_creation_form_name_field_max_length(volume_name, expected_length)[source]¶ Step to check max length of snapshot creation form name input.
Parameters: - volume_name (str) – name of volume to open snapshot create form on it
- expected_length (int) – expected max form field length
Raises: AssertionError– if actual max length is not equal to expected_length
-
check_volume_present_in_admin_volume(volume_name)[source]¶ Step to check that volume present in table admin volumes.”” :param volume_name: name of expected volume :type volume_name: str
- Raise:
- AssertionError: volume_name is not present in list of names
-
create_backup(volume_name, backup_name=None, description=None, container=None, check=True)[source]¶ Step to create volume backup.
-
create_snapshot(volume_name, snapshot_name=None, description=None, check=True)[source]¶ Step to create volume snapshot.
-
create_volume(volume_name=None, source_type='Image', source_name=None, volume_type=None, volume_size=None, description=None, check=True)[source]¶ Step to create volume.
Parameters: - volume_name (str) – name of volume
- source_type (str) – type of source. Should be one of “Image” or “Volume”
- source_name (str) – name of source (image or volume) to create volume from it
- volume_type (str) – type of volume
- volume_size (int) – Size of volume in GB
- description (str) – description of volume
- check (bool) – flag whether to check step or not
Returns: name of created volume
Return type: str
Raises: AssertionError– if check failed
-
create_volume_from_snapshot(snapshot_name, check=True)[source]¶ Step to create volume from snapshot.
-
launch_volume_as_instance(volume_name, instance_name, network_name, count=1, check=True)[source]¶ Step to launch volume as instance.
-
update_snapshot(snapshot_name, new_snapshot_name, description=None, check=True)[source]¶ Step to update volume snapshot.
-
Horizon tests¶
Auth tests¶
Container tests¶
-
class
stepler.horizon.tests.test_containers.TestAnyOne[source]¶ Tests for any one.
-
test_available_public_container_url(create_container_ui, containers_steps_ui)[source]¶ Scenario: Verify that public container url is available.
Steps:
- Create public container using UI
- Create folder using UI
- Check folder is available by public url
- Delete folder
Teardown:
- Delete container using UI
-
test_create_public_container(create_container_ui)[source]¶ Scenario: Verify that one can create public container.
Steps:
- Create public container using UI
Teardown:
- Delete container using UI
-
Credentials tests¶
-
class
stepler.horizon.tests.test_credentials.TestAdminOnly[source]¶ Tests for admin only.
-
test_download_rc_v2_non_ascii_project_name(project_name_non_ascii, api_access_steps_ui)[source]¶ Scenario: Verify that RCv2 is correct with non-ASCII project name.
Setup:
- Create project with non-ASCII name
- Switch to project with non-ASCII name
Steps:
- Download RCv2 file using UI
Teardown:
- Delete project with non-ASCII name
-
-
class
stepler.horizon.tests.test_credentials.TestAnyOne[source]¶ Tests for any one.
-
test_download_ec2(api_access_steps_ui)[source]¶ Scenario: Verify that user can download EC2 credentials.
Steps:
- Download ec2 file using UI
-
test_download_rc_v2(api_access_steps_ui)[source]¶ Scenario: Verify that user can download RCv2.
Steps:
- Download RCv2 file using UI
Scenario: Verify that user can download RCv2 via menu.
Steps:
- Download RCv2 file via menu using UI
-
test_download_rc_v3(api_access_steps_ui)[source]¶ Scenario: Verify that user can download RCv3.
Steps:
- Download RCv3 file using UI
Scenario: Verify that user can download RCv3 via menu.
Steps:
- Download RCv3 file via menu using UI
-
Quota tests¶
Flavor tests¶
-
class
stepler.horizon.tests.test_flavors.TestAdminOnly[source]¶ Tests for admin only.
-
test_create_delete_flavor(flavors_steps_ui)[source]¶ Scenario: Verify that admin can create and delete flavor.
Steps:
- Create flavor using UI
- Delete flavor using UI
-
test_delete_flavors(flavors, flavors_steps_ui)[source]¶ Scenario: Verify that admin can delete flavors as bunch.
Setup:
- Create flavors using API
Steps:
- Delete flavors as bunch using UI
-
test_flavor_update_metadata(flavor, flavors_steps_ui)[source]¶ Scenario: Verify that admin can update flavor metadata.
Setup:
- Create flavor using API
Steps:
- Update flavor metadata using UI
Teardown:
- Delete flavor using API
-
test_modify_flavor_access(flavor, auth_steps, flavors_steps_ui, instances_steps_ui)[source]¶ Scenario: Verify that admin can modify flavor access.
Setup:
- Create flavor using API
Steps:
- Change flavor access using UI
- Logout
- Login with user credentials
- Check flavor is absent in instance launch form
- Logout
- Login with admin credentials
Teardown:
- Delete flavor using API
-
Floating IP tests¶
-
class
stepler.horizon.tests.test_floatingips.TestAnyOne[source]¶ Tests for anyone.
-
test_floating_ip_associate(horizon_server, floating_ip, floating_ips_steps_ui)[source]¶ Scenario: Verify that user can associate floating IP.
Setup:
- Create floating IP using API
- Create server using API
Steps:
- Associate floating IP to server using UI
Teardown:
- Delete floating IP using API
- Delete server using API
-
Host aggregate tests¶
Image tests¶
-
class
stepler.horizon.tests.test_images.TestAnyOne[source]¶ Tests for any one.
-
test_add_delete_image_metadata(horizon_image, images_steps_ui)[source]¶ Scenario: Check addition and deletion of image metadata.
Setup:
- Create image using API
Steps:
- Check that no metadata in Custom properties
- Add metadata using UI
- Check that metadata appeared in Custom properties and values are correct
- Delete metadata using UI
- Check that metadata disappeared in Custom properties
Teardown:
- Delete image using API
-
test_create_volume_from_image(horizon_image, images_steps_ui, volumes_steps_ui)[source]¶ Scenario: Verify that user can create volume from image.
Setup:
- Create image using API
Steps:
- Create volume from image using UI
- Check that volume is present
- Delete volume using UI
Teardown:
- Delete image using API
-
test_delete_images(horizon_images, images_steps_ui)[source]¶ Scenario: Verify that user can delete images as bunch.
Setup:
- Create images using API
Steps:
- Delete images as bunch using UI
-
test_edit_image(horizon_image, images_steps_ui)[source]¶ Scenario: Verify that user can edit image.
Setup:
- Create image using API
Steps:
- Edit image name using UI
Teardown:
- Delete image using API
-
test_edit_image_description(horizon_image, images_steps_ui)[source]¶ Scenario: Check addition of image description.
Setup:
- Create image using API
Steps:
- Click on image and check that description is missing
- Edit image by adding description using UI
- Click on image and check description in detailed info
Teardown:
- Delete image using API
-
test_edit_image_disk_and_ram(horizon_image, images_steps_ui)[source]¶ Scenario: Check edition of minimum disk and RAM.
Setup:
- Create image using API
Steps:
- Edit image and set Minimum Disk = 60Gb and Minimum RAM = 0
- Try to launch instance
- Check that all flavors with disk < 60Gb are unavailable
- Edit image and set Minimum Disk = 0Gb and Minimum RAM = 4096Mb
- Try to launch instance
- Check that all flavors with ram < 4096Mb are unavailable
Teardown:
- Delete image using API
-
test_images_pagination(glance_steps, horizon_images, update_settings, images_steps_ui)[source]¶ Scenario: Verify images pagination works right and back.
Setup:
- Create images using API
Steps:
- Update
items_per_pageparameter to 1 using UI - Check images pagination using UI
Teardown:
- Delete images using API
-
test_launch_instance_from_image(horizon_image, images_steps_ui, instances_steps_ui)[source]¶ Scenario: Verify that user can launch instance from image.
Setup:
- Create image using API
Steps:
- Launch instance from image using UI
- Check that instance is present
- Delete instance using UI
Teardown:
- Delete image using API
-
test_open_image_info_in_new_tab(horizon_image, images_steps_ui)[source]¶ Scenario: Check opening image info in new tab works.
Setup:
- Create image using API
Steps:
- Open image info link in new tab
- Switch to the new tab with info
- Check this page exists and is available
Teardown:
- Delete image using API
-
test_public_image_visibility(images_steps_ui)[source]¶ Scenario: Verify that public image is visible for other users.
Steps:
- Check that public image is visible for different users using UI
-
test_remove_protected_image(horizon_image, images_steps_ui)[source]¶ Scenario: Verify that user can’t delete protected image.
Setup:
- Create image using API
Steps:
- Make image protected using UI
- Try to delete image using UI
- Close error notification
- Check that image is present
- Make image public using UI
Teardown:
- Delete image using API
-
test_set_image_disk_and_ram_size(images_steps_ui)[source]¶ Scenario: Image limits has influence on flavor choice.
Steps:
- Create image with min disk and min ram using UI
- Check that image limits has influence on flavor choice using UI
Teardown:
- Delete image using API
-
-
class
stepler.horizon.tests.test_images.TestUserOnly[source]¶ Tests for user only.
-
test_big_image_create_delete(images_steps_ui)[source]¶ Scenario: Check big image creation and deletion from file.
Steps:
- Create file 100Gb
- Create image from this file using UI
Teardown:
- Delete big file
- Delete image using API
-
test_image_privacy(glance_steps, images_steps_ui)[source]¶ Scenario: Non public image is not visible for other users.
Setup:
- Login as user to another project
Steps:
- Create image with public=False as admin using API
- Check that image is not available as public image using UI
Teardown:
- Delete image using API
-
Instance tests¶
-
class
stepler.horizon.tests.test_instances.TestAdminOnly[source]¶ Tests for admin only.
-
test_admin_delete_instance(horizon_server, instances_steps_ui)[source]¶ Scenario: Verify that user can delete instance as admin.
Setup:
- Create server using API
Steps:
- Delete server using UI as admin
-
test_admin_delete_instances(horizon_servers, instances_steps_ui)[source]¶ Scenario: Verify that user can delete instances as bunch as admin.
Setup:
- Create 3 servers using API
Steps:
- Delete servers as bunch using UI as admin
-
test_admin_filter_instances(horizon_servers, instances_steps_ui)[source]¶ Scenario: Verify that user can filter instances as admin.
Setup:
- Create two servers using API
Steps:
- Filter servers using UI as admin
- Reset filter using UI as admin
Teardown:
- Delete two servers using API
-
test_admin_instances_pagination(server_steps, horizon_servers, update_settings, instances_steps_ui)[source]¶ Scenario: Verify that instances pagination work for admin.
Setup:
- Create 3 servers using API
Steps:
- Check sum of instances
- Update
items_per_pageparameter to 1 using UI as admin - Check instances pagination using UI as admin
Teardown:
- Delete 3 servers using API
-
test_admin_instances_pagination_filter(server_steps, horizon_servers, update_settings, instances_steps_ui)[source]¶ Scenario: Verify that instances pagination work with filter for admin.
Setup:
- Create 3 servers using API
Steps:
- Update
items_per_pageparameter to 1 using UI as admin - Check instances pagination with filtering using UI as admin
Teardown:
- Delete 3 servers using API
-
test_delete_instances(horizon_servers, instances_steps_ui)[source]¶ Scenario: Verify that user can delete instances as bunch.
Setup:
- Create servers using API
Steps:
- Delete servers as bunch using UI
-
test_edit_instance_name(horizon_server, instances_steps_ui)[source]¶ Scenario: Verify that user can edit instance name.
Setup:
- Create server using API
Steps:
- Rename instance
Teardown:
- Delete server using API
-
test_edit_instance_security_group(horizon_security_group, horizon_server, instances_steps_ui)[source]¶ Scenario: Verify that user can edit instance security group.
Setup:
- Create server using API
Steps:
- Add security group to instance
Teardown:
- Delete server using API
-
test_launch_instances_together(instances_steps_ui, update_defaults)[source]¶ Scenario: Verify that user can create 20 instances together.
Steps:
- Set quotas to be able to run 50 servers
- Launch 5 servers at the same time
- Delete 5 servers as bunch
Teardown:
- Restore original value for instances parameter
-
test_nova_associate_ip(horizon_server, floating_ip, instances_steps_ui)[source]¶ Scenario: Verify associate/disassociate ip to instance.
Setup:
- Create server using API
- Create floating IP using API
Steps:
- Associate floating ip to instance
- Disassociate floating ip from instance
Teardown:
- Delete server using API
- Delete floating IP using API
-
-
class
stepler.horizon.tests.test_instances.TestAnyOne[source]¶ Tests for anyone.
-
test_create_instance(instances_steps_ui)[source]¶ Scenario: Verify that user can create and delete instance.
Steps:
- Create server using UI
- Delete server using UI
-
test_create_instance_snapshot(horizon_server, instances_steps_ui, images_steps_ui)[source]¶ Scenario: Verify that user can create instance snapshot.
Setup:
- Create server using API
Steps:
- Create snapshot
- Check that snapshot created
- Delete snapshot
Teardown:
- Delete server using API
-
test_filter_instances(horizon_servers, instances_steps_ui)[source]¶ Scenario: Verify that user can filter instances.
Setup:
- Create servers using API
Steps:
- Filter servers using UI
- Reset filter using UI
Teardown:
- Delete servers using API
-
test_instances_pagination(server_steps, horizon_servers, update_settings, instances_steps_ui)[source]¶ Scenario: Verify that instances pagination works.
Setup:
- Create 3 servers using API
Steps:
- Check sum of instances
- Update
items_per_pageparameter to 1 using UI - Check instances pagination using UI
Teardown:
- Delete 3 servers using API
-
test_instances_pagination_filter(server_steps, horizon_servers, update_settings, instances_steps_ui)[source]¶ Scenario: Verify that instances pagination work with filter.
Setup:
- Create 3 servers using API
Steps:
- Update
items_per_pageparameter to 1 using UI - Check instances pagination with filtering using UI
Teardown:
- Delete 3 servers using API
-
test_lock_instance(horizon_server, instances_steps_ui)[source]¶ Scenario: Verify that user can lock instance.
Setup:
- Create server using API
Steps:
- Lock server using UI
- Unlock server using UI
Teardown:
- Delete server using API
-
-
class
stepler.horizon.tests.test_instances.TestUserOnly[source]¶ Tests for user only.
-
test_delete_instances(horizon_servers_with_private_image, instances_steps_ui)[source]¶ Scenario: Verify that user can delete instances as bunch.
Setup:
- Create servers using API
Steps:
- Delete servers as bunch using UI
-
test_edit_instance_name(horizon_server_with_private_image, instances_steps_ui)[source]¶ Scenario: Verify that user can edit instance name.
Setup:
- Create server using API
Steps:
- Rename instance
Teardown:
- Delete server using API
-
test_edit_instance_security_group(horizon_security_group, horizon_server_with_private_image, instances_steps_ui)[source]¶ Scenario: Verify that user can edit instance security group.
Setup:
- Create server using API
Steps:
- Add security group to instance
Teardown:
- Delete server using API
-
test_nova_associate_ip(horizon_server_with_private_image, floating_ip, instances_steps_ui)[source]¶ Scenario: Verify associate/disassociate ip to instance.
Setup:
- Create server using API
- Create floating IP using API
Steps:
- Associate floating ip to instance
- Disassociate floating ip from instance
Teardown:
- Delete server using API
- Delete floating IP using API
-
Keypair tests¶
-
class
stepler.horizon.tests.test_keypairs.TestAdminOnly[source]¶ Tests for admin only.
-
test_import_key_pair_quota_exceeded(keypair, update_defaults, keypairs_steps_ui)[source]¶ Scenario: Verify button import Key Pair is disabled if quota exceeded.
Setup:
- Create key pair using API
Steps:
- Set key pairs quota to 1
- Check that button import Key Pair is disabled
Teardown:
- Delete key pair using API
-
Metadata definitions tests¶
Network tests¶
-
class
stepler.horizon.tests.test_networks.TestAdminOnly[source]¶ Tests for admin only.
Scenario: Verify that admin can create shared network.
Steps:
- Create shared network using UI
- Delete network using UI
Project tests¶
-
class
stepler.horizon.tests.test_projects.TestAdminOnly[source]¶ Tests for admin only.
-
test_create_project(projects_steps_ui)[source]¶ Scenario: Verify that admin can create project.
Steps:
- Create project using UI
- Delete project using UI
-
test_disable_enable_project(project, projects_steps_ui)[source]¶ Scenario: Disable and enable created project.
Setup:
- Create project with API
Steps:
- Disable created project with UI
- Enable it using UI
Teardown:
- Delete project via API
-
test_manage_project_members(project, admin_project_resources, projects_steps_ui)[source]¶ Scenario: Check we can manage project members.
Setup:
- Create project with API
Steps:
- Manage project members using UI
Teardown:
- Delete project with UI
-
test_switch_projects(admin_project_resources, project, projects_steps_ui, overview_steps_ui, security_groups_steps_ui)[source]¶ Scenario: Check resources in different projects.
Setup:
- Create project with API
Steps:
- Check overview of base project before creating resource
- Create security group for base project using UI
- Check that quantity of resource for base project has been grown
- Manage project members using UI
- Switch on created project
- Check overview before creating resource
- Create security group using UI
- Check that quantity of resource has been grown
Teardown:
- Delete project via API
-
Router tests¶
Security group tests¶
-
class
stepler.horizon.tests.test_security_groups.TestAnyOne[source]¶ Tests for any user.
User settings tests¶
-
class
stepler.horizon.tests.test_user_settings.TestAdminOnly[source]¶ Tests for admin only.
-
test_change_own_password(new_user_login, auth_steps, settings_steps_ui)[source]¶ Scenario: Verify that user can change it’s password.
Setup:
- Create user using API
- Login as new user
Steps:
- Change user password using UI
- Try to login using old password
- Check that alert is present
- Login using new password
Teardown:
- Delete user using API
-
test_change_own_settings(new_user_login, update_settings, settings_steps_ui)[source]¶ Scenario: Verify that user can change his settings.
Setup:
- Create user using API
- Login as new user
Steps:
- Update user settings using UI
- Refresh page
- Check that settings have been updated using UI
Teardown:
- Restore initial values for settings
- Delete user using API
-
Users tests¶
-
class
stepler.horizon.tests.test_users.TestAdminOnly[source]¶ Tests for admin only.
-
test_change_user_password(new_user_with_project, users_steps_ui, auth_steps)[source]¶ Scenario: Verify that admin can change user password.
Setup:
- Create user using API
Steps:
- Change user password using UI
- Logout
- Login with user credentials
- Logout
- Login with admin credentials
Teardown:
- Delete user using API
-
test_create_user(users_steps_ui)[source]¶ Scenario: Verify that admin can create and delete user.
Steps:
- Create user using UI
- Delete user using UI
-
test_delete_users(users, users_steps_ui)[source]¶ Scenario: Verify that admin can delete users as bunch.
Setup:
- Create users using API
Steps:
- Delete users as bunch using UI
-
test_disable_enable_user(user, users_steps_ui)[source]¶ Scenario: Verify that admin can enable and disable user.
Setup:
- Create user using API
Steps:
- Disable user using UI
- Enable user using UI
Teardown:
- Delete user using API
-
test_filter_users(users_steps_ui)[source]¶ Scenario: Verify that admin can filter users.
Steps:
- Filter users using UI
Scenario: Verify that admin can’t delete himself.
Steps:
- Try to delete admin user using UI
- Close error notification
- Check that admin user is present
-
test_impossible_delete_admin_via_dropdown(users_steps_ui)[source]¶ Scenario: Admin can’t be deleted with dropdown menu.
Steps:
- Try to delete admin user from dropdown menu using UI
-
test_impossible_disable_admin(users_steps_ui)[source]¶ Scenario: Verify that admin can’t disable himself.
Steps:
- Try to disable admin user using UI
- Check that user is enabled
-
test_sort_users(users_steps_ui)[source]¶ Scenario: Verify that admin can sort users.
Steps:
- Sort users using UI
- Refresh page
- Sort users in reversed order using UI
-
Volume backup tests¶
-
class
stepler.horizon.tests.test_volume_backups.TestAnyOne[source]¶ Tests for any user.
-
test_create_volume_backup(volume, volumes_steps_ui)[source]¶ Scenario: Create volume backup.
Setup:
- Create volume using API
Steps:
- Create backup using UI
Teardown:
- Delete backup using API
- Delete volume using API
-
test_create_volume_backup_with_description(volume, volumes_steps_ui)[source]¶ Scenario: Create volume backup with description.
Setup:
- Create volume using API
Steps:
- Create backup with description
Teardown:
- Delete backup using API
- Delete volume using API
-
test_create_volume_backup_with_max_length_description(volume, volumes_steps_ui)[source]¶ Scenario: Create volume backup with description length == max.
Setup:
- Create volume using API
Steps:
- Create backup with long (255 symbols) description using UI
Teardown:
- Delete backup using API
- Delete volume using API
-
test_delete_volume_backups(volume_backups, volumes_steps_ui)[source]¶ Scenario: Delete volume backups as bunch.
Setup:
- Create volume using API
- Create backups using API
Steps:
- Delete backups as bunch using UI
Teardown:
- Delete volume using API
-
test_volume_backup_form_max_name_length(volume, volumes_steps_ui)[source]¶ Scenario: Create volume backup with name length > 255.
Setup:
- Create volume using API
Steps:
- Open backup creation form using UI
- Check that backup name input can’t contains more than 255 symbols
Teardown:
- Delete volume using API
-
test_volume_backups_pagination(backup_steps, volume_backups, update_settings, volumes_steps_ui)[source]¶ Scenario: Verify that volume backups pagination works.
Setup:
- Create volume using API
- Create some backups using API
Steps:
- Update
items_per_pageparameter to 1 using UI - Check backups pagination using UI
Teardown:
- Delete backups using API
- Delete volumes using API
-
Volume snapshot tests¶
-
class
stepler.horizon.tests.test_volume_snapshots.TestAnyOne[source]¶ Tests for any user.
-
test_create_volume_from_snapshot(volume_snapshot, volumes_steps_ui)[source]¶ Scenario:** Verify that user can create volume from snapshot.
Setup:
- Create volume using API
- Create snapshot using API
Steps:
- Create volume from snapshot using UI
- Delete created volume using UI
Teardown:
- Delete snapshot using API
- Delete volume using API
-
test_create_volume_snapshot(volume, volumes_steps_ui)[source]¶ Scenario: Create volume snapshot.
Setup:
- Create volume using API
Steps:
- Create snapshot using UI
Teardown:
- Delete snapshot using API
- Delete volume using API
-
test_create_volume_snapshot_with_description(volume, volumes_steps_ui)[source]¶ Scenario: Create volume snapshot with description.
Setup:
- Create volume using API
Steps:
- Create volume snapshot with description using UI
Teardown:
- Delete snapshot using API
- Delete volume using API
-
test_create_volume_snapshot_with_long_name(volume, volumes_steps_ui)[source]¶ Scenario: Create volume snapshot with name length > 255.
Setup:
- Create volume using API
Steps:
- Check that snapshot’s name on snapshot’s creation form can
- contain max 255 symbols
Teardown:
- Delete snapshot using API
- Delete volume using API
-
test_create_volume_snapshot_with_max_length_description(volume, volumes_steps_ui)[source]¶ Scenario: Create volume snapshot with description length == max.
Setup:
- Create volume using API
Steps:
- Create snapshot with long (255 symbols) description using UI
Teardown:
- Delete snapshot using API
- Delete volume using API
-
test_delete_volume_snapshot(volume_snapshot, volumes_steps_ui)[source]¶ Scenario: Create volume snapshot.
Setup:
- Create volume using API
- Create snapshot using API
Steps:
- Delete snapshot using UI
Teardown:
- Delete volume using API
-
test_edit_volume_snapshot(volume_snapshot, volumes_steps_ui)[source]¶ Scenario:** Verify that user can edit volume snapshot.
Setup:
- Create volume using API
- Create snapshot using API
Steps:
- Edit snapshot name using UI
Teardown:
- Delete snapshot using API
- Delete volume using API
-
test_volume_snapshots_pagination(snapshot_steps, volume_snapshots, update_settings, volumes_steps_ui)[source]¶ Scenario:** Verify that snapshots pagination works right and back.
Setup:
- Create volume using API
- Create some snapshots using API
Steps:
- Update
items_per_pageparameter to 1 using UI - Check snapshots pagination using UI
Teardown:
- Delete snapshots using API
- Delete volume using API
-
Volume type tests¶
Volume tests¶
-
class
stepler.horizon.tests.test_volumes.TestAdminOnly[source]¶ Tests for admin only.
-
test_change_volume_status(volume, volumes_steps_ui)[source]¶ Scenario: Verify that admin can change volume status.
Setup:
- Create volume using API
Steps:
- Change volume status to
Errorusing UI - Change volume status to
Availableusing UI
Teardown:
- Delete volume using API
-
test_change_volume_type(volume_type, volume, volumes_steps_ui)[source]¶ Scenario: Verify that user can change volume type.
Setup:
- Create volume using API
- Create volume type using API
Steps:
- Change volume type using UI
Teardown:
- Delete volume using API
- Delete volume type using API
-
test_container_name_volume_backup(volume, containers_steps_ui, volumes_steps_ui)[source]¶ Scenario: Verify that container has name ‘volumebackups’.
Setup:
- Create volume using API
Steps:
- Create volume backup without container name
- Check that container has name ‘volumebackups’
Teardown:
- Delete volume using API
-
test_launch_volume_as_instance(bootable_volume, instances_steps_ui, volumes_steps_ui)[source]¶ Scenario: Verify that admin can launch volume as instance.
Setup:
- Create bootable volume using API
Steps:
- Launch volume as instance using UI
- Change that instance status is
Activeusing UI - Delete instance using UI
Teardown:
- Delete volume using API
-
test_manage_volume_attachments(volume, server, volumes_steps_ui)[source]¶ Scenario: Verify that admin can manage volume attachments.
Setup:
- Create volume using API
- Create server using API
Steps:
- Attach server to volume using UI
- Detach server from volume using UI
Teardown:
- Delete server using API
- Delete volume using API
-
test_migrate_volume(volume, volumes_steps_ui)[source]¶ Scenario: Verify that admin can migrate volume.
Setup:
- Create volume using API
Steps:
- Migrate volume to new host using UI
- Migrate volume to old host using UI
Teardown:
- Delete volume using API
-
test_transfer_volume(volume, auth_steps, volumes_steps_ui)[source]¶ Scenario: Verify that volume can be transferred between users.
Setup:
- Create volume using API
Steps:
- Create volume transfer as
adminuser using UI - Logout
- Login as
useruser - Accept volume transfer using UI
Teardown:
- Delete volume using API
-
-
class
stepler.horizon.tests.test_volumes.TestAnyOne[source]¶ Tests for any user.
-
test_create_bigger_volume_from_volume(volume, volumes_steps_ui)[source]¶ Scenario: Create bigger volume from another volume.
Setup:
- Create volume using API
Steps:
- Create volume from created volume with bigger size using UI
- Check that volume is created
Teardown:
- Delete volumes
-
test_create_volume_with_description(volumes_steps_ui)[source]¶ Scenario: Create volume with description.
Steps:
- Create volume with description using UI
- Check that volume created
- Check that description is correct
Teardown:
- Delete volume using API
-
test_create_volume_with_escaped_symbols(volumes_steps_ui)[source]¶ Scenario: Create volume and snapshot with escaped symbols.
Steps:
- Create volume with specific name using UI
- Create volume snapshot with the same name as volume
Teardown:
- Delete snapshot using API
- Delete volume using API
-
test_default_migration_policy(volume, volumes_steps_ui)[source]¶ Verify that Migration Policy is On Demand by default.
Setup:
- Create volume using API
Steps:
- Check that Migration policy is On Demand by default when user changes volume type
Teardown:
- Delete volume using API
-
test_delete_volumes(volumes, volumes_steps_ui)[source]¶ Scenario: Verify that user can delete volumes as bunch.
Setup:
- Create volumes using API
Steps:
- Delete volume as bunch using UI
-
test_edit_volume(volume, volumes_steps_ui)[source]¶ Scenario: Verify that user can edit volume.
Setup:
- Create volume using API
Steps:
- Edit volume name using UI
Teardown:
- Delete volume using API
-
test_upload_volume_to_image(volume, images_steps_ui, volumes_steps_ui)[source]¶ Scenario: Verify that user can upload volume to image.
Setup:
- Create volume using API
Steps:
- Upload volume to image using UI
- Check image presence
- Delete image using UI
Teardown:
- Delete volume using API
-
test_view_volume(volume, volumes_steps_ui)[source]¶ Scenario: Verify that user can view volume info.
Setup:
- Create volume using API
Steps:
- View volume using UI
Teardown:
- Delete volume using API
-
test_volume_extend(volume, volumes_steps_ui)[source]¶ Scenario: Verify that user can extend volume size.
Setup:
- Create volume using API
Steps:
- Extend volume using UI
Teardown:
- Delete volume using API
-
test_volumes_pagination(volume_steps, volumes, volumes_steps_ui, update_settings)[source]¶ Scenario: Verify that volumes pagination works right and back.
Setup:
- Create some volumes using API
Steps:
- Update
items_per_pageparameter to 1 using UI - Check volumes pagination using UI
Teardown:
- Delete volumes using API
-
-
class
stepler.horizon.tests.test_volumes.TestUserOnly[source]¶ Tests for user only.
-
test_launch_volume_as_instance(instances_steps_ui, bootable_volume_with_private_image, volumes_steps_ui)[source]¶ Scenario: Verify that admin can launch volume as instance.
Setup:
- Create bootable volume using API
Steps:
- Launch volume as instance using UI
- Change that instance status is
Activeusing UI - Delete instance using UI
Teardown:
- Delete volume using API
-