Как исправить функцию в вызове pandas DataFrame.apply ⇐ Python

Программы на Python
Anonymous
Как исправить функцию в вызове pandas DataFrame.apply

Сообщение Anonymous »

Я пытаюсь написать тест для класса, который выполняет применение pandas. Вот упрощенная версия:

Код: Выделить всё

class Foo:
def bar(self):
print("BAR")
return "BAR"

def apply(self, df: pd.DataFrame):
df["value"] = df.apply(self.bar, axis=1)
Вот тест, который я пытался написать:

Код: Выделить всё

import unittest
from unittest.mock import patch

from my_module import Foo

class TestFoo(unittest.TestCase):
@patch.object(Foo, "bar")
def test_apply(self, mock_bar):
df = pd.DataFrame()

mock_bar.return_value = ["value"]

foo = Foo()
updated_df = foo.apply(df)

self.assertIn("value", updated_df.columns)
mock_bar.assert_called_once()
Когда я запускаю этот тест, печатается «BAR», что указывает на то, что метод bar() не был исправлен должным образом. Что я здесь делаю не так и как это исправить?


Подробнее здесь: https://stackoverflow.com/questions/790 ... apply-call

Вернуться в «Python»