summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@yahoo.com>2010-10-14 01:11:18 -0700
committerVishvananda Ishaya <vishvananda@yahoo.com>2010-10-14 01:11:18 -0700
commit1156100be1d358f5ffae58c6d892e0724f4d153c (patch)
tree3b3898acdba3b5837cfabb5ad724d1fa4a9c70df
parentc829e39c5436f2c9f075713ff4b80dbdfb1239ef (diff)
downloadnova-1156100be1d358f5ffae58c6d892e0724f4d153c.tar.gz
nova-1156100be1d358f5ffae58c6d892e0724f4d153c.tar.xz
nova-1156100be1d358f5ffae58c6d892e0724f4d153c.zip
unit tests and fix
-rw-r--r--nova/api/ec2/apirequest.py6
-rw-r--r--nova/tests/api_unittest.py17
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