tests.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. from django.test import Client, RequestFactory, TestCase
  2. from blog.models import Article, Category, Tag
  3. from django.contrib.auth import get_user_model
  4. from django.contrib.sites.models import Site
  5. from django.urls import reverse
  6. import datetime
  7. from accounts.models import BlogUser
  8. from comments.templatetags.comments_tags import *
  9. from website.utils import get_max_articleid_commentid
  10. # Create your tests here.
  11. class CommentsTest(TestCase):
  12. def setUp(self):
  13. self.client = Client()
  14. self.factory = RequestFactory()
  15. def test_validate_comment(self):
  16. site = Site.objects.get_current().domain
  17. user = BlogUser.objects.create_superuser(email="liangliangyy1@gmail.com",
  18. username="liangliangyy1", password="liangliangyy1")
  19. self.client.login(username='liangliangyy1', password='liangliangyy1')
  20. category = Category()
  21. category.name = "categoryccc"
  22. category.created_time = datetime.datetime.now()
  23. category.last_mod_time = datetime.datetime.now()
  24. category.save()
  25. article = Article()
  26. article.title = "nicetitleccc"
  27. article.body = "nicecontentccc"
  28. article.author = user
  29. article.category = category
  30. article.type = 'a'
  31. article.status = 'p'
  32. article.save()
  33. commenturl = reverse('comments:postcomment', kwargs={'article_id': article.id})
  34. response = self.client.post(commenturl,
  35. {
  36. 'body': '123ffffffffff'
  37. })
  38. self.assertEqual(response.status_code, 200)
  39. article = Article.objects.get(pk=article.pk)
  40. self.assertEqual(len(article.comment_list()), 0)
  41. response = self.client.post(commenturl,
  42. {
  43. 'body': '123ffffffffff',
  44. 'email': user.email,
  45. 'name': user.username
  46. })
  47. self.assertEqual(response.status_code, 302)
  48. article = Article.objects.get(pk=article.pk)
  49. self.assertEqual(len(article.comment_list()), 1)
  50. parent_comment_id = article.comment_list()[0].id
  51. response = self.client.post(commenturl,
  52. {
  53. 'body': '''
  54. # Title1
  55. ```python
  56. import os
  57. ```
  58. [url](https://www.lylinux.org/)
  59. [ddd](http://www.baidu.com)
  60. ''',
  61. 'email': user.email,
  62. 'name': user.username,
  63. 'parent_comment_id': parent_comment_id
  64. })
  65. self.assertEqual(response.status_code, 302)
  66. article = Article.objects.get(pk=article.pk)
  67. self.assertEqual(len(article.comment_list()), 2)
  68. comment = Comment.objects.get(id=parent_comment_id)
  69. tree = parse_commenttree(article.comment_list(), comment)
  70. self.assertEqual(len(tree), 1)
  71. data = show_comment_item(comment, True)
  72. self.assertIsNotNone(data)
  73. s = get_max_articleid_commentid()
  74. self.assertIsNotNone(s)