Added tests form tuskar_ui.infrastructure.flavors.utils
Also moved _safe_int_cast and fixed the de_camel_case function Change-Id: I675f1e0911d21a6603164e77ce02c9d8d130ae40
This commit is contained in:
parent
bd8f4d6395
commit
36798da359
@ -21,6 +21,7 @@ from novaclient.v1_1 import servers
|
|||||||
from openstack_dashboard.test.test_data import utils
|
from openstack_dashboard.test.test_data import utils
|
||||||
|
|
||||||
from tuskar_ui import api
|
from tuskar_ui import api
|
||||||
|
from tuskar_ui.infrastructure.flavors import utils as flavors_utils
|
||||||
from tuskar_ui.test import helpers as test
|
from tuskar_ui.test import helpers as test
|
||||||
from tuskar_ui.test.test_data import flavor_data
|
from tuskar_ui.test.test_data import flavor_data
|
||||||
from tuskar_ui.test.test_data import heat_data
|
from tuskar_ui.test.test_data import heat_data
|
||||||
@ -223,3 +224,38 @@ class FlavorsTest(test.BaseAdminViewTests):
|
|||||||
self.assertEqual(get_mock.call_count, 1)
|
self.assertEqual(get_mock.call_count, 1)
|
||||||
self.assertEqual(plan_mock.call_count, 1)
|
self.assertEqual(plan_mock.call_count, 1)
|
||||||
self.assertTemplateUsed(res, 'infrastructure/flavors/details.html')
|
self.assertTemplateUsed(res, 'infrastructure/flavors/details.html')
|
||||||
|
|
||||||
|
|
||||||
|
class FlavorsUtilsTest(test.TestCase):
|
||||||
|
def test_get_unmached_suggestions(self):
|
||||||
|
flavors = [api.flavor.Flavor(flavor)
|
||||||
|
for flavor in TEST_DATA.novaclient_flavors.list()]
|
||||||
|
nodes = [api.node.Node(api.node.IronicNode(node))
|
||||||
|
for node in self.ironicclient_nodes.list()]
|
||||||
|
with (
|
||||||
|
patch('tuskar_ui.api.flavor.Flavor.list', return_value=flavors)
|
||||||
|
), (
|
||||||
|
patch('tuskar_ui.api.node.Node.list', return_value=nodes)
|
||||||
|
):
|
||||||
|
ret = flavors_utils.get_flavor_suggestions(None)
|
||||||
|
FS = flavors_utils.FlavorSuggestion
|
||||||
|
self.assertEqual(ret, set([
|
||||||
|
FS(vcpus=8, ram_bytes=4294967296, disk_bytes=10737418240,
|
||||||
|
cpu_arch='x86_64', node_id='aa-11'),
|
||||||
|
FS(vcpus=16, ram_bytes=4294967296, disk_bytes=107374182400,
|
||||||
|
cpu_arch='x86_64', node_id='bb-22'),
|
||||||
|
FS(vcpus=32, ram_bytes=8589934592, disk_bytes=1073741824,
|
||||||
|
cpu_arch='x86_64', node_id='cc-33'),
|
||||||
|
FS(vcpus=8, ram_bytes=4294967296, disk_bytes=10737418240,
|
||||||
|
cpu_arch='x86_64', node_id='cc-44'),
|
||||||
|
FS(vcpus=8, ram_bytes=4294967296, disk_bytes=10737418240,
|
||||||
|
cpu_arch='x86_64', node_id='dd-55'),
|
||||||
|
FS(vcpus=8, ram_bytes=4294967296, disk_bytes=10737418240,
|
||||||
|
cpu_arch='x86_64', node_id='ff-66'),
|
||||||
|
FS(vcpus=8, ram_bytes=4294967296, disk_bytes=10737418240,
|
||||||
|
cpu_arch='x86_64', node_id='gg-77'),
|
||||||
|
FS(vcpus=8, ram_bytes=4294967296, disk_bytes=10737418240,
|
||||||
|
cpu_arch='x86_64', node_id='hh-88'),
|
||||||
|
FS(vcpus=16, ram_bytes=8589934592, disk_bytes=1073741824000,
|
||||||
|
cpu_arch='x86_64', node_id='ii-99'),
|
||||||
|
]))
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from tuskar_ui import api
|
from tuskar_ui import api
|
||||||
|
from tuskar_ui.utils import utils
|
||||||
|
|
||||||
|
|
||||||
def matching_deployment_mode():
|
def matching_deployment_mode():
|
||||||
@ -22,13 +23,6 @@ def matching_deployment_mode():
|
|||||||
return deployment_mode.lower() == 'scale'
|
return deployment_mode.lower() == 'scale'
|
||||||
|
|
||||||
|
|
||||||
def _safe_int_cast(value):
|
|
||||||
try:
|
|
||||||
return int(value)
|
|
||||||
except (TypeError, ValueError):
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
def _get_unmatched_suggestions(request):
|
def _get_unmatched_suggestions(request):
|
||||||
unmatched_suggestions = []
|
unmatched_suggestions = []
|
||||||
flavor_suggestions = [FlavorSuggestion.from_flavor(flavor)
|
flavor_suggestions = [FlavorSuggestion.from_flavor(flavor)
|
||||||
@ -62,9 +56,9 @@ class FlavorSuggestion(object):
|
|||||||
def from_node(cls, node):
|
def from_node(cls, node):
|
||||||
return cls(
|
return cls(
|
||||||
node_id=node.uuid,
|
node_id=node.uuid,
|
||||||
vcpus=_safe_int_cast(node.cpus),
|
vcpus=utils.safe_int_cast(node.cpus),
|
||||||
ram=_safe_int_cast(node.memory_mb),
|
ram=utils.safe_int_cast(node.memory_mb),
|
||||||
disk=_safe_int_cast(node.local_gb),
|
disk=utils.safe_int_cast(node.local_gb),
|
||||||
cpu_arch=node.cpu_arch
|
cpu_arch=node.cpu_arch
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -60,3 +60,15 @@ class UtilsTests(helpers.TestCase):
|
|||||||
self.assertEqual(ret, [Item(1), Item(2), Item(3)])
|
self.assertEqual(ret, [Item(1), Item(2), Item(3)])
|
||||||
ret = list(utils.filter_items(items, index__not_in=(1, 2, 3)))
|
ret = list(utils.filter_items(items, index__not_in=(1, 2, 3)))
|
||||||
self.assertEqual(ret, [Item(0), Item(4), Item(5), Item(6)])
|
self.assertEqual(ret, [Item(0), Item(4), Item(5), Item(6)])
|
||||||
|
|
||||||
|
def test_safe_int_cast(self):
|
||||||
|
ret = utils.safe_int_cast(1)
|
||||||
|
self.assertEqual(ret, 1)
|
||||||
|
ret = utils.safe_int_cast('1')
|
||||||
|
self.assertEqual(ret, 1)
|
||||||
|
ret = utils.safe_int_cast('')
|
||||||
|
self.assertEqual(ret, 0)
|
||||||
|
ret = utils.safe_int_cast(None)
|
||||||
|
self.assertEqual(ret, 0)
|
||||||
|
ret = utils.safe_int_cast(object())
|
||||||
|
self.assertEqual(ret, 0)
|
||||||
|
@ -85,3 +85,10 @@ def filter_items(items, **kwargs):
|
|||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
yield item
|
yield item
|
||||||
|
|
||||||
|
|
||||||
|
def safe_int_cast(value):
|
||||||
|
try:
|
||||||
|
return int(value)
|
||||||
|
except (TypeError, ValueError):
|
||||||
|
return 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user