AssertionError: 404 != 200 в тестировании django
У меня есть тестовый код, но он выдает ошибку: self.assertEquals(response.status_code, 200) AssertionError: 404 != 200
class TestViews(TestCase):
def setUp(self):
self.client = Client()
self.list_url = reverse('home')
self.about_url = reverse('about', args=[1])
def test_index(self):
response = self.client.get(self.list_url)
self.assertEquals(response.status_code, 200)
self.assertTemplateUsed(response, 'job_app/index.html')
def test_about(self):
response = self.client.get(self.about_url)
self.assertEquals(response.status_code, 200)
self.assertTemplateUsed(response, 'job_app/about.html')
мой url:
path('about/<int:pk>/', views.about.as_view(), name='about'),
view:
class about(DetailView):
model = JobsModel
template_name = 'job_app/about.html'
context_object_name = 'job'
Я не знаю, что делать
Вы не создали запись JobsModel
. Вам следует сначала создать ее:
class TestViews(TestCase):
def setUp(self):
self.client = Client()
# may require values 🖟🖟
self.job = JobsModel.objects.create()
self.list_url = reverse('home')
self.about_url = reverse('about', args=[self.job.pk])
def test_index(self):
response = self.client.get(self.list_url)
self.assertEquals(response.status_code, 200)
self.assertTemplateUsed(response, 'job_app/index.html')
def test_about(self):
response = self.client.get(self.about_url)
self.assertEquals(response.status_code, 200)
self.assertTemplateUsed(response, 'job_app/about.html')
Примечание: В Django представления, основанные на классах (CBV), часто имеют суффикс
…View
, чтобы избежать столкновения с именами моделей. Поэтому вы можете переименовать класс представления вAboutView
, вместо.About
Примечание: Модели обычно не имеют суффикса
…Model
. Поэтому, возможно, лучше переименоватьвJobsModel
Job
.
class TestViews(TestCase):
def setUp(self):
test_user = User.objects.create_user(username='test', password='password123') #new!!!!!
self.client = Client()
self.job = JobsModel.objects.create( #new!!!!!
company_name = 'test',
description = 'test',
salary = 1,
work_position = 'test',
phone_number = '1111111',
email = 'test@gmail.com',
creator = User.objects.get(username='test'), #new!!!!!!
)
self.list_url = reverse('home')
self.about_url = reverse('about', args=[self.job.pk])
def test_index(self):
response = self.client.get(self.list_url)
self.assertEquals(response.status_code, 200)
self.assertTemplateUsed(response, 'job_app/index.html')
def test_about(self):
response = self.client.get(self.about_url)
self.assertEquals(response.status_code, 200)
self.assertTemplateUsed(response, 'job_app/about.html')