diff --git a/tests/utils/test_events.py b/tests/utils/test_events.py index 2792ce49..7d8979f6 100644 --- a/tests/utils/test_events.py +++ b/tests/utils/test_events.py @@ -74,6 +74,11 @@ class TestUtils(TestCase): with self.assertRaises(ValueError): _build_offset(datetime.timedelta(minutes=1), {'minutes': 1}, None) + def test_build_offset_exc(self): + with self.assertRaises(TypeError): + # object() is not an instance of a timedelta. + _build_offset(object(), {}, None) + def test_build_offset_kwargs(self): kwargs = {'minutes': 1} self.assertEqual( diff --git a/zipline/utils/events.py b/zipline/utils/events.py index a7e86978..9c1848a1 100644 --- a/zipline/utils/events.py +++ b/zipline/utils/events.py @@ -77,8 +77,10 @@ def _build_offset(offset, kwargs, default): return datetime.timedelta(**kwargs) elif kwargs: raise ValueError('Cannot pass kwargs and an offset') - else: + elif isinstance(offset, datetime.timedelta): return offset + else: + raise TypeError("Must pass 'hours' and/or 'minutes' as keywords") def _build_date(date, kwargs):