From 865ee4aab0389aa0b3e6ce5e7b90b9439fae1873 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Thu, 29 Oct 2015 11:24:16 +0000 Subject: [PATCH] failing test for copying a page with tags (#1852) --- wagtail/wagtailcore/tests/test_page_model.py | 32 +++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/wagtail/wagtailcore/tests/test_page_model.py b/wagtail/wagtailcore/tests/test_page_model.py index 5483b31ca..0a3647f31 100644 --- a/wagtail/wagtailcore/tests/test_page_model.py +++ b/wagtail/wagtailcore/tests/test_page_model.py @@ -16,7 +16,7 @@ from wagtail.wagtailcore.models import Page, Site, PAGE_MODEL_CLASSES from wagtail.tests.testapp.models import ( SingleEventPage, EventPage, EventIndex, SimplePage, BusinessIndex, BusinessSubIndex, BusinessChild, StandardIndex, - MTIBasePage, MTIChildPage, AbstractPage) + MTIBasePage, MTIChildPage, AbstractPage, TaggedPage) class TestSiteRouting(TestCase): @@ -636,6 +636,36 @@ class TestCopyPage(TestCase): self.assertIsInstance(EventPage.objects.get(id=new_saint_patrick_event.id), EventPage) self.assertIsInstance(Page.objects.get(id=new_saint_patrick_event.id), Page) + def test_copy_page_copies_tags(self): + # create and publish a TaggedPage under Events + event_index = Page.objects.get(url_path='/home/events/') + tagged_page = TaggedPage(title='My tagged page', slug='my-tagged-page') + tagged_page.tags.add('wagtail', 'bird') + event_index.add_child(instance=tagged_page) + tagged_page.save_revision().publish() + + old_tagged_item_ids = [item.id for item in tagged_page.tagged_items.all()] + # there should be two items here, with defined (truthy) IDs + self.assertEqual(len(old_tagged_item_ids), 2) + self.assertTrue(all(old_tagged_item_ids)) + + # copy to underneath homepage + homepage = Page.objects.get(url_path='/home/') + new_tagged_page = tagged_page.copy(to=homepage) + + self.assertNotEqual(tagged_page.id, new_tagged_page.id) + + # new page should also have two tags + new_tagged_item_ids = [item.id for item in new_tagged_page.tagged_items.all()] + self.assertEqual(len(new_tagged_item_ids), 2) + self.assertTrue(all(new_tagged_item_ids)) + + # new tagged_item IDs should differ from old ones + self.assertTrue(all([ + item_id not in old_tagged_item_ids + for item_id in new_tagged_item_ids + ])) + class TestSubpageTypeBusinessRules(TestCase): def test_allowed_subpage_types(self):