Skip to content

Commit 2ebf2a5

Browse files
committed
Make sure that tracker attaches timestamp even if wrong type was passed (closes snowplow#190)
1 parent 93e1560 commit 2ebf2a5

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

snowplow_tracker/test/unit/test_tracker.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import unittest
2626

2727
from contracts.interface import ContractNotRespected
28+
from contracts import disable_all, enable_all
2829
from freezegun import freeze_time
2930

3031
from snowplow_tracker.tracker import Tracker
@@ -59,6 +60,13 @@ def test_set_timestamp_2(self):
5960
dtm = Tracker.get_timestamp(1399021242240.0303)
6061
self.assertEqual(dtm, 1399021242240)
6162

63+
@freeze_time("1970-01-01 00:00:01")
64+
def test_set_timestamp_3(self):
65+
disable_all()
66+
dtm = Tracker.get_timestamp("1399021242030") # test wrong arg type
67+
self.assertEqual(dtm, 1000) # 1970-01-01 00:00:01 in ms
68+
enable_all()
69+
6270
def test_add_emitter(self):
6371
e1 = Emitter("d3rkrsqld9gmqf.cloudfront.net", method="get")
6472
e2 = Emitter("d3rkrsqld9gmqf.cloudfront.net", method="post")

snowplow_tracker/tracker.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,9 @@ def get_timestamp(tstamp=None):
135135
:type tstamp: int | float | None
136136
:rtype: int
137137
"""
138-
if tstamp is None:
139-
return int(time.time() * 1000)
140-
elif isinstance(tstamp, (int, float, )):
138+
if isinstance(tstamp, (int, float, )):
141139
return int(tstamp)
140+
return int(time.time() * 1000)
142141

143142

144143
"""

0 commit comments

Comments
 (0)