小编Mar*_*yyy的帖子

Flask测试 - 为什么coverage不包括import语句和装饰器?

我的测试清楚地执行每个函数,也没有未使用的导入.然而,根据覆盖率报告,62%的代码从未在以下文件中执行:

在此输入图像描述

有人可以指出我可能做错了什么吗?

以下是我初始化测试套件和覆盖范围的方法:

    cov = coverage(branch=True, omit=['website/*', 'run_test_suite.py'])
    cov.start()

    try:
        unittest.main(argv=[sys.argv[0]])
    except:
        pass

    cov.stop()
    cov.save()

    print "\n\nCoverage Report:\n"
    cov.report()

    print "HTML version: " + os.path.join(BASEDIR, "tmp/coverage/index.html")
    cov.html_report(directory='tmp/coverage')
    cov.erase()
Run Code Online (Sandbox Code Playgroud)

python testing coverage.py flask

15
推荐指数
2
解决办法
1549
查看次数

如何使用REST Framework JWT测试身份验证?

基于JWT的身份验证可以很好地使用从移动和"高级休息客户端"发送的POST请求,但是在使用Django测试客户端时失败.客户端在请求时成功接收令牌,但在尝试使用该令牌访问受限视图时会收到以下响应.

"未提供身份验证凭据."

测试用例:

def test_get_token(self):
        response = self.client.post("/auth/api/get_token/", {"username": "Heffalumps", "password": "Woozles"})
        self.assertEqual(response.status_code, 200, "The token should be successfully returned.")

        response_content = json.loads(response.content.decode('utf-8'))
        token = response_content["token"]

        # The following request fails
        response = self.client.post("/auth/api/authenticated/", {}, Authorization='JWT ' + token)
        response_content = json.loads(response.content.decode('utf-8'))

        self.assertEqual(response_content["authenticated"], "mooh", "The user should be able to access this endpoint.")
Run Code Online (Sandbox Code Playgroud)

来自测试客户的传出请求: 在此输入图像描述

限制观点:

class RestrictedView(APIView):
    permission_classes = (permissions.IsAuthenticated, )
    authentication_classes = (JSONWebTokenAuthentication, )

    def post(self, request):

        response_data = json.dumps({"authenticated": "mooh"})

        return HttpResponse(response_data, content_type='application/json')
Run Code Online (Sandbox Code Playgroud)

我错过了测试用例中的内容吗?

python django jwt django-rest-framework

7
推荐指数
1
解决办法
5118
查看次数