I have a function which reads data from db, modifies it and writes it back to another db. I am trying to write unit tests for this
import file1
import file2
def update_func(query):
max_date = file1.get_cutover_date()
data_dataframe = file2.get_dataframe_from_db(query)
transformed_dataframe = modify_df(data_dataframe)
df1 = transformed_dataframe.filter(transformed_dataframe['date']>max_date)
write_to_db(df1)
I tried to patch the function calls.
@patch('file2.get_dataframe_from_db')
@patch('file1.get_cutover_date')
test_update_func(patched_get_cutover, patched_get_df):
patched_get_cutover.return_value = '2015-01-01 00:00:00'
response = [Row(id=1,date='2016-10-12 00:00:00')]
response_df = spark.createDataFrame(response)
patched_get_df.return_value = response_df
update_func('test_query')
patched_get_cutover.assert_called
patched_get_df.assert_called
But I am getting TypeError: '>' not supported between instances of MagicMock and MagicMock