diff --git a/tests/test_tradingcalendar.py b/tests/test_tradingcalendar.py index a09bf6f7..06604f05 100644 --- a/tests/test_tradingcalendar.py +++ b/tests/test_tradingcalendar.py @@ -41,24 +41,8 @@ class TestTradingCalendar(TestCase): env_start_index = \ env.trading_days.searchsorted(tradingcalendar.start) env_days = env.trading_days[env_start_index:] - diff = env_days - tradingcalendar.trading_days - self.assertEqual( - len(diff), - 0, - "{diff} should be empty".format(diff=diff) - ) - - diff2 = tradingcalendar.trading_days - env_days - # depending on the time of day, data for the current day - # may not be available from yahoo, so don't include end - # of the tradingcalendar - diff2 = diff2 - self.end - self.assertEqual( - len(diff2), - 0, - "{diff} should be empty".format(diff=diff2) - ) - + cal_days = tradingcalendar.trading_days + self.check_days(env_days, cal_days) def test_lse_calendar_vs_environment(self): env = TradingEnvironment( bm_symbol='^FTSE', @@ -68,10 +52,10 @@ class TestTradingCalendar(TestCase): env_start_index = \ env.trading_days.searchsorted(tradingcalendar_lse.start) env_days = env.trading_days[env_start_index:] - end_index = \ - tradingcalendar_lse.trading_days.searchsorted(env.trading_days[-1]) - # pandas series slicing is different. - cal_days = tradingcalendar_lse.trading_days[:end_index+1] + cal_days = tradingcalendar_lse.trading_days + self.check_days(env_days, cal_days) + + def check_days(self, env_days, cal_days): diff = env_days - cal_days self.assertEqual( len(diff), diff --git a/zipline/utils/tradingcalendar.py b/zipline/utils/tradingcalendar.py index dbf90cf3..b2b30cab 100644 --- a/zipline/utils/tradingcalendar.py +++ b/zipline/utils/tradingcalendar.py @@ -17,14 +17,14 @@ import pandas as pd import pytz -from datetime import datetime +from datetime import datetime, timedelta from dateutil import rrule from delorean import Delorean start = datetime(1990, 1, 1, tzinfo=pytz.utc) -end_dln = Delorean(datetime.now(), 'US/Eastern') -end_dln.shift('UTC').truncate('day') -end = end_dln.datetime +end_dln = Delorean(datetime.utcnow(), 'UTC') +end_dln.shift('US/Eastern').truncate('day').shift('UTC') +end = end_dln.datetime - timedelta(days=1) def get_non_trading_days(start, end):