我有两个模块。
一个.py
def get_resource(arg1, arg2):
return Modelobject based on arg1 and arg2 or None
b.py(形式)
from a import get_resource
class A(forms.Form):
arg1 = forms.CharField()
arg2 = forms.CharField()
def clean(self):
res = get_resource(arg1, arg2)
if res is None:
validationerror
else:
cleaned_data.update(res_key=res)
现在我需要模拟 get_resource 部分,这样我就不需要任何数据库,但我无法让它工作。
这是我尝试过的,但它不起作用。我究竟做错了什么 ?
class Test(TestCase):
def test_form_a(self):
with patch('b.get_resource') as mock_tool:
mock_tool.return_value = MagicMock(spec=MusicModel)
form_data = {'arg1': '1', 'arg2': 'Music'}
form = A(data=form_data)
我也用一个函数尝试了 side_effects
def my_side_effect(*args, **kwargs):
return value based on arg[0] and arg[1]
mock_tool.side_effect = my_side_effect
由于我在模拟和测试方面很新手,任何人都可以告诉我正确的方向吗?