Я хотел бы использовать [pytest monkeypatch] [1] для макета класса, который импортируется в отдельный модуль. Возможно ли это на самом деле, и если да, то как это сделать? Похоже, я не видел пример для этой конкретной ситуации. Предположим, что у вас есть приложение с импортированным классом A в нечто .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
I see how monkeypatch can be used to patch instances of classes, but how is it done for classes that have not yet been instantiated? Is it possible? Thanks!
[1]: https://docs.pytest.org/en/latest/monkeypatch.html