У меня есть следующий код
/tests/test_fixme.py
def make_my_patch():
name = "Dinesh"
return name
def test_make_patch(monkeypatch):
monkeypatch.setattr(make_my_patch,"name","DineshKumar")
Использование setattr
для установки name
вызывает ошибку атрибута.
Примечание. поместил обе функции в один файл в качестве решения для остановки пробелов, чтобы на данный момент избежать ошибок модуля / импорта.
Вот трассировка.
================================================================== FAILURES ==================================================================
______________________________________________________________ test_make_patch _______________________________________________________________
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fddd5675630>
def test_make_patch(monkeypatch):
> monkeypatch.setattr(make_my_patch,"name","DineshKumar")
E AttributeError: <function make_my_patch at 0x7fddd5676048> has no attribute 'name'
tests/test_fixme.py:16: AttributeError
========================================================== short test summary info ===========================================================
FAILED tests/test_fixme.py::test_make_patch - AttributeError: <function make_my_patch at 0x7fddd5676048> has no attribute 'name'
============================================================= 1 failed in 0.02s ==============================================================
(testenv) user@user:~/MyGitHub/MyLearning/Python/MyUnitTests/Testing10$
Как правильно исправить атрибут имени ? Однако, если я помещаю свой код в класс, setattr для переменной класса работает нормально? Не могли бы вы объяснить, почему он не работает для функций?