Как использовать pytest Monkeypatch для исправления классаPython

Программы на Python
Ответить
Anonymous
 Как использовать pytest Monkeypatch для исправления класса

Сообщение Anonymous »

Я хотел бы использовать pytest Monkeypatch для имитации класса, который импортирован
в отдельный модуль. Возможно ли это на самом деле, и если да, то как это сделать? Кажется, я не видел примера именно для этой ситуации. Предположим, у вас есть приложение с импортированным классом A в Something.py

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

from something import A #Class is imported

class B :
def __init__(self) :
self.instance = A() #class instance is created

def f(self, value) :
return self.instance.g(value)
внутри моего test.py я хочу имитировать A внутри B

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

from something import B

#this is where I would mock A such that
def mock_A :
def g(self, value) :
return 2*value

#Then I would call B
c = B()
print(c.g(2)) #would be 4
Я понимаю, как Monkeypatch можно использовать для исправления экземпляров классов, но как это сделать для классов, экземпляры которых еще не созданы? Является ли это возможным? Спасибо!


Подробнее здесь: https://stackoverflow.com/questions/610 ... ch-a-class
Ответить

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

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

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

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

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