def test_mem_alarm_high_check_not_required_parameters(self): snippet = template_format.parse(not_string_alarm_template) snippet['Resources']['MEMAlarmHigh']['Properties'].pop('meter_name') stack = utils.parse_stack(snippet) resource_defns = stack.t.resource_definitions(stack) rsrc = alarm.CeilometerAlarm( 'MEMAlarmHigh', resource_defns['MEMAlarmHigh'], stack) error = self.assertRaises(exception.StackValidationFailed, rsrc.validate) self.assertEqual( "Property error: Resources.MEMAlarmHigh.Properties: " "Property meter_name not assigned", six.text_type(error)) for p in ('period', 'evaluation_periods', 'statistic', 'comparison_operator'): snippet = template_format.parse(not_string_alarm_template) snippet['Resources']['MEMAlarmHigh']['Properties'].pop(p) stack = utils.parse_stack(snippet) resource_defns = stack.t.resource_definitions(stack) rsrc = alarm.CeilometerAlarm( 'MEMAlarmHigh', resource_defns['MEMAlarmHigh'], stack) self.assertIsNone(rsrc.validate())
def test_mem_alarm_high_not_integer_parameters(self): snippet = template_format.parse(not_string_alarm_template) for p in ('period', 'evaluation_periods'): snippet['Resources']['MEMAlarmHigh']['Properties'][p] = [60] stack = utils.parse_stack(snippet) resource_defns = stack.t.resource_definitions(stack) rsrc = alarm.CeilometerAlarm('MEMAlarmHigh', resource_defns['MEMAlarmHigh'], stack) error = self.assertRaises(exception.StackValidationFailed, rsrc.validate) self.assertEqual( "Property error : MEMAlarmHigh: %s int() argument must be " "a string or a number, not 'list'" % p, six.text_type(error))
def test_mem_alarm_high_not_correct_string_parameters(self): snippet = template_format.parse(not_string_alarm_template) for p in ('period', 'evaluation_periods'): snippet['Resources']['MEMAlarmHigh']['Properties'][p] = '60a' stack = utils.parse_stack(snippet) resource_defns = stack.t.resource_definitions(stack) rsrc = alarm.CeilometerAlarm( 'MEMAlarmHigh', resource_defns['MEMAlarmHigh'], stack) error = self.assertRaises(exception.StackValidationFailed, rsrc.validate) self.assertEqual( "Property error: Resources.MEMAlarmHigh.Properties.%s: " "Value '60a' is not an integer" % p, six.text_type(error))
def test_mem_alarm_high_not_integer_parameters(self): orig_snippet = template_format.parse(not_string_alarm_template) for p in ('period', 'evaluation_periods'): snippet = copy.deepcopy(orig_snippet) snippet['Resources']['MEMAlarmHigh']['Properties'][p] = [60] stack = utils.parse_stack(snippet) resource_defns = stack.t.resource_definitions(stack) rsrc = alarm.CeilometerAlarm( 'MEMAlarmHigh', resource_defns['MEMAlarmHigh'], stack) # python 3.4.3 returns another error message # so try to handle this by regexp msg = ("Property error: Resources.MEMAlarmHigh.Properties.%s: " "int\(\) argument must be a string(, a bytes-like " "object)? or a number, not 'list'" % p) self.assertRaisesRegexp(exception.StackValidationFailed, msg, rsrc.validate)