属性模拟未返回Mock.return_value集

时间:2020-10-08 16:52:09

标签: python-3.x rest mocking python-unittest

在测试文件中,我模拟了property中定义的类MyClass的属性path.to.my.module,如下所示:

# test file
import unittest
from app.module import run_service
class TestMyService(unittest.TestCase):
   def setUp(self):
      self.service_url = ...
      self.query = ...
      self.headers = ....
   def test_my_service(self):
     proc = Process(target=run_service)
     proc.start()
     with patch("path.to.my.module.MyClass.property", new_callable=PropertyMock) as attr:
        attr.return_value = "expected_value"
        res = requests.get(self.service_url, self.query, headers=self.headers)
     self.assertEqual(res.status_code, 200)
     proc.join()

在实际执行中,property从外部服务X下载内容。服务的GET导入MyClass,实例化它,并调用在第三个模块中定义的函数prs具有类型MyClass的参数。 prs调用其参数的属性property

当我运行上面的测试文件时,回溯行进到prs调用MyClass.property的位置,并尝试实际执行下载。我期望MyClass.property返回"expected_value"。我该如何实现?

0 个答案:

没有答案