Я пытаюсь написать тест для скрипта (my_script) на python.На полпути этого скрипта кадр данных pandas сохраняется в AWS как csv.Я не хочу сохранять файл в AWS каждый раз, когда я запускаю этот тест, но я хочу иметь возможность проверить содержимое этого фрейма позже в этом тесте.Можно ли переписать функцию «save_to_csv» внутри my_script, чтобы этот кадр данных сохранялся?Я попытался написать простой класс для хранения фрейма данных как атрибута:
class FakeStorage(object):
def __init__(self):
self.dataframe = None
def save_to_csv(self, df, file_path):
self.dataframe = df
print('df fake saved')
FAKE_STORAGE = FakeStorage()
import my_script
my_script.save_to_csv = FAKE_STORAGE.save_to_csv
, и я также попытался сохранить фрейм данных как глобальную переменную:
def fake_save_to_csv(df, file_path):
global DATAFRAME
DATAFRAME = df
print('df fake saved')
import my_script
my_script.save_to_csv = fake_save_to_csv
Как ни странно, в обоихВ случаях, когда я вижу оператор print, функция, похоже, была успешно перезаписана.Однако после запуска my_script в тесте в первом случае я пытаюсь получить доступ к FAKE_STORAGE.dataframe, и он отсутствует, во втором случае при попытке доступа к DATAFRAME возникает ошибка NameError.
Есть ли у кого-нибудь другие идеи?попробовать?