]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
heat tests : test_watch add tests for set_watch_state
authorSteven Hardy <shardy@redhat.com>
Tue, 22 Jan 2013 13:37:43 +0000 (13:37 +0000)
committerSteven Hardy <shardy@redhat.com>
Tue, 22 Jan 2013 13:37:43 +0000 (13:37 +0000)
Add some tests providing coverage for the set_watch_state function

Change-Id: Ia9f418035440c0941e25dd2e1ec85f8c0322d807
Signed-off-by: Steven Hardy <shardy@redhat.com>
heat/tests/test_watch.py

index aaa7d0def733ada42f10b9f34159e824ae2ade9e..12b961596993c401247e679b4028d778a8ff3fec 100644 (file)
@@ -570,3 +570,57 @@ class WatchRuleTest(unittest.TestCase):
 
         # Cleanup
         db_api.watch_rule_delete(self.ctx, 'create_data_test')
+
+    def test_set_watch_state(self):
+        rule = {'EvaluationPeriods': '1',
+                'MetricName': 'test_metric',
+                'AlarmActions': ['DummyAction'],
+                'Period': '300',
+                'Statistic': 'Maximum',
+                'ComparisonOperator': 'GreaterThanOrEqualToThreshold',
+                'Threshold': '30'}
+
+        now = timeutils.utcnow()
+        self._action_set_stubs(now)
+
+        # Set data so rule evaluates to ALARM state
+        last = now - datetime.timedelta(seconds=200)
+        watcher = watchrule.WatchRule(context=self.ctx,
+                                      watch_name="testwatch",
+                                      rule=rule,
+                                      watch_data=[],
+                                      stack_id=self.stack_id,
+                                      last_evaluated=last)
+
+        actions = watcher.set_watch_state(watchrule.WatchRule.NODATA)
+        self.assertEqual(actions, [])
+
+        actions = watcher.set_watch_state(watchrule.WatchRule.NORMAL)
+        self.assertEqual(actions, [])
+
+        actions = watcher.set_watch_state(watchrule.WatchRule.ALARM)
+        self.assertEqual(actions, ['DummyAction'])
+
+    def test_set_watch_state_invalid(self):
+        rule = {'EvaluationPeriods': '1',
+                'MetricName': 'test_metric',
+                'AlarmActions': ['DummyAction'],
+                'Period': '300',
+                'Statistic': 'Maximum',
+                'ComparisonOperator': 'GreaterThanOrEqualToThreshold',
+                'Threshold': '30'}
+
+        now = timeutils.utcnow()
+        self._action_set_stubs(now)
+
+        last = now - datetime.timedelta(seconds=200)
+        watcher = watchrule.WatchRule(context=self.ctx,
+                                      watch_name="testwatch",
+                                      rule=rule,
+                                      watch_data=[],
+                                      stack_id=self.stack_id,
+                                      last_evaluated=last)
+
+        self.assertRaises(ValueError, watcher.set_watch_state, None)
+
+        self.assertRaises(ValueError, watcher.set_watch_state, "BADSTATE")