Метод тестирования, которому нужен путь к файлу для загрузки файла Excel - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть метод, который принимает в качестве параметра путь к папке. Внутри папки находится файл с именем wh.xlsx.

Метод загружает файл и удаляет некоторые ненужные строки.

    def remove_retail_codes(path):
    directory = path + constants.STOCK_DIR+"\\wh.xlsx"
    file = panda.read_excel(directory)
    last_file = panda.DataFrame()
    for code in constants.NOT_NEEDED:

        last_file = panda.concat([last_file, file[file['col1'].str.startswith(code) &
                                                  ~file['col2'].str.contains(constants.NOT_NEEDED[code])]],
                                                   ignore_index=True)
    last_file.drop(labels='col3', axis=1)

    return(last_file)

Я пытаюсь создать модульный тест для этого метода, но мне сложно понять, что / как мне следует сделать.

 def test_remove_retail_codes_with_constants(self):
        df = pandas.DataFrame({'Col1': ['c0000', 'c0000', 'c0000'],
                               'Col2': ['g1', 'g2', 'g3']})
        output = BytesIO()
        writer = pandas.ExcelWriter(output, engine='xlsxwriter')
        df.to_excel(writer, sheet_name='Sheet1', index=False)
        writer.save()
        output.seek(0)

        with patch("file_service.remove_retail_codes") as open_mock:
            open_mock.return_value = output
            df = file_service.remove_retail_codes('file/path/file.xslx')
            open_mock.assert_called_once_with('file/path/file.xslx')

        pandas.testing.assert_frame_equal(
            df, pandas.DataFrame({'Col1': ['c0000'],
                                  'Col2': ['g1']})
        )

Когда я запускаю этот код, я получаю

AssertionError: DataFrame Ожидаемый тип, найденный взамен

не должен dataframe быть тип данных вместо BytesIO?

...