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)