Как правильно протестировать эту функцию в Django?
У меня есть тест, который проверяет, может ли пользователь создать новость или нет. Но мой тест не работает. Я предполагаю, что я делаю что-то неправильно с 'category' и 'author', но я не знаю, как изменить это правильно. Когда я создаю новость на сайте самостоятельно, все работает правильно.
Тест:
@classmethod
def setUpTestData(cls):
user = User.objects.create(username='test1')
user.set_password('test1')
user.save()
Profile.objects.create(user=user)
NewsCategory.objects.create(category='Sport')
def test_if_user_can_create_news(self):
user = self.client.login(username='test1', password='test1')
self.client.post(reverse('create_news'), {
'title': 'News 1',
'description': 'Description news 1',
'category': NewsCategory.objects.get(category='Sport'),
'author': user
})
self.assertTrue(News.objects.filter(title='News 1').exists())
Модели:
class News(models.Model):
title = models.CharField(max_length=200, verbose_name='Title')
description = models.TextField(verbose_name='Description')
category = models.ForeignKey(NewsCategory, on_delete=models.CASCADE, verbose_name='Category')
author = models.ForeignKey(Profile, on_delete=models.CASCADE, verbose_name='Author')
class NewsCategory(models.Model):
category = models.CharField(max_length=100, verbose_name='Category')
Форма:
class NewsForm(forms.ModelForm):
class Meta:
model = News
fields = 'title', 'description', 'category'