Django REST 与 pytest 夹具完整性错误

发布于 2025-01-09 21:59:32 字数 607 浏览 0 评论 0原文

我正在尝试使用 pytest 创建一个固定装置,但是当我运行它时,出现以下错误:

django.db.utils.IntegrityError: NOT NULLconstraint failed: authtoken_token.user_id

我找到了有关它的信息,但我不知道当涉及到固定装置时如何处理。

我的代码:

@pytest.fixture
def client(db):
    api_client = APIClient()
    token = Token.objects.get_or_create(user__username='testuser')
    api_client.credentials(HTTP_AUTHORIZATION='Token ' + token.key)
    return api_client


@pytest.mark.django_db
def test_get_list_test(client):
    url = reverse('api/lists')
    response = client.get(url)
    assert response.status_code == 200

I am trying to create a fixture with pytest, but when I run it, I get the following error:

django.db.utils.IntegrityError: NOT NULL constraint failed: authtoken_token.user_id

I found information on it, but I am not sure how to handle it when it comes to fixtures.

My code:

@pytest.fixture
def client(db):
    api_client = APIClient()
    token = Token.objects.get_or_create(user__username='testuser')
    api_client.credentials(HTTP_AUTHORIZATION='Token ' + token.key)
    return api_client


@pytest.mark.django_db
def test_get_list_test(client):
    url = reverse('api/lists')
    response = client.get(url)
    assert response.status_code == 200

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

十级心震 2025-01-16 21:59:32

一般来说,我不认为你的错误与这里的 pytest 有关。
我认为这里的主要问题与 django 数据库迁移有关 看这里

所以首先,无论任何框架(pytest),请确保修复它,

django.db.utils.IntegrityError: NOT NULL constraint failed: authtoken_token.user_id

并且在成功验证错误消失后(也手动检查),尝试运行夹具。

Generally speaking, i don't think your error related to pytest here.
I think the main issue here related to django db migrations look here

So first, Make sure you fix it, regardless to any framework (pytest)

django.db.utils.IntegrityError: NOT NULL constraint failed: authtoken_token.user_id

And after you have successfully validated that the error passed away (check manually also), try to run the fixture.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文