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:
Radomir Dopieralski 2015-01-21 12:04:13 +01:00
parent bd8f4d6395
commit 36798da359
4 changed files with 59 additions and 10 deletions

View File

@ -21,6 +21,7 @@ from novaclient.v1_1 import servers
from openstack_dashboard.test.test_data import utils
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.test_data import flavor_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(plan_mock.call_count, 1)
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'),
]))

View File

@ -15,6 +15,7 @@
from django.conf import settings
from tuskar_ui import api
from tuskar_ui.utils import utils
def matching_deployment_mode():
@ -22,13 +23,6 @@ def matching_deployment_mode():
return deployment_mode.lower() == 'scale'
def _safe_int_cast(value):
try:
return int(value)
except (TypeError, ValueError):
return 0
def _get_unmatched_suggestions(request):
unmatched_suggestions = []
flavor_suggestions = [FlavorSuggestion.from_flavor(flavor)
@ -62,9 +56,9 @@ class FlavorSuggestion(object):
def from_node(cls, node):
return cls(
node_id=node.uuid,
vcpus=_safe_int_cast(node.cpus),
ram=_safe_int_cast(node.memory_mb),
disk=_safe_int_cast(node.local_gb),
vcpus=utils.safe_int_cast(node.cpus),
ram=utils.safe_int_cast(node.memory_mb),
disk=utils.safe_int_cast(node.local_gb),
cpu_arch=node.cpu_arch
)

View File

@ -60,3 +60,15 @@ class UtilsTests(helpers.TestCase):
self.assertEqual(ret, [Item(1), Item(2), Item(3)])
ret = list(utils.filter_items(items, index__not_in=(1, 2, 3)))
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)

View File

@ -85,3 +85,10 @@ def filter_items(items, **kwargs):
break
else:
yield item
def safe_int_cast(value):
try:
return int(value)
except (TypeError, ValueError):
return 0