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')
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)
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}])
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}])
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()
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)
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)