def test_should_fire(self):
     config = dict(name='test_trigger',
                   expiration='$last + 1d',
                   distinguished_by=['instance_id'],
                   fire_pipeline='test_pipeline',
                   fire_criteria=[dict(event_type='test.thing')],
                   match_criteria=[dict(event_type='test.*')])
     tdef = definition.TriggerDefinition(config, self.debug_manager)
     events1 = [
         dict(event_type='test.foobar'),
         dict(event_type='test.thing'),
         dict(event_type='test.thing')
     ]
     events2 = [
         dict(event_type='test.foobar'),
         dict(event_type='test.thing')
     ]
     events3 = [
         dict(event_type='test.foobar'),
         dict(event_type='test.whatsit')
     ]
     self.assertTrue(tdef.should_fire(events1))
     self.assertTrue(tdef.should_fire(events2))
     self.assertFalse(tdef.should_fire(events3))
     config = dict(name='test_trigger',
                   expiration='$last + 1d',
                   distinguished_by=['instance_id'],
                   fire_pipeline='test_pipeline',
                   fire_criteria=[dict(event_type='test.thing', number=2)],
                   match_criteria=[dict(event_type='test.*')])
     tdef = definition.TriggerDefinition(config, self.debug_manager)
     self.assertTrue(tdef.should_fire(events1))
     self.assertFalse(tdef.should_fire(events2))
     self.assertFalse(tdef.should_fire(events3))
예제 #2
0
 def test_match_for_criteria(self):
     config = dict(name='test_trigger',
                   expiration='$last + 1d',
                   fire_pipeline='test_pipeline',
                   fire_criteria=[dict(event_type='test.thing')],
                   match_criteria=[dict(event_type='test.*')])
     tdef = definition.TriggerDefinition(config, self.debug_manager)
     event1 = dict(event_type='test.thing')
     event2 = dict(event_type='other.thing')
     self.assertTrue(tdef.match(event1))
     self.assertFalse(tdef.match(event2))
     config = dict(name='test_trigger',
                   expiration='$last + 1d',
                   fire_pipeline='test_pipeline',
                   fire_criteria=[dict(event_type='test.thing')],
                   match_criteria=[dict(event_type='test.*'),
                                   dict(event_type='other.*')])
     tdef = definition.TriggerDefinition(config, self.debug_manager)
     self.assertTrue(tdef.match(event1))
     self.assertTrue(tdef.match(event2))
 def test_match_for_distinguished_traits(self):
     config = dict(name='test_trigger',
                   expiration='$last + 1d',
                   distinguished_by=['instance_id'],
                   fire_pipeline='test_pipeline',
                   fire_criteria=[dict(event_type='test.thing')],
                   match_criteria=[dict(event_type='test.*')])
     tdef = definition.TriggerDefinition(config, self.debug_manager)
     event1 = dict(event_type='test.thing', instance_id='foo')
     event2 = dict(event_type='test.thing')
     self.assertTrue(tdef.match(event1))
     self.assertFalse(tdef.match(event2))
 def test_get_fire_timestamp(self):
     config = dict(name='test_trigger',
                   expiration='$last + 1d',
                   distinguished_by=['instance_id'],
                   fire_pipeline='test_pipeline',
                   fire_criteria=[dict(event_type='test.thing')],
                   match_criteria=[dict(event_type='test.*')])
     tdef = definition.TriggerDefinition(config, self.debug_manager)
     test_time = datetime.datetime(2014, 8, 1, 20, 4, 23, 444)
     test_time_plus_1hr = datetime.datetime(2014, 8, 1, 21, 4, 23, 444)
     ft = tdef.get_fire_timestamp(test_time)
     self.assertEqual(ft, test_time)
     config = dict(name='test_trigger',
                   expiration='$last + 1d',
                   fire_delay=3600,
                   distinguished_by=['instance_id'],
                   fire_pipeline='test_pipeline',
                   fire_criteria=[dict(event_type='test.thing')],
                   match_criteria=[dict(event_type='test.*')])
     tdef = definition.TriggerDefinition(config, self.debug_manager)
     ft = tdef.get_fire_timestamp(test_time)
     self.assertEqual(ft, test_time_plus_1hr)
 def test_get_distinguished_traits(self):
     config = dict(name='test_trigger',
                   expiration='$last + 1d',
                   distinguished_by=['instance_id'],
                   fire_pipeline='test_pipeline',
                   fire_criteria=[dict(event_type='test.thing')],
                   match_criteria=[dict(event_type='test.*')])
     event1 = dict(event_type='test.thing', instance_id='foo')
     tdef = definition.TriggerDefinition(config, self.debug_manager)
     mcriteria = tdef.match(event1)
     dt = tdef.get_distinguishing_traits(event1, mcriteria)
     self.assertEqual(len(dt), 1)
     self.assertIn('instance_id', dt)
     self.assertEqual(dt['instance_id'], 'foo')
예제 #6
0
 def test_get_distinguished_traits_with_timeexpression(self):
     config = dict(name='test_trigger',
                   expiration='$last + 1d',
                   distinguished_by=['instance_id', dict(timestamp='day')],
                   fire_pipeline='test_pipeline',
                   fire_criteria=[dict(event_type='test.thing')],
                   match_criteria=[dict(event_type='test.*')])
     event1 = dict(event_type='test.thing', instance_id='foo',
                   timestamp=datetime.datetime(2014, 8, 1, 20, 4, 23, 444))
     tdef = definition.TriggerDefinition(config, self.debug_manager)
     mcriteria = tdef.match(event1)
     dt = tdef.get_distinguishing_traits(event1, mcriteria)
     self.assertEqual(len(dt), 2)
     self.assertIn('instance_id', dt)
     self.assertEqual(dt['instance_id'], 'foo')
     timerange = timex.TimeRange(datetime.datetime(2014, 8, 1, 0, 0, 0, 0),
                                 datetime.datetime(2014, 8, 2, 0, 0, 0, 0))
     self.assertIn('timestamp', dt)
     self.assertIsInstance(dt['timestamp'], timex.TimeRange)
     self.assertEqual(dt['timestamp'].begin, timerange.begin)
     self.assertEqual(dt['timestamp'].end, timerange.end)
 def test_config_error_check_and_defaults(self):
     with self.assertRaises(definition.DefinitionError):
         definition.TriggerDefinition(dict(), self.debug_manager)
     with self.assertRaises(definition.DefinitionError):
         definition.TriggerDefinition(dict(name='test_trigger'),
                                      self.debug_manager)
     with self.assertRaises(definition.DefinitionError):
         definition.TriggerDefinition(
             dict(name='test_trigger', expiration='$last + 1d'),
             self.debug_manager)
     with self.assertRaises(definition.DefinitionError):
         definition.TriggerDefinition(
             dict(name='test_trigger',
                  expiration='$last + 1d',
                  fire_pipeline='test_pipeline'), self.debug_manager)
     with self.assertRaises(definition.DefinitionError):
         definition.TriggerDefinition(
             dict(name='test_trigger',
                  expiration='$last + 1d',
                  fire_pipeline='test_pipeline',
                  fire_criteria=[dict(event_type='test.thing')]),
             self.debug_manager)
     tdef = definition.TriggerDefinition(
         dict(name='test_trigger',
              expiration='$last + 1d',
              fire_pipeline='test_pipeline',
              fire_criteria=[dict(event_type='test.thing')],
              match_criteria=[dict(event_type='test.*')]),
         self.debug_manager)
     self.assertEqual(len(tdef.distinguished_by), 0)
     self.assertEqual(len(tdef.fire_criteria), 1)
     self.assertIsInstance(tdef.fire_criteria[0], definition.Criteria)
     self.assertEqual(len(tdef.match_criteria), 1)
     self.assertIsInstance(tdef.match_criteria[0], definition.Criteria)
     self.assertEqual(tdef.fire_delay, 0)
     self.assertEqual(len(tdef.load_criteria), 0)