Exemplo n.º 1
0
def test_can_convert_to_records_without_objects_returns_false_when_records_have_object_dtype():
    store = PandasSerializer()
    store._to_records = Mock(return_value=(np.array(['a', 'b', None, 'd']), None))

    with patch('arctic.serialization.pandas_serializer.log') as mock_log:
        assert store.can_convert_to_records_without_objects(sentinel.df, 'my_symbol') is False

    mock_log.info.assert_called_once_with('Pandas dataframe my_symbol contains Objects, saving as Blob')
    store._to_records.assert_called_once_with(sentinel.df)
Exemplo n.º 2
0
def test_can_convert_to_records_without_objects_returns_true_otherwise():
    store = PandasSerializer()
    store._to_records = Mock(return_value=(np.rec.array([(1356998400000000000, 'a')],
                                                       dtype=[('index', '<M8[ns]'), ('values', 'S2')]), None))

    with patch('arctic.serialization.pandas_serializer.log') as mock_log:
        assert store.can_convert_to_records_without_objects(sentinel.df, 'my_symbol') is True

    assert mock_log.info.call_count == 0
    store._to_records.assert_called_once_with(sentinel.df)
Exemplo n.º 3
0
def test_can_convert_to_records_without_objects_returns_false_when_records_have_arrays_in_them():
    store = PandasSerializer()
    store._to_records = Mock(return_value=(np.rec.array([(1356998400000000000, ['A', 'BC'])],
                                                       dtype=[('index', '<M8[ns]'), ('values', 'S2', (2,))]), None))

    with patch('arctic.serialization.pandas_serializer.log') as mock_log:
        assert store.can_convert_to_records_without_objects(sentinel.df, 'my_symbol') is False

    mock_log.info.assert_called_once_with('Pandas dataframe my_symbol contains >1 dimensional arrays, saving as Blob')
    store._to_records.assert_called_once_with(sentinel.df)
Exemplo n.º 4
0
def test_can_convert_to_records_without_objects_returns_false_on_exception_in_to_records():
    store = PandasSerializer()
    store._to_records = Mock(side_effect=TypeError('uhoh'))

    with patch('arctic.serialization.pandas_serializer.log') as mock_log:
        assert store.can_convert_to_records_without_objects(sentinel.df, 'my_symbol') is False

    mock_log.info.assert_called_once_with('Pandas dataframe my_symbol caused exception "TypeError(\'uhoh\',)"'
                                          ' when attempting to convert to records. Saving as Blob.')
    store._to_records.assert_called_once_with(sentinel.df)
Exemplo n.º 5
0
def test_can_convert_to_records_without_objects_returns_false_when_records_have_object_dtype(
):
    store = PandasSerializer()
    store._to_records = Mock(return_value=(np.array(['a', 'b', None, 'd']),
                                           None))

    with patch('arctic.serialization.pandas_serializer.log') as mock_log:
        assert store.can_convert_to_records_without_objects(
            sentinel.df, 'my_symbol') is False

    mock_log.info.assert_called_once_with(
        'Pandas dataframe my_symbol contains Objects, saving as Blob')
    store._to_records.assert_called_once_with(sentinel.df)
Exemplo n.º 6
0
def test_can_convert_to_records_without_objects_returns_false_on_exception_in_to_records(
):
    store = PandasSerializer()
    store._to_records = Mock(side_effect=TypeError('uhoh'))

    with patch('arctic.serialization.pandas_serializer.log') as mock_log:
        assert store.can_convert_to_records_without_objects(
            sentinel.df, 'my_symbol') is False

    mock_log.info.assert_called_once_with(
        'Pandas dataframe my_symbol caused exception "TypeError(\'uhoh\',)"'
        ' when attempting to convert to records. Saving as Blob.')
    store._to_records.assert_called_once_with(sentinel.df)
Exemplo n.º 7
0
def test_can_convert_to_records_without_objects_returns_true_otherwise():
    store = PandasSerializer()
    store._to_records = Mock(
        return_value=(np.rec.array([(1356998400000000000, 'a')],
                                   dtype=[('index', '<M8[ns]'), ('values',
                                                                 'S2')]),
                      None))

    with patch('arctic.serialization.pandas_serializer.log') as mock_log:
        assert store.can_convert_to_records_without_objects(
            sentinel.df, 'my_symbol') is True

    assert mock_log.info.call_count == 0
    store._to_records.assert_called_once_with(sentinel.df)
Exemplo n.º 8
0
def test_can_convert_to_records_without_objects_returns_false_when_records_have_arrays_in_them(
):
    store = PandasSerializer()
    store._to_records = Mock(
        return_value=(np.rec.array([(1356998400000000000, ['A', 'BC'])],
                                   dtype=[('index',
                                           '<M8[ns]'), ('values', 'S2',
                                                        (2, ))]), None))

    with patch('arctic.serialization.pandas_serializer.log') as mock_log:
        assert store.can_convert_to_records_without_objects(
            sentinel.df, 'my_symbol') is False

    mock_log.info.assert_called_once_with(
        'Pandas dataframe my_symbol contains >1 dimensional arrays, saving as Blob'
    )
    store._to_records.assert_called_once_with(sentinel.df)