Beispiel #1
0
def test_to_mongo_with_if_exists_fail_raises_value_error():
    class DBStub():
        def count(self):
            return 1

    collection_name = 'Acollection'
    db = {collection_name: DBStub()}
    with pytest.raises(ValueError, match='already exists'):
        pdm.to_mongo(pd.DataFrame(), collection_name, db, if_exists='fail')
Beispiel #2
0
def test_to_mongo_with_chunksize_raises_value_error(chunksize, mocker):
    collection_name = 'ACollection'

    class DBStub():
        def count(self):
            return 0

    db = {collection_name: DBStub()}
    with pytest.raises(ValueError):
        pdm.to_mongo(pd.DataFrame(), collection_name, db, chunksize=chunksize)
Beispiel #3
0
def test_to_mongo_default_args(mocker):
    df = pd.DataFrame({'A': [1, 2]})

    class DBStub():
        def insert_many(self, docs):
            pass

        def count(self):
            return 0

    collection_name = 'Acollection'
    db = {collection_name: DBStub()}
    spy = mocker.spy(db[collection_name], 'insert_many')

    pdm.to_mongo(df, collection_name, db)
    spy.assert_called_with([{'A': 1}, {'A': 2}])
Beispiel #4
0
def test_to_mongo_with_index_false(mocker):
    df = pd.DataFrame({'A': [1, 2], 'B': [2, 3]}).set_index('B')

    class DBStub():
        def insert_many(self, docs):
            pass

        def count(self):
            return 0

    collection_name = 'Acollection'
    db = {collection_name: DBStub()}
    spy = mocker.spy(db[collection_name], 'insert_many')

    pdm.to_mongo(df, collection_name, db, index=False)
    spy.assert_called_with([{'A': 1}, {'A': 2}])
Beispiel #5
0
def test_to_mongo_with_if_exists_append(mocker):
    class DBStub():
        def count(self):
            return 1

        def drop(self):
            pass

        def insert_many(self, *docs):
            pass

    collection_name = 'Acollection'
    db = {collection_name: DBStub()}
    spy = mocker.spy(db[collection_name], 'drop')
    pdm.to_mongo(pd.DataFrame(), collection_name, db, if_exists='append')
    spy.assert_not_called()
Beispiel #6
0
def test_to_mongo_with_chunksize(chunksize, expected_calls, mocker):
    df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [2, 3, 4, 5]}).set_index('B')

    class DBStub():
        def insert_many(self, docs):
            pass

        def count(self):
            return 0

    collection_name = 'Acollection'
    db = {collection_name: DBStub()}
    spy = mocker.spy(db[collection_name], 'insert_many')

    pdm.to_mongo(df, collection_name, db, index=False, chunksize=chunksize)
    spy.assert_has_calls(expected_calls)
Beispiel #7
0
def test_to_mongo_with_if_exists_invalid_raises_value_error(if_exists):
    collection_name = 'ACollection'
    with pytest.raises(ValueError):
        pdm.to_mongo(pd.DataFrame(), collection_name, {}, if_exists=if_exists)