]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Add unit tests for timeout extraction
authorZane Bitter <zbitter@redhat.com>
Fri, 29 Jun 2012 08:52:41 +0000 (10:52 +0200)
committerZane Bitter <zbitter@redhat.com>
Fri, 29 Jun 2012 11:05:04 +0000 (13:05 +0200)
Change-Id: I87837b78dc04683aa686f0573bb7b643667c4553
Signed-off-by: Zane Bitter <zbitter@redhat.com>
heat/engine/manager.py
heat/tests/test_manager.py

index e839b9e16cfc82990d916d3f8fd22693c277cc06..41728c10c07ab173698a2594fe36dfeb01643a0f 100644 (file)
@@ -67,7 +67,7 @@ def _extract_args(params):
     kwargs = {}
     try:
         timeout_mins = int(params.get('TimeoutInMinutes', 0))
-    except ValueError:
+    except (ValueError, TypeError):
         logger.exception('create timeout conversion')
     else:
         if timeout_mins > 0:
index a9943c186a9c95604af167cfc359a2107a29af48..9df0880be8da1862001be1b0b241f52509cbfedb 100644 (file)
@@ -53,3 +53,27 @@ class managerTest(unittest.TestCase):
              'Parameters.member.Foo.Bar.ParameterValue': 'bar'}
         params = manager._extract_user_params(p)
         self.assertFalse(params)
+
+    def test_timeout_extract(self):
+        p = {'TimeoutInMinutes': '5'}
+        args = manager._extract_args(p)
+        self.assertEqual(args['timeout_in_minutes'], 5)
+
+    def test_timeout_extract_zero(self):
+        p = {'TimeoutInMinutes': '0'}
+        args = manager._extract_args(p)
+        self.assertTrue('timeout_in_minutes' not in args)
+
+    def test_timeout_extract_garbage(self):
+        p = {'TimeoutInMinutes': 'wibble'}
+        args = manager._extract_args(p)
+        self.assertTrue('timeout_in_minutes' not in args)
+
+    def test_timeout_extract_none(self):
+        p = {'TimeoutInMinutes': None}
+        args = manager._extract_args(p)
+        self.assertTrue('timeout_in_minutes' not in args)
+
+    def test_timeout_extract_not_present(self):
+        args = manager._extract_args({})
+        self.assertTrue('timeout_in_minutes' not in args)