Ock.patch пропускает издеваемый объект за пределами оператора withPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ock.patch пропускает издеваемый объект за пределами оператора with

Сообщение Anonymous »

У меня есть три файла Python в папке Controller/
  • math.py

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

class Math:
def __init__(self, a, b):
self.a = a
self.b = b

def addition(self):
return self.a + self.b
  • calculation.py

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

from controller.math import Math

def perform_addition():
math = Math(1, 2)
return math.addition()
  • test_sample.py

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

from unittest.mock import MagicMock, patch

def test_addition():

mock_math = MagicMock()

with patch('controller.math.Math', return_value=mock_math) as MockClass:
instance = MockClass.return_value

instance.addition.return_value = 100

from controller.calculation import perform_addition
output = perform_addition()

print(output)  # prints 100

post_patch_output = perform_addition()
print(post_patch_output)  # prints 100 but expected 3
Когда я выполняю test_addition, я ожидаю, что post_patch_output вернет 3, но он вернет 100, то есть имитированный вывод. Мне любопытно, чего мне здесь не хватает?
В документации по макету Mock.patch говорится, что при выходе из оператора function/with патч отменяется. что не так здесь похоже не тот случай

Подробнее здесь: https://stackoverflow.com/questions/774 ... -statement
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как зациклить издеваемый список?
    Anonymous » » в форуме JAVA
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Calcite sql ock query Query Fail с ошибкой "несколько записей с тем же ключом"
    Anonymous » » в форуме JAVA
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • ЕДИНЦИОННЫЕ Тестирование в DRF, ошибка Mock.Patch Transaction.atomic с unittest.mock.patch
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Jaxb-Maven-Plugin пропускает выполнения прохождения за пределами первого
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Объект Unittest asyncio patch с вложенными сопрограммами
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

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