gpt4 book ai didi

Django REST 测试 - 如何指定引用在 setUp 函数中创建的模型实例的 pk 参数

转载 作者:行者123 更新时间:2023-11-28 20:34:43 26 4
gpt4 key购买 nike

我有一个模型“文章”,我想测试授权用户是否可以获取单个文章。测试类是:

class TestPost(APITestCase):
def setUp(self):
self.factory = APIRequestFactory()
self.user = User.objects.create_user(
username='Name', email='test@company.com', password='secret')
self.article = Article.objects.create(
author = 'Author', title = 'Article title', body = 'Body content ...')

def test_detail_user(self):
request = self.factory.get(reverse('article_id', kwargs={'pk': 1}))
request.user = self.user
response = ArticleDetail.as_view()(request, pk=1)
self.assertEqual(response.status_code, 200,
f'Expected Response Code 200 - OK, received {response.status_code} instead.')

URL 模式是:

path('<int:pk>/', ArticleDetail.as_view(), name = 'article_id'),

并且在运行测试时出现以下错误:

f'Expected Response Code 200 - OK, received {response.status_code} instead.')
AssertionError: 404 != 200 : Expected Response Code 200 - OK, received 404 instead.

我想问题出在指定的“pk”中,但我无法弄清楚如何在不说明确切数字 1 的情况下指定 pk。如何改为引用在 setUp 函数中创建的文章?

最佳答案

我可能误解了,但您应该可以通过简单地执行以下操作来引用它:

def test_detail_user(self):
article_id = self.article.pk
...
# the rest of your code here using article_id as the id of
# the article you are retrieving

关于Django REST 测试 - 如何指定引用在 setUp 函数中创建的模型实例的 pk 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58954201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com