Beispiel #1
0
    def test_new_builder(self):
        # new builder, no arguments
        b = libhoney.Builder()
        self.assertEqual(b._fields._data, {})
        self.assertEqual(b._fields._dyn_fields, set())
        # new builder, passed in data and dynfields
        expected_data = {"aa": 1}
        expected_dyn_fns = set([sample_dyn_fn])
        b = libhoney.Builder(expected_data, expected_dyn_fns)
        self.assertEqual(b._fields._data, expected_data)
        self.assertEqual(b._fields._dyn_fields, expected_dyn_fns)
        # new builder, inherited data and dyn_fields
        libhoney._fields._data = expected_data
        libhoney._fields._dyn_fields = expected_dyn_fns
        b = libhoney.Builder()
        self.assertEqual(b._fields._data, expected_data)
        self.assertEqual(b._fields._dyn_fields, expected_dyn_fns)

        # new builder, merge inherited data and dyn_fields and arguments

        def sample_dyn_fn2():
            return 5

        expected_data = {"aa": 1, "b": 2}
        expected_dyn_fns = set([sample_dyn_fn, sample_dyn_fn2])
        b = libhoney.Builder({"b": 2}, [sample_dyn_fn2])
        self.assertEqual(b._fields._data, expected_data)
        self.assertEqual(b._fields._dyn_fields, expected_dyn_fns)
Beispiel #2
0
 def test_add(self):
     b = libhoney.Builder()
     expected_data = {"a": 1, "b": 3}
     b.add(expected_data)
     self.assertEqual(b._fields._data, expected_data)
     expected_data.update({"c": 3, "d": 4})
     b.add({"c": 3, "d": 4})
     self.assertEqual(b._fields._data, expected_data)
Beispiel #3
0
 def test_add_dynamic_field(self):
     b = libhoney.Builder()
     expected_dyn_fns = set()
     self.assertEqual(b._fields._dyn_fields, expected_dyn_fns)
     b.add_dynamic_field(sample_dyn_fn)
     expected_dyn_fns.add(sample_dyn_fn)
     self.assertEqual(b._fields._dyn_fields, expected_dyn_fns)
     with self.assertRaises(TypeError):
         b.add_dynamic_field("foo")
Beispiel #4
0
 def test_clone_builder(self):
     b = libhoney.Builder()
     b.dataset = "newds"
     b.add_field("e", 9)
     b.add_dynamic_field(sample_dyn_fn)
     c = b.clone()
     self.assertEqual(b._fields, c._fields)
     c.add_field("f", 10)
     b.add_field("g", 11)
     self.assertEqual(b._fields._data, {"e": 9, "g": 11})
     self.assertEqual(c._fields._data, {"e": 9, "f": 10})
     self.assertEqual(c.dataset, "newds")
Beispiel #5
0
 def test_new_event(self):
     b = libhoney.Builder()
     b.sample_rate = 5
     expected_data = {"a": 1, "b": 3}
     b.add(expected_data)
     ev = b.new_event()
     self.assertEqual(b._fields, ev._fields)
     self.assertEqual(ev.sample_rate, 5)
     ev.add_field("3", "c")
     self.assertNotEqual(b._fields, ev._fields)
     # move to event testing when written
     self.assertEqual(json.loads(str(ev)), {"a": 1, "3": "c", "b": 3})
Beispiel #6
0
 def test_add_field(self):
     b = libhoney.Builder()
     expected_data = {}
     self.assertEqual(b._fields._data, expected_data)
     b.add_field("foo", 4)
     expected_data["foo"] = 4
     self.assertEqual(b._fields._data, expected_data)
     b.add_field("bar", "baz")
     expected_data["bar"] = "baz"
     self.assertEqual(b._fields._data, expected_data)
     b.add_field("foo", 6)
     expected_data["foo"] = 6
     self.assertEqual(b._fields._data, expected_data)