Проблема
Я пытаюсь создать приложение, которое позволяет редактировать домашние / домашние страницы, используя очень простую модель базы данных, но сталкиваюсь с проблемами при попытке протестировать основные c страницы ответов. Проблема заключается в использовании self.response = self.client.get(reverse('home'))
в методе setUp
теста, но я новичок в Django и MVC дизайне и не могу понять, что является основной проблемой.
Модель
class Page(models.Model):
title = models.CharField(max_length=50)
content = models.TextField()
Просмотр
class HomePageView(TemplateView):
template_name = 'home.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['home'] = Page.objects.get(pk=1)
return context
URL
urlpatterns = [
path('', HomePageView.as_view(), name='home'),
]
Тест
class HomepageTests(TestCase):
def setUp(self):
home = Page.objects.create(title='Home', content='foo bar')
home.save()
self.response = self.client.get(reverse('home'))
def test_homepage_status_code(self):
self.assertEqual(self.response.status_code, 200)
def test_homepage_template(self):
self.assertTemplateUsed(self.response, 'home.html')
Результат теста
======================================================================
ERROR: test_homepage_template (pages.tests.HomepageTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/code/pages/tests.py", line 12, in setUp
self.response = self.client.get(reverse('home'))
...
pages.models.Page.DoesNotExist: Page matching query does not exist.
----------------------------------------------------------------------
Изначально казалось, что проблема заключалась в отсутствии объекта pk=1
в тестовая база данных, но проблема не исчезла после добавления тестовой страницы.