Example #1
0
 def test_get_revenue_value__revenue_tag(self):
     """ Test that correct revenue value is returned. """
     self.assertEqual(0, event_tag_utils.get_revenue_value({'revenue': 0}))
     self.assertEqual(65536,
                      event_tag_utils.get_revenue_value({'revenue': 65536}))
     self.assertEqual(
         9223372036854775807,
         event_tag_utils.get_revenue_value({'revenue':
                                            9223372036854775807}))
Example #2
0
    def _create_visitor(cls, event, logger):
        """ Helper method to create Visitor instance for event_batch.

    Args:
      event: Instance of UserEvent.
      logger: Provides a logger instance.

    Returns:
      Instance of Visitor. None if:
      - event is invalid.
    """

        if isinstance(event, user_event.ImpressionEvent):
            metadata = payload.Metadata(event.flag_key, event.rule_key,
                                        event.rule_type, event.variation.key)
            decision = payload.Decision(event.experiment.layerId,
                                        event.experiment.id,
                                        event.variation.id, metadata)
            snapshot_event = payload.SnapshotEvent(
                event.experiment.layerId,
                event.uuid,
                cls.ACTIVATE_EVENT_KEY,
                event.timestamp,
            )

            snapshot = payload.Snapshot([snapshot_event], [decision])

            visitor = payload.Visitor([snapshot], event.visitor_attributes,
                                      event.user_id)

            return visitor

        elif isinstance(event, user_event.ConversionEvent):
            revenue = event_tag_utils.get_revenue_value(event.event_tags)
            value = event_tag_utils.get_numeric_value(event.event_tags, logger)

            snapshot_event = payload.SnapshotEvent(
                event.event.id,
                event.uuid,
                event.event.key,
                event.timestamp,
                revenue,
                value,
                event.event_tags,
            )

            snapshot = payload.Snapshot([snapshot_event])

            visitor = payload.Visitor([snapshot], event.visitor_attributes,
                                      event.user_id)

            return visitor

        else:
            logger.error('Invalid user event.')
            return None
 def test_get_revenue_value__invalid_revenue_tag(self):
   """ Test that revenue value is not returned when revenue event tag has invalid data type. """
   self.assertIsNone(event_tag_utils.get_revenue_value({'revenue': None}))
   self.assertIsNone(event_tag_utils.get_revenue_value({'revenue': 0.5}))
   self.assertIsNone(event_tag_utils.get_revenue_value({'revenue': '65536'}))
   self.assertIsNone(event_tag_utils.get_revenue_value({'revenue': True}))
   self.assertIsNone(event_tag_utils.get_revenue_value({'revenue': False}))
   self.assertIsNone(event_tag_utils.get_revenue_value({'revenue': [1, 2, 3]}))
   self.assertIsNone(event_tag_utils.get_revenue_value({'revenue': {'a', 'b', 'c'}}))
 def test_get_revenue_value__invalid_args(self):
   """ Test that revenue value is not returned for invalid arguments. """
   self.assertIsNone(event_tag_utils.get_revenue_value(None))
   self.assertIsNone(event_tag_utils.get_revenue_value(0.5))
   self.assertIsNone(event_tag_utils.get_revenue_value(65536))
   self.assertIsNone(event_tag_utils.get_revenue_value(9223372036854775807))
   self.assertIsNone(event_tag_utils.get_revenue_value('9223372036854775807'))
   self.assertIsNone(event_tag_utils.get_revenue_value(True))
   self.assertIsNone(event_tag_utils.get_revenue_value(False))
Example #5
0
 def test_get_revenue_value__invalid_args(self):
     """ Test that revenue value is not returned for invalid arguments. """
     self.assertIsNone(event_tag_utils.get_revenue_value(None))
     self.assertIsNone(event_tag_utils.get_revenue_value(0.5))
     self.assertIsNone(event_tag_utils.get_revenue_value(65536))
     self.assertIsNone(
         event_tag_utils.get_revenue_value(9223372036854775807))
     self.assertIsNone(
         event_tag_utils.get_revenue_value('9223372036854775807'))
     self.assertIsNone(event_tag_utils.get_revenue_value(True))
     self.assertIsNone(event_tag_utils.get_revenue_value(False))
Example #6
0
 def test_get_revenue_value__invalid_revenue_tag(self):
     """ Test that revenue value is not returned when revenue event tag has invalid data type. """
     self.assertIsNone(event_tag_utils.get_revenue_value({'revenue': None}))
     self.assertIsNone(event_tag_utils.get_revenue_value({'revenue': 0.5}))
     self.assertIsNone(
         event_tag_utils.get_revenue_value({'revenue': '65536'}))
     self.assertIsNone(event_tag_utils.get_revenue_value({'revenue': True}))
     self.assertIsNone(event_tag_utils.get_revenue_value({'revenue':
                                                          False}))
     self.assertIsNone(
         event_tag_utils.get_revenue_value({'revenue': [1, 2, 3]}))
     self.assertIsNone(
         event_tag_utils.get_revenue_value({'revenue': {'a', 'b', 'c'}}))
 def test_get_revenue_value__revenue_tag(self):
   """ Test that correct revenue value is returned. """
   self.assertEqual(0, event_tag_utils.get_revenue_value({'revenue': 0}))
   self.assertEqual(65536, event_tag_utils.get_revenue_value({'revenue': 65536}))
   self.assertEqual(9223372036854775807, event_tag_utils.get_revenue_value({'revenue': 9223372036854775807}))
 def test_get_revenue_value__no_revenue_tag(self):
   """ Test that revenue value is not returned when there's no revenue event tag. """
   self.assertIsNone(event_tag_utils.get_revenue_value([]))
   self.assertIsNone(event_tag_utils.get_revenue_value({}))
   self.assertIsNone(event_tag_utils.get_revenue_value({'non-revenue': 42}))
Example #9
0
 def test_get_revenue_value__no_revenue_tag(self):
     """ Test that revenue value is not returned when there's no revenue event tag. """
     self.assertIsNone(event_tag_utils.get_revenue_value([]))
     self.assertIsNone(event_tag_utils.get_revenue_value({}))
     self.assertIsNone(
         event_tag_utils.get_revenue_value({'non-revenue': 42}))