Skip to content

Commit d733eff

Browse files
MDP-448 Make ms_to_datetime always return a non-naive datetime.datetime
1 parent 4ac7adb commit d733eff

File tree

4 files changed

+7
-11
lines changed

4 files changed

+7
-11
lines changed

arctic/date/_util.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ def ms_to_datetime(ms, tzinfo=None):
134134
if not isinstance(ms, (int, long)):
135135
raise TypeError('expected integer, not %s' % type(ms))
136136

137-
if tzinfo in (None, mktz()):
138-
return datetime.datetime.fromtimestamp(ms * 1e-3, mktz()).replace(tzinfo=None)
137+
if tzinfo is None:
138+
tzinfo = mktz()
139139

140140
return datetime.datetime.fromtimestamp(ms * 1e-3, tzinfo)
141141

arctic/store/version_store.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ def list_versions(self, symbol=None, snapshot=None, latest_only=False):
237237
continue
238238
seen_symbols.add(version['symbol'])
239239
versions.append({'symbol': version['symbol'], 'version': version['version'],
240-
# We return naive datetimes in London Time.
240+
# We return naive datetimes in Local Time.
241241
'date': ms_to_datetime(datetime_to_ms(version['_id'].generation_time)),
242242
'snapshots': self._find_snapshots(version.get('parent', []))})
243243
return versions

tests/unit/date/test_datetime_to_ms_roundtrip.py

+4-5
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ def assert_roundtrip(tz):
1111

1212
ts1 = ts.replace(tzinfo=tz)
1313
ts2 = ms_to_datetime(datetime_to_ms(ts1.astimezone(mktz("UTC"))), tz)
14-
ts1 = ts1.replace(tzinfo=None) if tz == mktz() else ts1
1514
#logger.info(ts2.tzinfo)
1615

1716
assert(ts2.hour == ts1.hour)
@@ -53,22 +52,22 @@ def test_mktz_London():
5352

5453
def test_datetime_roundtrip_local_no_tz():
5554
pdt = datetime.datetime(2012, 6, 12, 12, 12, 12, 123000)
56-
pdt2 = ms_to_datetime(datetime_to_ms(pdt))
55+
pdt2 = ms_to_datetime(datetime_to_ms(pdt)).replace(tzinfo=None)
5756
assert pdt2 == pdt
5857

5958
pdt = datetime.datetime(2012, 1, 12, 12, 12, 12, 123000)
60-
pdt2 = ms_to_datetime(datetime_to_ms(pdt))
59+
pdt2 = ms_to_datetime(datetime_to_ms(pdt)).replace(tzinfo=None)
6160
assert pdt2 == pdt
6261

6362

6463
def test_datetime_roundtrip_local_tz():
6564
pdt = datetime.datetime(2012, 6, 12, 12, 12, 12, 123000, tzinfo=mktz(DEFAULT_TIME_ZONE_NAME))
6665
pdt2 = ms_to_datetime(datetime_to_ms(pdt))
67-
assert pdt2 == pdt.replace(tzinfo=None)
66+
assert pdt2 == pdt
6867

6968
pdt = datetime.datetime(2012, 1, 12, 12, 12, 12, 123000, tzinfo=mktz(DEFAULT_TIME_ZONE_NAME))
7069
pdt2 = ms_to_datetime(datetime_to_ms(pdt))
71-
assert pdt2 == pdt.replace(tzinfo=None)
70+
assert pdt2 == pdt
7271

7372

7473
def test_datetime_roundtrip_est_tz():

tests/unit/date/test_util.py

-3
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,13 @@
1818
def test_datetime_to_ms_and_back(pdt):
1919
i = datetime_to_ms(pdt)
2020
pdt = pdt.astimezone(mktz())
21-
pdt = pdt.replace(tzinfo=None)
2221
pdt2 = ms_to_datetime(i)
2322
assert pdt == pdt2
2423

2524

2625
def test_datetime_to_ms_and_back_microseconds():
2726
pdt = dt(2012, 8, 1, 12, 34, 56, 999999, tzinfo=mktz(DEFAULT_TIME_ZONE_NAME))
2827
i = datetime_to_ms(pdt)
29-
pdt = pdt.replace(tzinfo=None)
3028
pdt2 = ms_to_datetime(i)
3129

3230
assert pdt != pdt2
@@ -38,7 +36,6 @@ def test_datetime_to_ms_and_back_microseconds():
3836
assert pdt.second == pdt2.second
3937
# Microsecond precision loss inevitable.
4038
assert pdt.microsecond // 1000 == pdt2.microsecond // 1000
41-
assert pdt.tzinfo is None
4239

4340

4441
def test_daterange_closedclosed_None():

0 commit comments

Comments
 (0)