Skip to content
This repository has been archived by the owner on Apr 7, 2022. It is now read-only.

Commit

Permalink
Merge pull request #8145 from jadhaj/public_private_flavors
Browse files Browse the repository at this point in the history
[1LP][RFR] Add tests from flavors management RFE
  • Loading branch information
izapolsk committed Nov 16, 2018
2 parents 93e78c2 + 0fc168c commit ef189a1
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 0 deletions.
10 changes: 10 additions & 0 deletions cfme/cloud/flavor.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,16 @@ def exists(self):
except FlavorNotFound:
return False

@property
def instance_count(self):
""" number of instances using flavor.
Returns:
:py:class:`int` instance count.
"""
view = navigate_to(self, 'Details')
return int(view.entities.relationships.get_text_of('Instances'))


@attr.s
class FlavorCollection(BaseCollection):
Expand Down
54 changes: 54 additions & 0 deletions cfme/tests/openstack/cloud/test_flavors.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,31 @@ def zero_disk_flavor(provider):
zero_disk_flavor.delete()


@pytest.fixture(scope='function')
def private_flavor(appliance, provider):
collection = appliance.collections.cloud_flavors
private_flavor = collection.create(name=fauxfactory.gen_alpha(),
provider=provider,
ram=RAM,
vcpus=VCPUS,
disk=DISK_SIZE,
swap=SWAP_SIZE,
rxtx=RXTX,
is_public=False)

view = appliance.browser.create_view(navigator.get_class(collection, 'All').VIEW)
view.flash.assert_success_message(
'Add of Flavor "{}" was successfully initialized.'.format(private_flavor.name))

wait_for(lambda: private_flavor.exists, delay=5, timeout=600, fail_func=private_flavor.refresh,
message='Wait for flavor to appear')

yield private_flavor

if private_flavor.exists:
private_flavor.delete()


@pytest.fixture(scope='function')
def new_instance(provider, zero_disk_flavor):
flavor_name = zero_disk_flavor.name
Expand Down Expand Up @@ -125,3 +150,32 @@ def cleanup():

wait_for(lambda: not flavor.exists, delay=5, timeout=600, fail_func=flavor.refresh,
message='Wait for flavor to appear')


@pytest.mark.rfe
@pytest.mark.ignore_stream('5.9')
def test_flavors_details_from_list_view(appliance, soft_assert, private_flavor):
collection = appliance.collections.cloud_flavors
view = navigate_to(collection, 'All')
item = view.entities.get_entity(name=private_flavor.name, surf_pages=True)
soft_assert(item.data['name'] == private_flavor.name)
soft_assert(item.data['cpus'] == str(private_flavor.vcpus))
soft_assert(item.data['publicly_available'] == str(private_flavor.is_public))
soft_assert(item.data['memory'].split()[0] == str(private_flavor.ram))
soft_assert(item.data['cloud_provider'] == private_flavor.provider.name)


@pytest.mark.rfe
@pytest.mark.ignore_stream('5.9')
def test_flavor_details(appliance, soft_assert, private_flavor):
view = navigate_to(private_flavor, 'Details')
soft_assert(view.entities.properties.get_text_of('CPUs') == str(private_flavor.vcpus))

soft_assert(view.entities.properties.get_text_of('Memory').split()[0] ==
str(private_flavor.ram))

soft_assert(view.entities.properties.get_text_of('Public') ==
str(private_flavor.is_public).lower())

soft_assert(view.entities.relationships.get_text_of('Cloud Provider') ==
private_flavor.provider.name)

0 comments on commit ef189a1

Please sign in to comment.