Skip to content

Commit cee7edc

Browse files
committed
test for buggy < 2.6 dateutil with ambiguous tz
1 parent 970e3f0 commit cee7edc

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

pandas/tseries/tests/test_timezones.py

+23-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import numpy as np
66
import pytz
7-
7+
from distutils.version import LooseVersion
88
from pandas.types.dtypes import DatetimeTZDtype
99
from pandas import (Index, Series, DataFrame, isnull, Timestamp)
1010

@@ -1206,6 +1206,28 @@ def f():
12061206
dt = Timestamp('2013-11-03 01:59:59.999999-0400', tz='US/Eastern')
12071207
self.assertEqual(dt.tz_localize(None), dt.replace(tzinfo=None))
12081208

1209+
def test_ambiguous_compat(self):
1210+
# validate that pytz and dateutil are compat for dst
1211+
# when the transition happens
1212+
tm._skip_if_no_dateutil()
1213+
tm._skip_if_no_pytz()
1214+
1215+
result_pytz = Timestamp('2013-10-27 01:00:00').tz_localize('Europe/London', ambiguous=0)
1216+
result_dateutil = Timestamp('2013-10-27 01:00:00').tz_localize('dateutil//usr/share/zoneinfo/Europe/London', ambiguous=0)
1217+
self.assertEqual(result_pytz.value, result_dateutil.value)
1218+
self.assertEqual(result_pytz.value, 1382835600000000000)
1219+
self.assertEqual(str(result_pytz), str(result_dateutil))
1220+
1221+
# 1 hour difference
1222+
result_pytz = Timestamp('2013-10-27 01:00:00').tz_localize('Europe/London', ambiguous=1)
1223+
result_dateutil = Timestamp('2013-10-27 01:00:00').tz_localize('dateutil//usr/share/zoneinfo/Europe/London', ambiguous=1)
1224+
self.assertEqual(result_pytz.value, result_dateutil.value)
1225+
self.assertEqual(result_pytz.value, 1382832000000000000)
1226+
1227+
# dateutil < 2.6 is buggy w.r.t. ambiguous timezones
1228+
if dateutil.__version__ > LooseVersion('2.5.3'):
1229+
self.assertEqual(str(result_pytz), str(result_dateutil))
1230+
12091231
def test_index_equals_with_tz(self):
12101232
left = date_range('1/1/2011', periods=100, freq='H', tz='utc')
12111233
right = date_range('1/1/2011', periods=100, freq='H', tz='US/Eastern')

0 commit comments

Comments
 (0)