test_content.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. """Тест на содержимое страницы."""
  2. from http import HTTPStatus
  3. from django.contrib.auth import get_user_model
  4. from django.test import Client, TestCase
  5. from django.urls import reverse
  6. from notes.models import ModelNote
  7. from notes.forms import FormNote
  8. class ContentTest(TestCase):
  9. """Тест на содержимое страницы."""
  10. def test_notes_list_for_different_users(self):
  11. """Тестирует примечания по списку различных пользователей."""
  12. user1 = get_user_model().objects.create_user(username='user1')
  13. note1 = ModelNote.objects.create(
  14. author=user1,
  15. title='Test Note',
  16. slug='test-note'
  17. )
  18. client = Client()
  19. client.force_login(user1)
  20. response = client.get(reverse('notes:list'))
  21. self.assertEqual(response.status_code, 200)
  22. object_list = response.context['object_list']
  23. self.assertEqual(len(object_list), 1)
  24. retrieved_note = object_list[0]
  25. self.assertEqual(retrieved_note.id, note1.id)
  26. self.assertEqual(retrieved_note.title, 'Test Note')
  27. self.assertEqual(retrieved_note.slug, 'test-note')
  28. self.assertEqual(retrieved_note.author, user1)
  29. def test_pages_contains_form(self):
  30. """Тест на содержание страницей формы."""
  31. user1 = get_user_model().objects.create_user(username='user1')
  32. note1 = ModelNote.objects.create(
  33. author=user1,
  34. title='Test Note',
  35. slug='test-note'
  36. )
  37. client = Client()
  38. client.force_login(user1)
  39. urls = (reverse('notes:add'), reverse('notes:edit', args=[note1.slug]))
  40. for url in urls:
  41. with self.subTest(url=url):
  42. response = client.get(url)
  43. self.assertEqual(response.status_code, 200)
  44. self.assertIn('form', response.context)
  45. form = response.context['form']
  46. self.assertIsInstance(form, FormNote)
  47. def test_urls(self):
  48. """Тест урлов."""
  49. user1 = get_user_model().objects.create_user(username='user1')
  50. note1 = ModelNote.objects.create(
  51. author=user1,
  52. title='Test Note',
  53. slug='test-note'
  54. )
  55. client = Client()
  56. client.force_login(user1)
  57. urls = (
  58. reverse('notes:home'),
  59. reverse('notes:add'),
  60. reverse('notes:edit', args=[note1.slug]),
  61. reverse('notes:list'),
  62. reverse('notes:success'),
  63. )
  64. for url in urls:
  65. response = client.get(url, follow=True)
  66. self.assertEqual(response.status_code, HTTPStatus.OK)