【问题标题】:Unresolved Reference "content" in JSONResponseJSONResponse 中未解决的参考“内容”
【发布时间】:2021-08-26 14:33:54
【问题描述】:

所以,我一直在尝试为返回包含status_codecontentJSONResponse 的函数编写单元测试。函数如下所示:

def exception_handler(request):
    return JSONResponse(
        status_code=status.HTTP_404_NOT_FOUND,
        content=jsonable_encoder({"detail": NotFoundException} if is_development() else {}),
    )

我正在测试两种情况:is_development() 返回TrueFalse。当我像这样调用函数来测试它时:response = exception_handler(request) 我可以访问response.status_code,但不能访问response.content。这是为什么?我想访问内容以检查它是否正确。

【问题讨论】:

    标签: python unit-testing jsonresponse


    【解决方案1】:

    我无法真正重现您的问题。这是适用于我的代码。

    # ---- Some setup, to make your example work ----
    from fastapi.encoders import jsonable_encoder
    
    class status:
        HTTP_404_NOT_FOUND = 404
    
    class JSONResponse:
    
        def __init__(self,  status_code, content):
            self.status_code = status_code
            self.content = content
    
    
    # ----- Here your code -----
    def exception_handler(request):
        return JSONResponse(
            status_code=status.HTTP_404_NOT_FOUND,
            content=jsonable_encoder({"detail": None} if is_development() else {}),
        )
    
    
    def is_development():
        """True and False work"""
        return False
    
    
    print(vars(exception_handler(None)))
    

    输出:

    {'status_code': 404, 'content': {}}
    

    您能提供更多信息吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 2019-04-05
      • 1970-01-01
      • 2021-08-17
      • 2016-12-14
      • 2020-05-27
      • 2019-11-16
      相关资源
      最近更新 更多