def test_raise_exception_if_date_range_does_not_contain_start_and_end_date(): store = TopLevelTickStore(Mock()) dr = DateRange(start=None, end=None) with pytest.raises(Exception) as e: store._get_library_metadata(dr) assert "The date range {0} must contain a start and end date".format( dr) in str(e)
def test_slice_list_of_dicts(start, end, expected_start_index, expected_end_index): top_level_tick_store = TopLevelTickStore(Mock()) dates = list(rrule(DAILY, count=5, dtstart=dt(2010, 1, 1, tzinfo=utc), interval=2)) data = [{'index': date, 'A': val} for date, val in zip(dates, range(5))] expected = data[expected_start_index:expected_end_index] result = top_level_tick_store._slice(data, start, end) assert expected == result
def test_slice_pandas_dataframe(start, end, expected_start_index, expected_end_index): top_level_tick_store = TopLevelTickStore(Mock()) dates = pd.date_range('20100101', periods=5, freq='2D') data = pd.DataFrame(np.random.randn(5, 4), index=dates, columns=list('ABCD')) expected = data.iloc[expected_start_index:expected_end_index] result = top_level_tick_store._slice(data, start, end) assert_frame_equal(expected, result), '{}\n{}'.format(expected, result)
def test_raise_exception_and_log_an_error_if_an_invalid_library_name_is_added(): arctic_lib = MagicMock() arctic_lib.arctic.__getitem__.side_effect = Exception() store = TopLevelTickStore(arctic_lib) with patch("arctic.tickstore.toplevel.logger") as mock_logger: with pytest.raises(Exception): store.add(None, "blah") mock_logger.error.assert_called_once_with("Could not load library")
def test_slice_raises(): m = TopLevelTickStore(Mock()) with pytest.raises(UnhandledDtypeException) as e: m._slice("abc", 1, 2) assert ("Can't persist type" in str(e))
def test_raise_exception_if_daterange_is_not_provided(): store = TopLevelTickStore(Mock()) with pytest.raises(Exception) as e: store._get_library_metadata(None) assert "A date range must be provided" in str(e)