如何在Django中使用Pytest测试经过身份验证的POST请求

超微

我想使用Pytest在API上测试经过身份验证的发布请求。这是我到目前为止所做的:

 def test_auth_user_can_create(self, client):
      
    
    url = api_reverse('crud-simulation_api')

    data = {
        "project": "testproject",
        ....
    }

        response = client.post(url, json=data)
        assert response.status_code == 200

这是行不通的,因为它给了我401(未经授权)而不是200。这是有道理的,因为固定装置是客户端,而不是管理员客户端。

但是,如果我传递admin_client而不是client,则会给我一个错误的请求。我发送的数据应该没问题。

我还尝试像这样传递标头(因为我使用了JWT授权):

token = "bigassstringwhichismytoken"

headers = {
        "Authorization": "JWT " + token
    }

最后,我尝试登录,然后给我403(禁止访问):

def test_auth_user_can_create_simulation_api(self, client, django_user_model):
     
    username = "Jack"
    password = "password"

    django_user_model.objects.create_user(username=username, password=password)
    client.login(username=username, password=password)

    url = api_reverse('crud-simulation_api')

    data = {
        "project": "testproject",
        ...
    }

    response = client.post(url, json=data)
    assert response.status_code == 200

如果有人能指出我正确的方向,那就太好了!在此先多谢

山姆

您可以使用用户名和密码访问登录网址并获得令牌。创建标题字典,例如headers = {'Authorization': 'JWT <token>'}

并在使用post时使用标题。

client.post(url, json=data, headers=headers)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Django中使用经过身份验证的用户使用Javascript调用Django API

在 Django Rest Framework 中测试经过身份验证的路由的 POST 请求

如何使用Supertest和Agent在Mocha测试中提出经过身份验证的请求?

如何在Django REST Framework中使用身份验证

如何在functions:shell中以经过身份验证的用户身份测试onCall函数

使用Android的Spring RestTemplate进行经过身份验证的POST请求

为 Django 测试创建经过身份验证的用户

如何在我的HTTP请求中使用带有身份验证的代理?

如何在 ruby 中使用身份验证发送 api 请求

如何在角度离子中使用摘要式身份验证发送请求

如何在改造中使用基本身份验证发送发帖请求?

如何在iPhone编程中使用身份验证质询发送HTTP客户端请求

如何在带有supertest,passport和JEST的cookie中使用jwt测试身份验证

如何在 Laravel 5 中使用 Codeception 在单元测试中模拟身份验证用户?

如何使用令牌身份验证对 Post 请求进行身份验证?

使用slackbot发出经过身份验证的请求

使用 Go 发出经过身份验证的代理请求?

使用Python请求访问经过身份验证的页面

如何在graphene-django GraphQLTestCase中使用django-grahql-jwt进行身份验证?

如何在AFNetworking 2中下载带有POST +参数的经过身份验证的文件?

如何使用AWS Cognito从移动到AWS服务(即CloudSearch)发出经过身份验证的请求?

如何测试使用 Rails 5 创建的经过身份验证的 API?

如何在 Django 中将经过身份验证的用户传递给 forms.py

如何在graphene-django解析方法中访问经过身份验证的用户?

如何在django admin中添加经过身份验证的用户的IP地址

负载测试经过身份验证的用户

如何在 ADFS 中使用自定义身份验证替换主要身份验证

如何在Django视图中使用龙卷风身份验证?

如何在基于类的视图中使用 django REST JWT 授权和身份验证