Esempio n. 1
0
    def test_track_struct_event(self, mok_complete_payload):
        mokEmitter = self.create_patch('snowplow_tracker.Emitter')
        e = mokEmitter()

        with ContractsDisabled():
            mok_complete_payload.side_effect = mocked_complete_payload

            t = Tracker(e)
            ctx = SelfDescribingJson("test.context.schema", {"user": "******"})
            evTstamp = 1399021242030
            t.track_struct_event("Mixes",
                                 "Play",
                                 "Test",
                                 "TestProp",
                                 value=3.14,
                                 context=[ctx],
                                 tstamp=evTstamp)
            self.assertEqual(mok_complete_payload.call_count, 1)
            completeArgsList = mok_complete_payload.call_args_list[0][0]
            self.assertEqual(len(completeArgsList), 4)

            actualPayloadArg = completeArgsList[0]
            actualContextArg = completeArgsList[1]
            actualTstampArg = completeArgsList[2]
            actualPairs = actualPayloadArg.nv_pairs

            expectedPairs = {
                "e": "se",
                "se_ca": "Mixes",
                "se_ac": "Play",
                "se_la": "Test",
                "se_pr": "TestProp",
                "se_va": 3.14
            }
            self.assertDictEqual(actualPairs, expectedPairs)
            self.assertIs(actualContextArg[0], ctx)
            self.assertEqual(actualTstampArg, evTstamp)
 def test_flush_timer(self):
     e1 = Emitter("d3rkrsqld9gmqf.cloudfront.net",
                  method="post",
                  buffer_size=10)
     t = Tracker(e1,
                 namespace="cloudfront",
                 encode_base64=False,
                 app_id="AF003")
     e1.set_flush_timer(3)
     t.track_struct_event("Test", "A")
     t.track_struct_event("Test", "B")
     t.track_struct_event("Test", "C")
     self.assertEqual(len(e1.buffer), 3)
     time.sleep(4)
     self.assertEqual(len(e1.buffer), 0)
     t.track_struct_event("Test", "A")
     t.track_struct_event("Test", "B")
     self.assertEqual(len(e1.buffer), 2)