Нет описания

tests.py 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from django.test import TestCase
  2. from django.contrib.auth import get_user_model
  3. from .models import Post, PostCategory
  4. class CmsModelsTests(TestCase):
  5. def setUp(self):
  6. self.user = get_user_model().objects.create_user(username="writer", password="x")
  7. def test_create_category_and_post(self):
  8. cat = PostCategory.objects.create(name="News")
  9. self.assertTrue(cat.slug)
  10. post = Post.objects.create(
  11. title="Hello World",
  12. category=cat,
  13. author=self.user,
  14. content="Body",
  15. status=Post.STATUS_DRAFT,
  16. )
  17. self.assertTrue(post.slug)
  18. self.assertEqual(post.status, Post.STATUS_DRAFT)
  19. def test_publish_sets_published_at(self):
  20. cat = PostCategory.objects.create(name="Updates")
  21. post = Post.objects.create(title="Release", category=cat, content="v1", status=Post.STATUS_PUBLISHED)
  22. self.assertIsNotNone(post.published_at)
  23. def test_markdown_renders_to_html(self):
  24. cat = PostCategory.objects.create(name="Docs")
  25. post = Post.objects.create(
  26. title="Markdown Test",
  27. category=cat,
  28. content="# Hello\n\nThis is **bold**.",
  29. status=Post.STATUS_DRAFT,
  30. )
  31. # Rendered HTML should be populated
  32. self.assertIsNotNone(post.content_html)
  33. self.assertIn("<h1>", post.content_html)
  34. self.assertIn("<strong>", post.content_html)