Пример #1
0
 def test_publish_records_published(self):
     all_published = NestedSet()
     self.flat_page.save()
     self.flat_page.publish(all_published=all_published)
     self.failUnlessEqual(1, len(all_published))
     self.failUnless(self.flat_page in all_published)
     self.failUnless(self.flat_page.public)
Пример #2
0
 def test_publish_dryrun(self):
     all_published = NestedSet()
     self.flat_page.save()
     self.flat_page.publish(dry_run=True, all_published=all_published)
     self.failUnlessEqual(1, len(all_published))
     self.failUnless(self.flat_page in all_published)
     self.failIf(self.flat_page.public)
     self.failUnlessEqual(Publishable.PUBLISH_CHANGED,
                          self.flat_page.publish_state)
Пример #3
0
        def test_publish_with_overlapping_models_published(self):
            # make sure when we publish we don't accidentally create
            # multiple published versions
            self.failUnlessEqual(5, Page.objects.draft().count())
            self.failUnlessEqual(0, Page.objects.published().count())

            all_published = NestedSet()
            Page.objects.draft().publish(all_published)

            self.failUnlessEqual(5, len(all_published))

            self.failUnlessEqual(5, Page.objects.draft().count())
            self.failUnlessEqual(5, Page.objects.published().count())
Пример #4
0
        def test_publish_deletions_checks_all_published(self):
            # make sure publish_deletions looks at all_published arg
            # to see if we need to actually publish the deletion
            self.flat_page.save()
            self.flat_page.publish()
            public = self.flat_page.public

            self.flat_page.delete()

            self.failUnlessEqual(set([self.flat_page, public]),
                                 set(FlatPage.objects.all()))

            # this should effectively stop the deletion happening
            all_published = NestedSet()
            all_published.add(self.flat_page)

            self.flat_page.publish(all_published=all_published)
            self.failUnlessEqual(set([self.flat_page, public]),
                                 set(FlatPage.objects.all()))
Пример #5
0
        def test_convert_all_published_to_html(self):
            self.admin_site.register(Page, PublishableAdmin)

            all_published = NestedSet()

            page = Page.objects.create(slug='here', title='title')
            block = PageBlock.objects.create(page=page, content='stuff here')

            all_published.add(page)
            all_published.add(block, parent=page)

            converted = _convert_all_published_to_html(self.admin_site,
                                                       all_published)

            expected = [
                u'<a href="../../publish/page/%d/">Page: Page object (Changed - not yet published)</a>'
                % page.id, [u'Page block: PageBlock object']
            ]

            self.failUnlessEqual(expected, converted)
Пример #6
0
        def test_publish_after_dry_run_handles_caching(self):
            # if we do a dry tun publish in the same queryset
            # before publishing for real, we have to make
            # sure we don't run into issues with the instance
            # caching parent's as None
            self.failUnlessEqual(5, Page.objects.draft().count())
            self.failUnlessEqual(0, Page.objects.published().count())

            draft = Page.objects.draft()

            all_published = NestedSet()
            for p in draft:
                p.publish(dry_run=True, all_published=all_published)

            # nothing published yet
            self.failUnlessEqual(5, Page.objects.draft().count())
            self.failUnlessEqual(0, Page.objects.published().count())

            # now publish (using same queryset, as this will have cached the instances)
            draft.publish()

            self.failUnlessEqual(5, Page.objects.draft().count())
            self.failUnlessEqual(5, Page.objects.published().count())

            # now actually check the public parent's are setup right
            page1 = Page.objects.get(id=self.page1.id)
            page2 = Page.objects.get(id=self.page2.id)
            child1 = Page.objects.get(id=self.child1.id)
            child2 = Page.objects.get(id=self.child2.id)
            child3 = Page.objects.get(id=self.child3.id)

            self.failUnlessEqual(None, page1.public.parent)
            self.failUnlessEqual(None, page2.public.parent)
            self.failUnlessEqual(page1.public, child1.public.parent)
            self.failUnlessEqual(page1.public, child2.public.parent)
            self.failUnlessEqual(page2.public, child3.public.parent)
Пример #7
0
 def setUp(self):
     super(TestNestedSet, self).setUp()
     self.nested = NestedSet()