Ejemplo n.º 1
0
    def test_add_trigger_type(self):
        """
        This sensor has misconfigured trigger type. We shouldn't explode.
        """
        class FailTestSensor(object):
            started = False

            def setup(self):
                pass

            def start(self):
                FailTestSensor.started = True

            def stop(self):
                pass

            def get_trigger_types(self):
                return [
                    {'description': 'Ain\'t got no name'}
                ]

        try:
            trigger_service.add_trigger_models(FailTestSensor().get_trigger_types())
            self.assertTrue(False, 'Trigger type doesn\'t have \'name\' field. Should have thrown.')
        except Exception:
            self.assertTrue(True)
Ejemplo n.º 2
0
    def test_add_trigger_type_with_params(self):
        MOCK_TRIGGER.type = 'system.test'
        # Trigger type with params should not create a trigger.
        PARAMETERS_SCHEMA = {
            "type": "object",
            "properties": {
                "url": {"type": "string"}
            },
            "required": ['url'],
            "additionalProperties": False
        }
        trig_type = {
            'name': 'myawesometriggertype2',
            'pack': 'my_pack_1',
            'description': 'Words cannot describe how awesome I am.',
            'parameters_schema': PARAMETERS_SCHEMA,
            'payload_schema': {}
        }
        trigtype_dbs = trigger_service.add_trigger_models(trigger_types=[trig_type])
        trigger_type, trigger = trigtype_dbs[0]

        trigtype_db = TriggerType.get_by_id(trigger_type.id)
        self.assertEqual(trigtype_db.pack, 'my_pack_1')
        self.assertEqual(trigtype_db.name, trig_type.get('name'))
        self.assertEqual(trigger, None)
Ejemplo n.º 3
0
    def test_add_trigger_type_with_params(self):
        MOCK_TRIGGER.type = "system.test"
        # Trigger type with params should not create a trigger.
        PARAMETERS_SCHEMA = {
            "type": "object",
            "properties": {
                "url": {
                    "type": "string"
                }
            },
            "required": ["url"],
            "additionalProperties": False,
        }
        trig_type = {
            "name": "myawesometriggertype2",
            "pack": "my_pack_1",
            "description": "Words cannot describe how awesome I am.",
            "parameters_schema": PARAMETERS_SCHEMA,
            "payload_schema": {},
        }
        trigtype_dbs = trigger_service.add_trigger_models(
            trigger_types=[trig_type])
        trigger_type, trigger = trigtype_dbs[0]

        trigtype_db = TriggerType.get_by_id(trigger_type.id)
        self.assertEqual(trigtype_db.pack, "my_pack_1")
        self.assertEqual(trigtype_db.name, trig_type.get("name"))
        self.assertEqual(trigger, None)
Ejemplo n.º 4
0
    def test_add_trigger_type_no_params(self):
        # Trigger type with no params should create a trigger with same name as trigger type.
        trig_type = {
            'name': 'myawesometriggertype',
            'pack': 'dummy_pack_1',
            'description': 'Words cannot describe how awesome I am.',
            'parameters_schema': {},
            'payload_schema': {}
        }
        trigtype_dbs = trigger_service.add_trigger_models(trigger_types=[trig_type])
        trigger_type, trigger = trigtype_dbs[0]

        trigtype_db = TriggerType.get_by_id(trigger_type.id)
        self.assertEqual(trigtype_db.pack, 'dummy_pack_1')
        self.assertEqual(trigtype_db.name, trig_type.get('name'))
        self.assertTrue(trigger is not None)
        self.assertEqual(trigger.name, trigtype_db.name)

        # Add duplicate
        trigtype_dbs = trigger_service.add_trigger_models(trigger_types=[trig_type])
        triggers = Trigger.get_all()
        self.assertTrue(len(triggers) == 1)
Ejemplo n.º 5
0
def _create_trigger_types(trigger_types):
    if not trigger_types:
        return []

    # Add TrigerType models to the DB
    trigger_type_dbs = trigger_service.add_trigger_models(trigger_types=trigger_types)

    trigger_type_refs = []
    # Populate a list of references belonging to this sensor
    for trigger_type_db, _ in trigger_type_dbs:
        ref_obj = trigger_type_db.get_reference()
        trigger_type_ref = ref_obj.ref
        trigger_type_refs.append(trigger_type_ref)
    return trigger_type_refs
Ejemplo n.º 6
0
def create_trigger_types(trigger_types, metadata_file=None):
    if not trigger_types:
        return []

    # Add TrigerType models to the DB
    trigger_type_dbs = trigger_service.add_trigger_models(trigger_types=trigger_types)

    trigger_type_refs = []
    # Populate a list of references belonging to this sensor
    for trigger_type_db, _ in trigger_type_dbs:
        ref_obj = trigger_type_db.get_reference()
        trigger_type_ref = ref_obj.ref
        trigger_type_refs.append(trigger_type_ref)
    return trigger_type_refs
Ejemplo n.º 7
0
    def test_add_trigger_type_no_params(self):
        # Trigger type with no params should create a trigger with same name as trigger type.
        trig_type = {
            "name": "myawesometriggertype",
            "pack": "dummy_pack_1",
            "description": "Words cannot describe how awesome I am.",
            "parameters_schema": {},
            "payload_schema": {},
        }
        trigtype_dbs = trigger_service.add_trigger_models(
            trigger_types=[trig_type])
        trigger_type, trigger = trigtype_dbs[0]

        trigtype_db = TriggerType.get_by_id(trigger_type.id)
        self.assertEqual(trigtype_db.pack, "dummy_pack_1")
        self.assertEqual(trigtype_db.name, trig_type.get("name"))
        self.assertIsNotNone(trigger)
        self.assertEqual(trigger.name, trigtype_db.name)

        # Add duplicate
        trigtype_dbs = trigger_service.add_trigger_models(
            trigger_types=[trig_type])
        triggers = Trigger.get_all()
        self.assertTrue(len(triggers) == 1)
Ejemplo n.º 8
0
 def _register_timer_trigger_types(self):
     return trigger_services.add_trigger_models(
         list(TIMER_TRIGGER_TYPES.values()))
Ejemplo n.º 9
0
Archivo: base.py Proyecto: hejin/st2
 def _register_timer_trigger_types(self):
     return trigger_services.add_trigger_models(TIMER_TRIGGER_TYPES.values())