def test_issue7(self): # Get homepage, root page and site root_page = Page.objects.get(id=1) homepage = Page.objects.get(url_path='/home/') default_site = Site.objects.get(is_default_site=True) # Create a new homepage under current homepage new_homepage = SimplePage(title="New Homepage", slug="new-homepage") homepage.add_child(instance=new_homepage) # Set new homepage as the site root page default_site.root_page = new_homepage default_site.save() # Warm up the cache by getting the url _ = homepage.url # Move new homepage to root new_homepage.move(root_page, pos='last-child') # Get fresh instance of new_homepage new_homepage = Page.objects.get(id=new_homepage.id) # Check url self.assertEqual(new_homepage.url, '/')
def test_cache_clears_when_site_root_moves(self): """ This tests for an issue where if a site root page was moved, all the page urls in that site would change to None. The issue was caused by the 'wagtail_site_root_paths' cache variable not being cleared when a site root page was moved. Which left all the child pages thinking that they are no longer in the site and return None as their url. Fix: d6cce69a397d08d5ee81a8cbc1977ab2c9db2682 Discussion: https://github.com/torchbox/wagtail/issues/7 """ # Get homepage, root page and site root_page = Page.objects.get(id=1) homepage = Page.objects.get(url_path='/home/') default_site = Site.objects.get(is_default_site=True) # Create a new homepage under current homepage new_homepage = SimplePage(title="New Homepage", slug="new-homepage") homepage.add_child(instance=new_homepage) # Set new homepage as the site root page default_site.root_page = new_homepage default_site.save() # Warm up the cache by getting the url _ = homepage.url # Move new homepage to root new_homepage.move(root_page, pos='last-child') # Get fresh instance of new_homepage new_homepage = Page.objects.get(id=new_homepage.id) # Check url self.assertEqual(new_homepage.url, '/')