重写Django视图中的函数调用以进行测试

2024-05-08 00:43:17 发布

您现在位置:Python中文网/ 问答频道 /正文

有些东西我找了又找又找不到。。。你知道吗

是否可以重写Django视图中的变量或函数调用?你知道吗

我们有一些调用后端C代码并写入数据库的代码。很明显,我希望我的系统能够阻止这个调用在视图中发生。你知道吗

但是-当我试着做一个@补丁的时候。。。它只是被忽略,不管怎样调用都会发生。你知道吗

有没有可能在Django视图中重写它,这样我就可以得到一个返回值?你知道吗

我尝试过的示例代码:

    @patch('clibs.api.create_dispute')
def test_create_dispute(self, cfunc):
    f = cfunc()
    f.return_value = 123456

    post_data = {
        'dispute_amt': ['1'],
        'id': ['12'],
    }

    request = self.factory.post(reverse('dispute:dispute_creation', args=[12]), data=post_data,HTTP_X_REQUESTED_WITH='XMLHttpRequest')
    request.user = self.user
    response = dispute_creation(request, id=12)

Tags: django代码self视图id数据库datarequest