patch
我在 Fudge 1.0.3 中遇到了装饰器的一种奇怪行为。通过导入类时它不会修补模块
from <module> import <class>
但在导入时工作正常
import <module>
与相应的代码适配。
这是一个最小化的设置:
mdle.py:
class Klaas(object):
def __init__(self):
# easyest way to signal this class has been instantiated accidently
raise Exception(">:[")
some.py(测试不工作):
from mdle import Klaas()
def instantiate():
instance = Klaas()
some.py(测试工作):
import mdle
def instantiate():
instance = mdle.Klaas()
some_test.py:
import unittest
import fudge
import some
class SomeTest(unittest.TestCase):
@fudge.patch("mdle.Klaas")
def test_somethingb(self, Klaas_mock):
klaas_inst = (Klaas_mock.expects_call()
.returns_fake())
# Receiving the exception
some.instantiate()
我应该以不同的方式修补吗?这是 Fudge 的限制,还是错误?