示例#1
0
    def test_sensor_instance_has_sensor_service(self):
        file_path = os.path.join(RESOURCES_DIR, "test_sensor.py")
        trigger_types = ["trigger1", "trigger2"]
        parent_args = ["--config-file", TESTS_CONFIG_PATH]

        wrapper = SensorWrapper(
            pack="core",
            file_path=file_path,
            class_name="TestSensor",
            trigger_types=trigger_types,
            parent_args=parent_args,
        )
        self.assertIsNotNone(
            getattr(wrapper._sensor_instance, "sensor_service", None))
        self.assertIsNotNone(getattr(wrapper._sensor_instance, "config", None))
示例#2
0
 def test_sensor_creation_active(self):
     file_path = os.path.join(RESOURCES_DIR, 'test_sensor.py')
     trigger_types = ['trigger1', 'trigger2']
     parent_args = ['--config-file', TESTS_CONFIG_PATH]
     poll_interval = 10
     wrapper = SensorWrapper(pack='core',
                             file_path=file_path,
                             class_name='TestPollingSensor',
                             trigger_types=trigger_types,
                             parent_args=parent_args,
                             poll_interval=poll_interval)
     self.assertIsNotNone(wrapper._sensor_instance)
     self.assertIsInstance(wrapper._sensor_instance, PollingSensor)
     self.assertEquals(wrapper._sensor_instance._poll_interval,
                       poll_interval)
示例#3
0
    def test_sensor_instance_has_sensor_service(self):
        file_path = os.path.join(RESOURCES_DIR, 'test_sensor.py')
        trigger_types = ['trigger1', 'trigger2']
        parent_args = ['--config-file', TESTS_CONFIG_PATH]

        wrapper = SensorWrapper(pack='core',
                                file_path=file_path,
                                class_name='TestSensor',
                                trigger_types=trigger_types,
                                parent_args=parent_args)
        self.assertTrue(
            getattr(wrapper._sensor_instance, 'sensor_service', None)
            is not None)
        self.assertTrue(
            getattr(wrapper._sensor_instance, 'config', None) is not None)
示例#4
0
    def test_sensor_creation_passive(self):
        file_path = os.path.join(RESOURCES_DIR, "test_sensor.py")
        trigger_types = ["trigger1", "trigger2"]
        parent_args = ["--config-file", TESTS_CONFIG_PATH]

        wrapper = SensorWrapper(
            pack="core",
            file_path=file_path,
            class_name="TestSensor",
            trigger_types=trigger_types,
            parent_args=parent_args,
            db_ensure_indexes=False,
        )
        self.assertIsInstance(wrapper._sensor_instance, Sensor)
        self.assertIsNotNone(wrapper._sensor_instance)
示例#5
0
 def test_sensor_creation_active(self):
     file_path = os.path.join(RESOURCES_DIR, "test_sensor.py")
     trigger_types = ["trigger1", "trigger2"]
     parent_args = ["--config-file", TESTS_CONFIG_PATH]
     poll_interval = 10
     wrapper = SensorWrapper(
         pack="core",
         file_path=file_path,
         class_name="TestPollingSensor",
         trigger_types=trigger_types,
         parent_args=parent_args,
         poll_interval=poll_interval,
     )
     self.assertIsNotNone(wrapper._sensor_instance)
     self.assertIsInstance(wrapper._sensor_instance, PollingSensor)
     self.assertEqual(wrapper._sensor_instance._poll_interval,
                      poll_interval)
示例#6
0
    def test_trigger_cud_event_handlers(self):
        trigger_id = '57861fcb0640fd1524e577c0'
        file_path = os.path.join(RESOURCES_DIR, 'test_sensor.py')
        trigger_types = ['trigger1', 'trigger2']
        parent_args = ['--config-file', TESTS_CONFIG_PATH]

        wrapper = SensorWrapper(pack='core', file_path=file_path,
                                class_name='TestSensor',
                                trigger_types=trigger_types,
                                parent_args=parent_args)

        self.assertEqual(wrapper._trigger_names, {})

        wrapper._sensor_instance.add_trigger = mock.Mock()
        wrapper._sensor_instance.update_trigger = mock.Mock()
        wrapper._sensor_instance.remove_trigger = mock.Mock()

        # Call create handler with a trigger which refers to this sensor
        self.assertEqual(wrapper._sensor_instance.add_trigger.call_count, 0)

        trigger = TriggerDB(id=trigger_id, name='test', pack='dummy', type=trigger_types[0])
        wrapper._handle_create_trigger(trigger=trigger)
        self.assertEqual(wrapper._trigger_names, {trigger_id: trigger})
        self.assertEqual(wrapper._sensor_instance.add_trigger.call_count, 1)

        # Validate that update handler updates the trigger_names
        self.assertEqual(wrapper._sensor_instance.update_trigger.call_count, 0)

        trigger = TriggerDB(id=trigger_id, name='test', pack='dummy', type=trigger_types[0])
        wrapper._handle_update_trigger(trigger=trigger)
        self.assertEqual(wrapper._trigger_names, {trigger_id: trigger})
        self.assertEqual(wrapper._sensor_instance.update_trigger.call_count, 1)

        # Validate that delete handler deletes the trigger from trigger_names
        self.assertEqual(wrapper._sensor_instance.remove_trigger.call_count, 0)

        trigger = TriggerDB(id=trigger_id, name='test', pack='dummy', type=trigger_types[0])
        wrapper._handle_delete_trigger(trigger=trigger)
        self.assertEqual(wrapper._trigger_names, {})
        self.assertEqual(wrapper._sensor_instance.remove_trigger.call_count, 1)
示例#7
0
    def test_sensor_init_fails_sensor_code_contains_typo(self):
        file_path = os.path.join(RESOURCES_DIR, 'test_sensor_with_typo.py')
        trigger_types = ['trigger1', 'trigger2']
        parent_args = ['--config-file', TESTS_CONFIG_PATH]

        expected_msg = 'Failed to load sensor class from file.*? \'typobar\' is not defined'
        self.assertRaisesRegexp(NameError, expected_msg, SensorWrapper,
                                pack='core', file_path=file_path,
                                class_name='TestSensor',
                                trigger_types=trigger_types,
                                parent_args=parent_args)

        # Verify error message also contains traceback
        try:
            SensorWrapper(pack='core', file_path=file_path, class_name='TestSensor',
                          trigger_types=trigger_types, parent_args=parent_args)
        except NameError as e:
            self.assertTrue('Traceback (most recent call last)' in str(e))
            self.assertTrue('line 5, in <module>' in str(e))
        else:
            self.fail('NameError not thrown')
示例#8
0
    def test_trigger_cud_event_handlers(self):
        file_path = os.path.join(RESOURCES_DIR, "test_sensor.py")
        trigger_types = ["trigger1", "trigger2"]
        parent_args = ["--config-file", TESTS_CONFIG_PATH]

        wrapper = SensorWrapper(
            pack="core",
            file_path=file_path,
            class_name="TestSensor",
            trigger_types=trigger_types,
            parent_args=parent_args,
        )

        self.assertEqual(wrapper._trigger_names, {})

        wrapper._sensor_instance.add_trigger = mock.Mock()
        wrapper._sensor_instance.update_trigger = mock.Mock()
        wrapper._sensor_instance.remove_trigger = mock.Mock()

        # Call create handler with a trigger which refers to this sensor
        self.assertEqual(wrapper._sensor_instance.add_trigger.call_count, 0)

        trigger = Trigger(id="2", type=trigger_types[0])
        wrapper._handle_create_trigger(trigger=trigger)
        self.assertEqual(wrapper._trigger_names, {"2": trigger})
        self.assertEqual(wrapper._sensor_instance.add_trigger.call_count, 1)

        # Validate that update handler updates the trigger_names
        self.assertEqual(wrapper._sensor_instance.update_trigger.call_count, 0)

        trigger = Trigger(id="2", type=trigger_types[0])
        wrapper._handle_update_trigger(trigger=trigger)
        self.assertEqual(wrapper._trigger_names, {"2": trigger})
        self.assertEqual(wrapper._sensor_instance.update_trigger.call_count, 1)

        # Validate that delete handler deletes the trigger from trigger_names
        self.assertEqual(wrapper._sensor_instance.remove_trigger.call_count, 0)

        trigger = Trigger(id="2", type=trigger_types[0])
        wrapper._handle_delete_trigger(trigger=trigger)
        self.assertEqual(wrapper._trigger_names, {})
        self.assertEqual(wrapper._sensor_instance.remove_trigger.call_count, 1)
示例#9
0
    def test_trigger_cud_event_handlers(self):
        trigger_id = '57861fcb0640fd1524e577c0'
        file_path = os.path.join(RESOURCES_DIR, 'test_sensor.py')
        trigger_types = ['trigger1', 'trigger2']
        parent_args = ['--config-file', TESTS_CONFIG_PATH]

        wrapper = SensorWrapper(pack='core', file_path=file_path,
                                class_name='TestSensor',
                                trigger_types=trigger_types,
                                parent_args=parent_args)

        self.assertEqual(wrapper._trigger_names, {})

        wrapper._sensor_instance.add_trigger = mock.Mock()
        wrapper._sensor_instance.update_trigger = mock.Mock()
        wrapper._sensor_instance.remove_trigger = mock.Mock()

        # Call create handler with a trigger which refers to this sensor
        self.assertEqual(wrapper._sensor_instance.add_trigger.call_count, 0)

        trigger = TriggerDB(id=trigger_id, name='test', pack='dummy', type=trigger_types[0])
        wrapper._handle_create_trigger(trigger=trigger)
        self.assertEqual(wrapper._trigger_names, {trigger_id: trigger})
        self.assertEqual(wrapper._sensor_instance.add_trigger.call_count, 1)

        # Validate that update handler updates the trigger_names
        self.assertEqual(wrapper._sensor_instance.update_trigger.call_count, 0)

        trigger = TriggerDB(id=trigger_id, name='test', pack='dummy', type=trigger_types[0])
        wrapper._handle_update_trigger(trigger=trigger)
        self.assertEqual(wrapper._trigger_names, {trigger_id: trigger})
        self.assertEqual(wrapper._sensor_instance.update_trigger.call_count, 1)

        # Validate that delete handler deletes the trigger from trigger_names
        self.assertEqual(wrapper._sensor_instance.remove_trigger.call_count, 0)

        trigger = TriggerDB(id=trigger_id, name='test', pack='dummy', type=trigger_types[0])
        wrapper._handle_delete_trigger(trigger=trigger)
        self.assertEqual(wrapper._trigger_names, {})
        self.assertEqual(wrapper._sensor_instance.remove_trigger.call_count, 1)