Не проходит тестирование pytest

файл load_df.py:

df = pd.read_csv("file.csv", sep="\t", encoding="cp1251", skiprows=[0])

файл load_df.py:

import pandas as pd
from load_df import df

@pytest.mark.parametrize("input_file, expected_file", [("file.csv", "test.csv")])

def test_load_data(input_file, expected_file):
    actual = df
    expected = pd.read_csv(expected_file, sep="\t", encoding="cp1251") #- так не проходит тест из-за разных типов данных в df

    actual_subset = actual.head(3)

    print("Actual DataFrame:")
    print(actual_subset)

    print("Expected DataFrame:")
    print(expected)

    assert actual_subset.equals(expected)

В файле test.csv содержатся первые три строчки исходного файла (искусственно созданный мок файл).

Аутпут:

>       assert actual_subset.equals(expected)
E       assert False
E        +  where False = <bound method NDFrame.equals of    AnketID  ... Причина удаления\n0  3582478  ...         Тестовая\n1  3589047  ...         Тестовая\n2  3589048  ...              NaN\n\n[3 rows x 204 columns]>(   AnketID  ...  Причина удаления\n0  3582478  ...          Тестовая\n1  3589047  ...          Тестовая\n2  3589048  ...               NaN\n\n[3 rows x 204 columns])
E        +    where <bound method NDFrame.equals of    AnketID  ... Причина удаления\n0  3582478  ...         Тестовая\n1  3589047  ...         Тестовая\n2  3589048  ...              NaN\n\n[3 rows x 204 columns]> =    AnketID  ... Причина удаления\n0  3582478  ...         Тестовая\n1  3589047  ...         Тестовая\n2  3589048  ...              NaN\n\n[3 rows x 204 columns].equals

test_load_df.py:19: AssertionError
------------------------------------------------------ Captured stdout call ------------------------------------------------------
Actual DataFrame:
   AnketID  ... Причина удаления
0  3582478  ...         Тестовая
1  3589047  ...         Тестовая
2  3589048  ...              NaN

[3 rows x 204 columns]

Expected DataFrame:
   AnketID  ...  Причина удаления
0  3582478  ...          Тестовая
1  3589047  ...          Тестовая
2  3589048  ...               NaN

[3 rows x 204 columns]
==================================================== short test summary info =====================================================
FAILED test_load_df.py::test_load_data[input_file0-test.csv] - assert False
======================================================= 1 failed in 1.29s ========================================================

Для проверки пробовала в первом файле создать three_rows = df.head(3), во втором сравнить это как expected = three_rows, тогда тест проходит.

ПРоблема в том, что при загрузке файл "test.csv" меняет некоторые типы данных с object на float64 и bool. Как этого избежать?


Ответы (0 шт):