Метод имитации pandas .read_excel не работает с @patch Python - PullRequest
0 голосов
/ 05 мая 2020

Я пишу модульные тесты с Python для проекта и недавно столкнулся с проблемой декоратора @patch. У меня есть следующий метод, который мне нужно проверить

def _read_from_disk(self, excel_kwargs):
        """
        Read excel file from disk and apply excel_kwargs.

        Args:
            excel_kwargs: Parameters for pandas.read_excel.

        Returns:
            DataFrame or dict of DataFrames.
        """
        return pd.read_excel(self.location, **excel_kwargs)

Моя структура тестового метода

 @patch("program.data.excel.BaseExcelReader._read_from_disk.pd.read_excel")
    def test___read_from_disk(self, mock_df):
        mock_df.return_value = pd.DataFrame({"test_id": [1, 2, 3, 4, 5]})
        return_df = self.test_reader._read_from_disk(self.excel_kwargs_svd)
        pd.testing.assert_frame_equal(return_df, pd.DataFrame({"test_id": [1, 2, 3, 4, 5]}))

, что дает мне следующую ошибку:

ModuleNotFoundError: No module с именем 'program.data.excel.BaseExcelReader'; 'program.data.excel' не является пакетом

Обратите внимание, что метод тестирования является только примером. Цель вопроса - найти способ издеваться над pandas .read_excel с помощью @patch. Спасибо

...