No unit test coverage for code related to Flavors
When runing the "./run_tests.sh -c" command, and after looking at the reports, not all the code is covered by the unit tests. The code related to Flavors in the openstack_dashboard/api/nova.py (get flavor list, create flavor, delete flavor, etc) is not covered. Change-Id: Idf32b22cde2925b830d85ba9c675fa0e88a2eb0e Closes-Bug:#1558758
This commit is contained in:
parent
0ab96ce8f4
commit
46d3457bd9
@ -25,6 +25,7 @@ from django.test.utils import override_settings
|
||||
|
||||
from mox3.mox import IsA # noqa
|
||||
from novaclient import exceptions as nova_exceptions
|
||||
from novaclient.v2 import flavor_access as nova_flavor_access
|
||||
from novaclient.v2 import servers
|
||||
import six
|
||||
|
||||
@ -387,3 +388,203 @@ class ComputeApiTests(test.APITestCase):
|
||||
ret_val = api.nova.migrate_host(self.request, "host", True, True,
|
||||
True)
|
||||
self.assertTrue(ret_val)
|
||||
|
||||
"""Flavor Tests"""
|
||||
|
||||
def test_flavor_list_no_extras(self):
|
||||
flavors = self.flavors.list()
|
||||
novaclient = self.stub_novaclient()
|
||||
|
||||
novaclient.flavors = self.mox.CreateMockAnything()
|
||||
novaclient.flavors.list(is_public=True).AndReturn(flavors)
|
||||
self.mox.ReplayAll()
|
||||
api_flavors = api.nova.flavor_list(self.request)
|
||||
self.assertEqual(len(flavors), len(api_flavors))
|
||||
|
||||
def test_flavor_get_no_extras(self):
|
||||
flavor = self.flavors.list()[1]
|
||||
novaclient = self.stub_novaclient()
|
||||
|
||||
novaclient.flavors = self.mox.CreateMockAnything()
|
||||
novaclient.flavors.get(flavor.id).AndReturn(flavor)
|
||||
|
||||
self.mox.ReplayAll()
|
||||
api_flavor = api.nova.flavor_get(self.request, flavor.id)
|
||||
self.assertEqual(api_flavor.id, flavor.id)
|
||||
|
||||
def _test_flavor_list_paged(self, reversed_order=False, paginate=True):
|
||||
page_size = getattr(settings, 'API_RESULT_PAGE_SIZE', 20)
|
||||
flavors = self.flavors.list()
|
||||
order = 'asc' if reversed_order else 'desc'
|
||||
novaclient = self.stub_novaclient()
|
||||
novaclient.flavors = self.mox.CreateMockAnything()
|
||||
if paginate:
|
||||
novaclient.flavors.list(is_public=True,
|
||||
marker=None,
|
||||
limit=page_size + 1,
|
||||
sort_key='name',
|
||||
sort_dir=order).AndReturn(flavors)
|
||||
else:
|
||||
novaclient.flavors.list(is_public=True).AndReturn(flavors)
|
||||
|
||||
self.mox.ReplayAll()
|
||||
api_flavors, has_more, has_prev = api.nova\
|
||||
.flavor_list_paged(
|
||||
self.request,
|
||||
True,
|
||||
False,
|
||||
None,
|
||||
paginate=paginate,
|
||||
reversed_order=reversed_order)
|
||||
for flavor in api_flavors:
|
||||
self.assertIsInstance(flavor, type(flavors[0]))
|
||||
self.assertFalse(has_more)
|
||||
self.assertFalse(has_prev)
|
||||
|
||||
@override_settings(API_RESULT_PAGE_SIZE=1)
|
||||
def test_flavor_list_pagination_more_and_prev(self):
|
||||
page_size = getattr(settings, 'API_RESULT_PAGE_SIZE', 1)
|
||||
flavors = self.flavors.list()
|
||||
marker = flavors[0].id
|
||||
novaclient = self.stub_novaclient()
|
||||
novaclient.flavors = self.mox.CreateMockAnything()
|
||||
novaclient.flavors.list(is_public=True,
|
||||
marker=marker,
|
||||
limit=page_size + 1,
|
||||
sort_key='name',
|
||||
sort_dir='desc')\
|
||||
.AndReturn(flavors[1:page_size + 2])
|
||||
|
||||
self.mox.ReplayAll()
|
||||
api_flavors, has_more, has_prev = api.nova\
|
||||
.flavor_list_paged(
|
||||
self.request,
|
||||
True,
|
||||
False,
|
||||
marker,
|
||||
paginate=True)
|
||||
for flavor in api_flavors:
|
||||
self.assertIsInstance(flavor, type(flavors[0]))
|
||||
self.assertEqual(page_size, len(api_flavors))
|
||||
self.assertTrue(has_more)
|
||||
self.assertTrue(has_prev)
|
||||
|
||||
def test_flavor_list_paged_default_order(self):
|
||||
self._test_flavor_list_paged()
|
||||
|
||||
def test_flavor_list_paged_reversed_order(self):
|
||||
self._test_flavor_list_paged(reversed_order=True)
|
||||
|
||||
def test_flavor_list_paged_paginate_false(self):
|
||||
self._test_flavor_list_paged(paginate=False)
|
||||
|
||||
def test_flavor_create(self):
|
||||
flavor = self.flavors.first()
|
||||
|
||||
novaclient = self.stub_novaclient()
|
||||
novaclient.flavors = self.mox.CreateMockAnything()
|
||||
novaclient.flavors.create(flavor.name, flavor.ram,
|
||||
flavor.vcpus, flavor.disk,
|
||||
flavorid='auto',
|
||||
ephemeral=0,
|
||||
swap=0,
|
||||
is_public=True,
|
||||
rxtx_factor=1).AndReturn(flavor)
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
||||
api_flavor = api.nova.flavor_create(self.request,
|
||||
flavor.name,
|
||||
flavor.ram,
|
||||
flavor.vcpus,
|
||||
flavor.disk)
|
||||
|
||||
self.assertIsInstance(api_flavor, type(flavor))
|
||||
self.assertEqual(api_flavor.name, flavor.name)
|
||||
self.assertEqual(api_flavor.ram, flavor.ram)
|
||||
self.assertEqual(api_flavor.vcpus, flavor.vcpus)
|
||||
self.assertEqual(api_flavor.disk, flavor.disk)
|
||||
self.assertEqual(api_flavor.ephemeral, 0)
|
||||
self.assertEqual(api_flavor.swap, 0)
|
||||
self.assertEqual(api_flavor.is_public, True)
|
||||
self.assertEqual(api_flavor.rxtx_factor, 1)
|
||||
|
||||
def test_flavor_delete(self):
|
||||
flavor = self.flavors.first()
|
||||
novaclient = self.stub_novaclient()
|
||||
novaclient.flavors = self.mox.CreateMockAnything()
|
||||
novaclient.flavors.delete(flavor.id)
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
||||
api_val = api.nova.flavor_delete(self.request, flavor.id)
|
||||
|
||||
self.assertIsNone(api_val)
|
||||
|
||||
def test_flavor_access_list(self):
|
||||
flavor_access = self.flavor_access.list()
|
||||
flavor = [f for f in self.flavors.list() if f.id ==
|
||||
flavor_access[0].flavor_id][0]
|
||||
|
||||
novaclient = self.stub_novaclient()
|
||||
novaclient.flavors = self.mox.CreateMockAnything()
|
||||
novaclient.flavor_access = self.mox.CreateMockAnything()
|
||||
novaclient.flavor_access.list(flavor=flavor).AndReturn(flavor_access)
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
||||
api_flavor_access = api.nova.flavor_access_list(self.request, flavor)
|
||||
|
||||
self.assertEqual(len(flavor_access), len(api_flavor_access))
|
||||
for access in api_flavor_access:
|
||||
self.assertIsInstance(access, nova_flavor_access.FlavorAccess)
|
||||
self.assertEqual(access.flavor_id, flavor.id)
|
||||
|
||||
def test_add_tenant_to_flavor(self):
|
||||
flavor_access = [self.flavor_access.first()]
|
||||
flavor = [f for f in self.flavors.list() if f.id ==
|
||||
flavor_access[0].flavor_id][0]
|
||||
tenant = [t for t in self.tenants.list() if t.id ==
|
||||
flavor_access[0].tenant_id][0]
|
||||
novaclient = self.stub_novaclient()
|
||||
novaclient.flavors = self.mox.CreateMockAnything()
|
||||
novaclient.flavor_access = self.mox.CreateMockAnything()
|
||||
|
||||
novaclient.flavor_access\
|
||||
.add_tenant_access(flavor=flavor,
|
||||
tenant=tenant)\
|
||||
.AndReturn(flavor_access)
|
||||
|
||||
self.mox.ReplayAll()
|
||||
api_flavor_access = api.nova.add_tenant_to_flavor(self.request,
|
||||
flavor,
|
||||
tenant)
|
||||
self.assertIsInstance(api_flavor_access, list)
|
||||
self.assertEqual(len(flavor_access), len(api_flavor_access))
|
||||
|
||||
for access in api_flavor_access:
|
||||
self.assertEqual(access.flavor_id, flavor.id)
|
||||
self.assertEqual(access.tenant_id, tenant.id)
|
||||
|
||||
def test_remove_tenant_from_flavor(self):
|
||||
flavor_access = [self.flavor_access.first()]
|
||||
flavor = [f for f in self.flavors.list() if f.id ==
|
||||
flavor_access[0].flavor_id][0]
|
||||
tenant = [t for t in self.tenants.list() if t.id ==
|
||||
flavor_access[0].tenant_id][0]
|
||||
|
||||
novaclient = self.stub_novaclient()
|
||||
novaclient.flavors = self.mox.CreateMockAnything()
|
||||
novaclient.flavor_access = self.mox.CreateMockAnything()
|
||||
|
||||
novaclient.flavor_access\
|
||||
.remove_tenant_access(flavor=flavor,
|
||||
tenant=tenant)\
|
||||
.AndReturn([])
|
||||
|
||||
self.mox.ReplayAll()
|
||||
api_val = api.nova.remove_tenant_from_flavor(self.request,
|
||||
flavor,
|
||||
tenant)
|
||||
self.assertEqual(len(api_val), len([]))
|
||||
self.assertIsInstance(api_val, list)
|
||||
|
Loading…
Reference in New Issue
Block a user