Example #1
0
    def test_get_field(self, time, uuid):
        time.return_value = 333
        uuid.return_value = "1-2-3-4"

        event = Event("topic", "type")
        event.set_field("normal", "value1")
        event.set_field("obfuscated", "value2", kind=FieldKind.OBFUSCATED)
        event.set_field("high_cardinality", "value3",
                        kind=FieldKind.HIGH_CARDINALITY)

        self.assertEqual(event.get_field("normal"), "value1")
        self.assertEqual(event.get_field("obfuscated"), "value2")
        self.assertEqual(event.get_field("high_cardinality"), "value3")
Example #2
0
    def test_minimal_constructor(self, time, uuid):
        time.return_value = 333
        uuid.return_value = "1-2-3-4"

        event = Event("topic", "type")

        self.assertEqual(event.topic, "topic")
        self.assertEqual(event.event_type, "type")
        self.assertEqual(event.timestamp, 333000)
        self.assertEqual(event.id, "1-2-3-4")
Example #3
0
    def test_set_field(self, time, uuid):
        time.return_value = 333
        uuid.return_value = "1-2-3-4"

        event = Event("topic", "type")

        with warnings.catch_warnings(record=True) as w:
            # Cause all warnings to always be triggered.
            warnings.simplefilter("always")
            event.set_field("deprecated", "value", obfuscate=True)

            self.assertEqual(len(w), 1)
            self.assertTrue(issubclass(w[-1].category, DeprecationWarning))
            self.assertIn("deprecated", str(w[-1].message))

        self._assert_payload(event,
                             {"obfuscated_data": {
                                 "deprecated": "value"
                             }})
Example #4
0
    def test_set_field(self, time, uuid):
        time.return_value = 333
        uuid.return_value = "1-2-3-4"

        event = Event("topic", "type")

        with warnings.catch_warnings(record=True) as w:
            # Cause all warnings to always be triggered.
            warnings.simplefilter("always")
            event.set_field("deprecated", "value", obfuscate=True)

            self.assertEqual(len(w), 1)
            self.assertTrue(issubclass(w[-1].category, DeprecationWarning))
            self.assertIn("deprecated", str(w[-1].message))

        self._assert_payload(event, {
            "obfuscated_data": {
                "deprecated": "value",
            },
        })
Example #5
0
    def test_serialize(self, time, uuid):
        time.return_value = 333
        uuid.return_value = "1-2-3-4"

        event = Event("topic", "type")
        event.set_field("normal", "value1")
        event.set_field("obfuscated", "value2", obfuscate=True)
        event.set_field("empty", "")
        event.set_field("null", None)

        serialized = event.serialize()
        deserialized = json.loads(serialized)

        self.assertEqual(deserialized, {
            "event_topic": "topic",
            "event_type": "type",
            "event_ts": 333000,
            "uuid": "1-2-3-4",
            "payload": {
                "normal": "value1",
                "obfuscated_data": {
                    "obfuscated": "value2",
                },
            },
        })
Example #6
0
 def test_timestamp_not_utc(self):
     timestamp = datetime.datetime(2016, 2, 23, 0, 3, 17, tzinfo=MockTZ())
     with self.assertRaises(ValueError):
         Event("topic", "type", timestamp=timestamp)
Example #7
0
 def test_timestamp_specified(self):
     timestamp = datetime.datetime(2016, 2, 23, 0, 3, 17)
     event = Event("topic", "type", timestamp=timestamp)
     self.assertEqual(event.timestamp, 1456185797000)
Example #8
0
    def test_serialize(self, time, uuid):
        time.return_value = 333
        uuid.return_value = "1-2-3-4"

        event = Event("topic", "type")
        event.set_field("normal", "value1")
        event.set_field("obfuscated", "value2", kind=FieldKind.OBFUSCATED)
        event.set_field("high_cardinality", "value3",
                        kind=FieldKind.HIGH_CARDINALITY)
        event.set_field("empty", "")
        event.set_field("null", None)

        serialized = event.serialize()
        deserialized = json.loads(serialized)

        self.assertEqual(deserialized, {
            "event_topic": "topic",
            "event_type": "type",
            "event_ts": 333000,
            "uuid": "1-2-3-4",
            "payload": {
                "normal": "value1",
                "obfuscated_data": {
                    "obfuscated": "value2",
                },
                "interana_excluded": {
                    "high_cardinality": "value3",
                },
            },
        })
Example #9
0
    def test_set_field_same_key_different_sections(self, time, uuid):
        time.return_value = 333
        uuid.return_value = "1-2-3-4"

        event = Event("topic", "type")

        event.set_field("foo", "bar")
        self._assert_payload(event, {
            "foo": "bar",
        })

        event.set_field("foo", "bar", kind=FieldKind.OBFUSCATED)
        self._assert_payload(event, {
            "obfuscated_data": {
                "foo": "bar",
            },
        })

        event.set_field("foo", "bar")
        self._assert_payload(event, {
            "foo": "bar",
        })

        event.set_field("foo", "bar", kind=FieldKind.HIGH_CARDINALITY)
        self._assert_payload(event, {
            "interana_excluded": {
                "foo": "bar",
            },
        })

        event.set_field("foo", "bar")
        self._assert_payload(event, {
            "foo": "bar",
        })

        event.set_field("foo", "bar", kind=FieldKind.HIGH_CARDINALITY)
        self._assert_payload(event, {
            "interana_excluded": {
                "foo": "bar",
            },
        })

        event.set_field("foo", "bar", kind=FieldKind.OBFUSCATED)
        self._assert_payload(event, {
            "obfuscated_data": {
                "foo": "bar",
            },
        })

        event.set_field("foo", "bar", kind=FieldKind.HIGH_CARDINALITY)
        self._assert_payload(event, {
            "interana_excluded": {
                "foo": "bar",
            },
        })
Example #10
0
    def test_serialize(self, time, uuid):
        time.return_value = 333
        uuid.return_value = "1-2-3-4"

        event = Event("topic", "type")
        event.set_field("normal", "value1")
        event.set_field("obfuscated", "value2", kind=FieldKind.OBFUSCATED)
        event.set_field("high_cardinality",
                        "value3",
                        kind=FieldKind.HIGH_CARDINALITY)
        event.set_field("empty", "")
        event.set_field("null", None)

        serialized = event.serialize()
        deserialized = json.loads(serialized)

        self.assertEqual(
            deserialized, {
                "event_topic": "topic",
                "event_type": "type",
                "event_ts": 333000,
                "uuid": "1-2-3-4",
                "payload": {
                    "normal": "value1",
                    "obfuscated_data": {
                        "obfuscated": "value2",
                    },
                    "interana_excluded": {
                        "high_cardinality": "value3",
                    },
                },
            })
Example #11
0
    def test_get_field(self, time, uuid):
        time.return_value = 333
        uuid.return_value = "1-2-3-4"

        event = Event("topic", "type")
        event.set_field("normal", "value1")
        event.set_field("obfuscated", "value2", kind=FieldKind.OBFUSCATED)
        event.set_field("high_cardinality",
                        "value3",
                        kind=FieldKind.HIGH_CARDINALITY)

        self.assertEqual(event.get_field("normal"), "value1")
        self.assertEqual(event.get_field("obfuscated"), "value2")
        self.assertEqual(event.get_field("high_cardinality"), "value3")
Example #12
0
    def test_set_field_same_key_different_sections(self, time, uuid):
        time.return_value = 333
        uuid.return_value = "1-2-3-4"

        event = Event("topic", "type")

        event.set_field("foo", "bar")
        self._assert_payload(event, {
            "foo": "bar",
        })

        event.set_field("foo", "bar", kind=FieldKind.OBFUSCATED)
        self._assert_payload(event, {
            "obfuscated_data": {
                "foo": "bar",
            },
        })

        event.set_field("foo", "bar")
        self._assert_payload(event, {
            "foo": "bar",
        })

        event.set_field("foo", "bar", kind=FieldKind.HIGH_CARDINALITY)
        self._assert_payload(event, {
            "interana_excluded": {
                "foo": "bar",
            },
        })

        event.set_field("foo", "bar")
        self._assert_payload(event, {
            "foo": "bar",
        })

        event.set_field("foo", "bar", kind=FieldKind.HIGH_CARDINALITY)
        self._assert_payload(event, {
            "interana_excluded": {
                "foo": "bar",
            },
        })

        event.set_field("foo", "bar", kind=FieldKind.OBFUSCATED)
        self._assert_payload(event, {
            "obfuscated_data": {
                "foo": "bar",
            },
        })

        event.set_field("foo", "bar", kind=FieldKind.HIGH_CARDINALITY)
        self._assert_payload(event, {
            "interana_excluded": {
                "foo": "bar",
            },
        })