为了账号安全,请及时绑定邮箱和手机立即绑定

在 python 中更新模拟对象

在 python 中更新模拟对象

阿晨1998 2023-06-06 17:17:30
我创建了一个模拟对象,如下所示:    with patch('requests.get') as request:       self.request = request       self.request.session = MockSession()       self.request.cookies = {}如何通过其他功能更新
查看完整描述

1 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

如果要保存已打补丁的对象,则必须手动启动和停止打补丁。如果您使用上下文管理器(例如with patch),补丁将在退出范围时恢复。

您可以执行以下操作:


class TestSomething(unittest.TestCase):

    def setUp(self):

      self.patcher = patch('requests.get')  # returns the patcher object

      self.request = self.patcher.start()  # returns the patched object

      self.request.session = MockSession()

      self.request.cookies = {}


    def tearDown(self):

        sef.patcher.stop()


    def test_03_set_nonce(self):

        self.web_session.set_nonce(self.request)

        self.assertTrue(len(self.request.cookies) > 0, 'set_nonce failed.')

请注意,我没有检查实际测试——这取决于您的应用程序逻辑。


您也可以直接在测试中进行修补:


    @patch('requests.get')

    def test_03_set_nonce(self, request):

        request.session = MockSession()

        request.cookies = {}

        self.web_session.set_nonce(request)

        self.assertTrue(len(request.cookies) > 0, 'set_nonce failed.')


查看完整回答
反对 回复 2023-06-06
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信