Django тестовая проблема с динамически созданной домашней страницей - PullRequest
0 голосов
/ 30 января 2020

Проблема

Я пытаюсь создать приложение, которое позволяет редактировать домашние / домашние страницы, используя очень простую модель базы данных, но сталкиваюсь с проблемами при попытке протестировать основные 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 в тестовая база данных, но проблема не исчезла после добавления тестовой страницы.

...