Skip to content

Commit cf58a4f

Browse files
committed
Make optional timestamp argument set 'true timestamp' rather than 'device created timestamp' (closes #251)
1 parent 5d06df4 commit cf58a4f

File tree

4 files changed

+60
-135
lines changed

4 files changed

+60
-135
lines changed

snowplow_tracker/test/integration/test_integration.py

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
from freezegun import freeze_time
3434

3535
from snowplow_tracker import tracker, _version, emitters, subject
36-
from snowplow_tracker.timestamp import DeviceTimestamp, TrueTimestamp
3736
from snowplow_tracker.self_describing_json import SelfDescribingJson
3837
from snowplow_tracker.redis import redis_emitter, redis_worker
3938

@@ -121,7 +120,7 @@ def test_integration_ecommerce_transaction(self):
121120
for key in expected_fields:
122121
self.assertEqual(from_querystring(key, querystrings[-1]), expected_fields[key])
123122

124-
self.assertEqual(from_querystring("dtm", querystrings[-3]), from_querystring("dtm", querystrings[-2]))
123+
self.assertEqual(from_querystring("ttm", querystrings[-3]), from_querystring("ttm", querystrings[-2]))
125124

126125
def test_integration_screen_view(self):
127126
t = tracker.Tracker([default_emitter], default_subject, encode_base64=False)
@@ -328,30 +327,26 @@ def test_post_batched(self):
328327
self.assertEqual(querystrings[-1]["data"][0]["se_ac"], "A")
329328
self.assertEqual(querystrings[-1]["data"][1]["se_ac"], "B")
330329

330+
@freeze_time("2021-04-19 00:00:01") # unix: 1618790401000
331331
def test_timestamps(self):
332-
emitter = emitters.Emitter("localhost", protocol="http", port=80, method='post', buffer_size=4)
332+
emitter = emitters.Emitter("localhost", protocol="http", port=80, method='post', buffer_size=3)
333333
t = tracker.Tracker([emitter], default_subject)
334334
with HTTMock(pass_post_response_content):
335-
with freeze_time("2013-01-14 03:21:34"):
336-
t.track_page_view("localhost", "stamp0", None, tstamp=None)
337-
t.track_page_view("localhost", "stamp1", None, tstamp=1358933694000)
338-
with freeze_time("2013-01-14 03:22:36"):
339-
t.track_page_view("localhost", "stamp2", None, tstamp=DeviceTimestamp(1458133694000))
340-
t.track_page_view("localhost", "stamp3", None, tstamp=TrueTimestamp(1458033694000))
335+
t.track_page_view("localhost", "stamp0", None, tstamp=None)
336+
t.track_page_view("localhost", "stamp1", None, tstamp=1358933694000)
337+
t.track_page_view("localhost", "stamp2", None, tstamp=1358933694000.00)
341338

342339
expected_timestamps = [
343-
{"dtm": "1358133694000", "ttm": None, "stm": "1358133756000"},
344-
{"dtm": "1358933694000", "ttm": None, "stm": "1358133756000"},
345-
{"dtm": "1458133694000", "ttm": None, "stm": "1358133756000"},
346-
{"dtm": None, "ttm": "1458033694000", "stm": "1358133756000"},
340+
{"dtm": "1618790401000", "ttm": None, "stm": "1618790401000"},
341+
{"dtm": "1618790401000", "ttm": "1358933694000", "stm": "1618790401000"},
342+
{"dtm": "1618790401000", "ttm": "1358933694000", "stm": "1618790401000"}
347343
]
348344
request = querystrings[-1]
349345

350346
for i, event in enumerate(expected_timestamps):
351347
self.assertEqual(request["data"][i].get("dtm"), expected_timestamps[i]["dtm"])
352348
self.assertEqual(request["data"][i].get("ttm"), expected_timestamps[i]["ttm"])
353349
self.assertEqual(request["data"][i].get("stm"), expected_timestamps[i]["stm"])
354-
self.assertEqual(request["data"][i].get("page"), "stamp" + str(i))
355350

356351
def test_bytelimit(self):
357352
post_emitter = emitters.Emitter("localhost", protocol="http", port=80, method='post', buffer_size=5, byte_limit=420)

snowplow_tracker/test/unit/test_tracker.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
from snowplow_tracker.subject import Subject
4040
from snowplow_tracker.payload import Payload
4141
from snowplow_tracker.self_describing_json import SelfDescribingJson
42-
from snowplow_tracker.timestamp import DeviceTimestamp, TrueTimestamp
4342

4443
UNSTRUCT_SCHEMA = "iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0"
4544
CONTEXT_SCHEMA = "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-1"
@@ -137,22 +136,22 @@ def test_get_uuid(self):
137136

138137
@freeze_time("1970-01-01 00:00:01")
139138
def test_get_timestamp(self):
140-
dtm = Tracker.get_timestamp()
141-
self.assertEqual(dtm, 1000) # 1970-01-01 00:00:01 in ms
139+
tstamp = Tracker.get_timestamp()
140+
self.assertEqual(tstamp, 1000) # 1970-01-01 00:00:01 in ms
142141

143142
def test_get_timestamp_1(self):
144-
dtm = Tracker.get_timestamp(1399021242030)
145-
self.assertEqual(dtm, 1399021242030)
143+
tstamp = Tracker.get_timestamp(1399021242030)
144+
self.assertEqual(tstamp, 1399021242030)
146145

147146
def test_get_timestamp_2(self):
148-
dtm = Tracker.get_timestamp(1399021242240.0303)
149-
self.assertEqual(dtm, 1399021242240)
147+
tstamp = Tracker.get_timestamp(1399021242240.0303)
148+
self.assertEqual(tstamp, 1399021242240)
150149

151150
@freeze_time("1970-01-01 00:00:01")
152151
def test_get_timestamp_3(self):
153152
with ContractsDisabled():
154-
dtm = Tracker.get_timestamp("1399021242030") # test wrong arg type
155-
self.assertEqual(dtm, 1000) # 1970-01-01 00:00:01 in ms
153+
tstamp = Tracker.get_timestamp("1399021242030") # test wrong arg type
154+
self.assertEqual(tstamp, 1000) # 1970-01-01 00:00:01 in ms
156155

157156
@mock.patch('snowplow_tracker.Tracker.track')
158157
def test_alias_of_track_unstruct_event(self, mok_track):
@@ -326,8 +325,8 @@ def test_complete_payload_tstamp_int(self, mok_uuid, mok_track):
326325

327326
t = Tracker(e)
328327
p = Payload()
329-
evTstamp = 1000
330-
t.complete_payload(p, None, evTstamp, None)
328+
time_in_millis = 100010001000
329+
t.complete_payload(p, None, time_in_millis, None)
331330

332331
self.assertEqual(mok_track.call_count, 1)
333332
trackArgsTuple = mok_track.call_args_list[0][0]
@@ -336,7 +335,8 @@ def test_complete_payload_tstamp_int(self, mok_uuid, mok_track):
336335

337336
expected = {
338337
"eid": _TEST_UUID,
339-
"dtm": evTstamp,
338+
"dtm": 1618790401000,
339+
"ttm": time_in_millis,
340340
"tv": TRACKER_VERSION,
341341
"p": "pc"
342342
}
@@ -355,9 +355,8 @@ def test_complete_payload_tstamp_dtm(self, mok_uuid, mok_track):
355355

356356
t = Tracker(e)
357357
p = Payload()
358-
_time = 1000
359-
evTstamp = DeviceTimestamp(_time)
360-
t.complete_payload(p, None, evTstamp, None)
358+
time_in_millis = 100010001000
359+
t.complete_payload(p, None, time_in_millis, None)
361360

362361
self.assertEqual(mok_track.call_count, 1)
363362
trackArgsTuple = mok_track.call_args_list[0][0]
@@ -366,7 +365,8 @@ def test_complete_payload_tstamp_dtm(self, mok_uuid, mok_track):
366365

367366
expected = {
368367
"eid": _TEST_UUID,
369-
"dtm": _time,
368+
"dtm": 1618790401000,
369+
"ttm": time_in_millis,
370370
"tv": TRACKER_VERSION,
371371
"p": "pc"
372372
}
@@ -385,9 +385,8 @@ def test_complete_payload_tstamp_ttm(self, mok_uuid, mok_track):
385385

386386
t = Tracker(e)
387387
p = Payload()
388-
_time = 1000
389-
evTstamp = TrueTimestamp(_time)
390-
t.complete_payload(p, None, evTstamp, None)
388+
time_in_millis = 100010001000
389+
t.complete_payload(p, None, time_in_millis, None)
391390

392391
self.assertEqual(mok_track.call_count, 1)
393392
trackArgsTuple = mok_track.call_args_list[0][0]
@@ -396,7 +395,8 @@ def test_complete_payload_tstamp_ttm(self, mok_uuid, mok_track):
396395

397396
expected = {
398397
"eid": _TEST_UUID,
399-
"ttm": _time,
398+
"dtm": 1618790401000,
399+
"ttm": time_in_millis,
400400
"tv": TRACKER_VERSION,
401401
"p": "pc"
402402
}

snowplow_tracker/timestamp.py

Lines changed: 0 additions & 64 deletions
This file was deleted.

0 commit comments

Comments
 (0)