【问题标题】:provide large responses to python requests_mock对 python requests_mock 提供大量响应
【发布时间】:2021-01-10 01:09:55
【问题描述】:

我正在使用 python 请求来访问一些 api,最近我学习了 requests_mock 来模拟 http 响应以进行测试。 我正在使用的来自 api 的响应非常大

adapter.register_uri('GET', 'http://api.gateway/payment/, text='VERY LARGE TEXT')

传递大型响应文本的正确方法是什么?

【问题讨论】:

    标签: python django unit-testing python-requests requests-mock


    【解决方案1】:

    这里并没有真正的魔法,在一天结束时,除非您正在执行流式请求,否则无论如何都会将所有数据加载到内存中。

    如果你真的很担心内存(它是 python,你可能不应该),你总是可以按需从文件中加载什么的,但我认为这更多的是关于你想要如何构建你的测试比 requests_mock 会帮助你的东西。

    import requests
    import requests_mock
    
    
    def fileLoader(filename):
        def loader(req, context):
            with open(filename, 'r') as f:
                return f.read()
    
        return loader
    
    
    with requests_mock.mock() as m:
        m.get('http://test.com', text=fileLoader('abc.txt'))
        resp = requests.get('http://test.com')
        assert resp.text.strip() == 'ABC'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2014-05-30
      • 1970-01-01
      • 2014-12-04
      • 2018-11-10
      相关资源
      最近更新 更多