如何解决在python中更新模拟对象
我有一个如下创建的模拟对象:
files:
"/home/ec2-user/railsc":
mode: "000777"
owner: root
group: root
content: |
sudo su - -c "cd /var/app/current; /opt/elasticbeanstalk/bin/get-config --output YAML environment | sed 's/: /=/g' > .env; bundle exec rails c"
如何通过其他功能更新
解决方法
如果要保存修补的对象,则必须手动启动和停止修补。如果您使用上下文管理器(例如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.')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。