From 4fe38c787e47def79cc820790529c3adeb383d27 Mon Sep 17 00:00:00 2001 From: Zane Bitter Date: Fri, 29 Jun 2012 10:52:41 +0200 Subject: [PATCH] Add unit tests for timeout extraction Change-Id: I87837b78dc04683aa686f0573bb7b643667c4553 Signed-off-by: Zane Bitter --- heat/engine/manager.py | 2 +- heat/tests/test_manager.py | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/heat/engine/manager.py b/heat/engine/manager.py index e839b9e16c..41728c10c0 100644 --- a/heat/engine/manager.py +++ b/heat/engine/manager.py @@ -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: diff --git a/heat/tests/test_manager.py b/heat/tests/test_manager.py index a9943c186a..9df0880be8 100644 --- a/heat/tests/test_manager.py +++ b/heat/tests/test_manager.py @@ -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)