From 1156100be1d358f5ffae58c6d892e0724f4d153c Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Thu, 14 Oct 2010 01:11:18 -0700 Subject: unit tests and fix --- nova/api/ec2/apirequest.py | 6 ++++-- nova/tests/api_unittest.py | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/nova/api/ec2/apirequest.py b/nova/api/ec2/apirequest.py index 4b3b93124..3c8651582 100644 --- a/nova/api/ec2/apirequest.py +++ b/nova/api/ec2/apirequest.py @@ -52,9 +52,11 @@ def _try_convert(value): return True if value == 'False': return False - if value == '0': - return 0 valueneg = value[1:] if value[0] == '-' else value + if valueneg == '0': + return 0 + if valueneg == '': + return value if valueneg[0] == '0': if valueneg[1] in 'xX': return int(value,16) diff --git a/nova/tests/api_unittest.py b/nova/tests/api_unittest.py index 7ab27e000..e82acb6ff 100644 --- a/nova/tests/api_unittest.py +++ b/nova/tests/api_unittest.py @@ -29,6 +29,7 @@ from nova import flags from nova import test from nova import api from nova.api.ec2 import cloud +from nova.api.ec2 import apirequest from nova.auth import manager @@ -81,6 +82,22 @@ class FakeHttplibConnection(object): pass +class XmlConversionTestCase(test.BaseTestCase): + """Unit test api xml conversion""" + def test_number_conversion(self): + conv = apirequest._try_convert + self.assertEqual(conv('None'), None) + self.assertEqual(conv('True'), True) + self.assertEqual(conv('False'), False) + self.assertEqual(conv('0'), 0) + self.assertEqual(conv('42'), 42) + self.assertEqual(conv('3.14'), 3.14) + self.assertEqual(conv('-57.12'), -57.12) + self.assertEqual(conv('0x57'), 0x57) + self.assertEqual(conv('-0x57'), -0x57) + self.assertEqual(conv('-'), '-') + self.assertEqual(conv('-0'), 0) + class ApiEc2TestCase(test.BaseTestCase): """Unit test for the cloud controller on an EC2 API""" def setUp(self): # pylint: disable-msg=C0103,C0111 -- cgit