44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
|
|
from django.contrib.auth import get_user_model
|
||
|
|
from django.test import TestCase
|
||
|
|
|
||
|
|
from wagtail.models import Comment, Page
|
||
|
|
|
||
|
|
|
||
|
|
class CommentTestingUtils:
|
||
|
|
def setUp(self):
|
||
|
|
self.page = Page.objects.get(title="Welcome to the Wagtail test site!")
|
||
|
|
self.revision_1 = self.page.save_revision()
|
||
|
|
self.revision_2 = self.page.save_revision()
|
||
|
|
|
||
|
|
def create_comment(self, revision_created):
|
||
|
|
return Comment.objects.create(
|
||
|
|
page=self.page,
|
||
|
|
user=get_user_model().objects.first(),
|
||
|
|
text="test",
|
||
|
|
contentpath="title",
|
||
|
|
revision_created=revision_created,
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
class TestRevisionDeletion(CommentTestingUtils, TestCase):
|
||
|
|
fixtures = ["test.json"]
|
||
|
|
|
||
|
|
def setUp(self):
|
||
|
|
super().setUp()
|
||
|
|
self.revision_3 = self.page.save_revision()
|
||
|
|
self.old_comment = self.create_comment(self.revision_1)
|
||
|
|
self.new_comment = self.create_comment(self.revision_3)
|
||
|
|
|
||
|
|
def test_deleting_old_revision_moves_comment_revision_created_forwards(self):
|
||
|
|
# test that when a revision is deleted, a comment linked to it via revision_created has its revision_created moved
|
||
|
|
# to the next revision
|
||
|
|
self.revision_1.delete()
|
||
|
|
self.old_comment.refresh_from_db()
|
||
|
|
self.assertEqual(self.old_comment.revision_created, self.revision_2)
|
||
|
|
|
||
|
|
def test_deleting_most_recent_revision_deletes_created_comments(self):
|
||
|
|
# test that when the most recent revision is deleted, any comments created on it are also deleted
|
||
|
|
self.revision_3.delete()
|
||
|
|
with self.assertRaises(Comment.DoesNotExist):
|
||
|
|
self.new_comment.refresh_from_db()
|