def test_bad_type_cfg_definition(self): cfg = dict(name="test", type="foo", event_type="bar.create", unit="foo", volume="bar", resource_id="bea70e51c7340cb9d555b15cbfcaec23") try: notifications.MeterDefinition(cfg) except notifications.MeterDefinitionException as e: self.assertEqual("Invalid type foo specified", e.message)
def test_config_missing_fields(self): cfg = dict(name="test", type="delta") handler = notifications.MeterDefinition(cfg) try: handler.match_type("test.create") except notifications.MeterDefinitionException as e: self.assertEqual("Required field event_type not specified", e.message)
def test_config_required_missing_fields(self): cfg = dict() try: notifications.MeterDefinition(cfg) except notifications.MeterDefinitionException as e: self.assertEqual("Required fields ['name', 'type', 'event_type'," " 'unit', 'volume', 'resource_id']" " not specified", e.message)
def test_config_required_missing_fields(self): cfg = dict() try: notifications.MeterDefinition(cfg, mock.Mock(), mock.Mock()) except declarative.DefinitionException as e: self.assertIn( "Required fields ['name', 'type', 'event_type'," " 'unit', 'volume', 'resource_id']" " not specified", encodeutils.exception_to_unicode(e))
def test_bad_type_cfg_definition(self): cfg = dict(name="test", type="foo", event_type="bar.create", unit="foo", volume="bar", resource_id="bea70e51c7340cb9d555b15cbfcaec23") try: notifications.MeterDefinition(cfg, mock.Mock()) except declarative.DefinitionException as e: self.assertIn("Invalid type foo specified", encodeutils.exception_to_unicode(e))
def test_config_definition(self): cfg = dict(name="test", event_type="test.create", type="delta", unit="B", volume="payload.volume", resource_id="payload.resource_id", project_id="payload.project_id") handler = notifications.MeterDefinition(cfg) self.assertTrue(handler.match_type("test.create")) self.assertEqual(1, handler.parse_fields("volume", NOTIFICATION)) self.assertEqual("bea70e51c7340cb9d555b15cbfcaec23", handler.parse_fields("resource_id", NOTIFICATION)) self.assertEqual("30be1fc9a03c4e94ab05c403a8a377f2", handler.parse_fields("project_id", NOTIFICATION))
def test_config_definition(self): cfg = dict(name="test", event_type="test.create", type="delta", unit="B", volume="$.payload.volume", resource_id="$.payload.resource_id", project_id="$.payload.project_id") handler = notifications.MeterDefinition(cfg, mock.Mock(), mock.Mock()) self.assertTrue(handler.match_type("test.create")) sample = list(handler.to_samples(NOTIFICATION))[0] self.assertEqual(1.0, sample["volume"]) self.assertEqual("bea70e51c7340cb9d555b15cbfcaec23", sample["resource_id"]) self.assertEqual("30be1fc9a03c4e94ab05c403a8a377f2", sample["project_id"])
def test_bad_type_cfg_definition(self): cfg = dict(name="test", type="foo") try: notifications.MeterDefinition(cfg) except notifications.MeterDefinitionException as e: self.assertEqual("Invalid type foo specified", e.message)