Example #1
0
    def test_page_overwrite_urls(self):
        page2 = create_page('test page 2', 'nav_playground.html',
            published=True)

        page3 = create_page('test page 3', 'nav_playground.html',
            published=True, overwrite_url='i-want-another-url')

        self.assertEqual(page2.get_absolute_url(),
            self.get_pages_root()+'test-page-2/')
        self.assertEqual(page3.get_absolute_url(),
            self.get_pages_root()+'i-want-another-url/')

        page2 = Page.objects.get(pk=page2.pk)
        page3 = Page.objects.get(pk=page3.pk)

        self.assertEqual(page2.get_absolute_url(),
            self.get_pages_root()+'test-page-2/')
        self.assertEqual(page3.get_absolute_url(),
            self.get_pages_root()+'i-want-another-url/')

        # tests a bug found in 2.2 where saving an ancestor page
        # wiped out the overwrite_url for child pages
        page2.save()
        self.assertEqual(page3.get_absolute_url(),
            self.get_pages_root()+'i-want-another-url/')
Example #2
0
 def test_login_required(self):
     create_page("page", "nav_playground.html", published=True,
                      login_required=True)
     request = self.get_request('/page/')
     response = details(request, '')
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response['Location'], '%s?next=/page/' % settings.LOGIN_URL)
Example #3
0
    def test_page_overwrite_urls(self):
        page2 = create_page('test page 2',
                            'nav_playground.html',
                            published=True)

        page3 = create_page('test page 3',
                            'nav_playground.html',
                            published=True,
                            overwrite_url='i-want-another-url')

        self.assertEqual(page2.get_absolute_url(),
                         self.get_pages_root() + 'test-page-2/')
        self.assertEqual(page3.get_absolute_url(),
                         self.get_pages_root() + 'i-want-another-url/')

        page2 = Page.objects.get(pk=page2.pk)
        page3 = Page.objects.get(pk=page3.pk)

        self.assertEqual(page2.get_absolute_url(),
                         self.get_pages_root() + 'test-page-2/')
        self.assertEqual(page3.get_absolute_url(),
                         self.get_pages_root() + 'i-want-another-url/')

        # tests a bug found in 2.2 where saving an ancestor page
        # wiped out the overwrite_url for child pages
        page2.save()
        self.assertEqual(page3.get_absolute_url(),
                         self.get_pages_root() + 'i-want-another-url/')
Example #4
0
    def test_page_urls(self):
        page1 = create_page('test page 1', 'nav_playground.html',
            published=True)

        page2 = create_page('test page 2', 'nav_playground.html',
            published=True)

        page3 = create_page('test page 3', 'nav_playground.html',
            published=True)

        page4 = create_page('test page 4', 'nav_playground.html',
            published=True)

        page5 = create_page('test page 5', 'nav_playground.html',
            published=True)

        self.assertEqual(page1.get_absolute_url(),
            self.get_pages_root()+'test-page-1/')
        self.assertEqual(page2.get_absolute_url(),
            self.get_pages_root()+'test-page-2/')
        self.assertEqual(page4.get_absolute_url(),
            self.get_pages_root()+'test-page-4/')

        page3 = page3.move_page(page1)
        self.assertEqual(page3.get_absolute_url(),
            self.get_pages_root()+'test-page-1-copy/')

        page5 = page5.move_page(page2)
        self.assertEqual(page5.get_absolute_url(),
            self.get_pages_root()+'test-page-2-copy/')

        page3 = page3.move_page(page4)
        self.assertEqual(page3.get_absolute_url(),
            self.get_pages_root()+'test-page-4-copy/')
Example #5
0
    def test_apphook_on_root(self):

        with SettingsOverride(ROOT_URLCONF="poser.test_utils.project.urls_for_apphook_tests"):
            apphook_pool.clear()
            superuser = User.objects.create_superuser("admin", "*****@*****.**", "admin")
            page = create_page(
                "apphooked-page", "nav_playground.html", created_by=superuser, published=True, apphook="SampleApp"
            )
            blank_page = create_page(
                "not-apphooked-page",
                "nav_playground.html",
                created_by=superuser,
                published=True,
                apphook="",
                slug="blankapp",
            )
            self.assertTrue(page.publish())
            self.assertTrue(blank_page.publish())

            response = self.client.get("/apphooked-page/")
            self.assertTemplateUsed(response, "sampleapp/home.html")

            response = self.client.get("/blankapp/")
            self.assertTemplateUsed(response, "nav_playground.html")

            apphook_pool.clear()
Example #6
0
 def test_generage_valid_slug_check_existing(self):
     title = "Hello Title"
     create_page(title, 'nav_playground.html')
     # second time with same title, it should append -1
     expected_slug = "hello-title-1"
     slug = _generate_valid_slug(title)
     self.assertEqual(slug, expected_slug)
Example #7
0
    def test_valid_url_multisite(self):
        site1 = Site.objects.get_current()
        site3 = Site.objects.create(domain="sample3.com", name="sample3.com")
        bar = create_page('bar', 'nav_playground.html', slug="bar", published=True, site=site1)
        bar_s3 = create_page('bar', 'nav_playground.html', slug="bar", published=True, site=site3)

        self.assertTrue(is_valid_url(bar.get_absolute_url(), bar))
        self.assertTrue(is_valid_url(bar_s3.get_absolute_url(), bar_s3))
Example #8
0
 def test_list_apphooks(self):
     out = StringIO()
     apps = ["poser", "poser.test_utils.project.sampleapp"]
     with SettingsOverride(INSTALLED_APPS=apps):
         create_page('Hello Page', "nav_playground.html", apphook=APPHOOK)
         self.assertEqual(Page.objects.filter(application_urls=APPHOOK).count(), 1) 
         command = poser.Command()
         command.stdout = out
         command.handle("list", "apphooks", interactive=False)
         self.assertEqual(out.getvalue(), "SampleApp\n")
Example #9
0
 def test_get_page_without_final_slash(self):
     root = create_page("root", "nav_playground.html", slug="root",
                        published=True)
     page = create_page("page", "nav_playground.html", slug="page",
                        published=True)
     root.publish()
     page.publish()
     request = self.get_request('/page')
     found_page = get_page_from_request(request)
     self.assertFalse(found_page is None)
Example #10
0
 def test_login_required(self):
     create_page("page",
                 "nav_playground.html",
                 published=True,
                 login_required=True)
     request = self.get_request('/page/')
     response = details(request, '')
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response['Location'],
                      '%s?next=/page/' % settings.LOGIN_URL)
Example #11
0
 def test_list_apphooks(self):
     out = StringIO()
     apps = ["poser", "poser.test_utils.project.sampleapp"]
     with SettingsOverride(INSTALLED_APPS=apps):
         create_page('Hello Page', "nav_playground.html", apphook=APPHOOK)
         self.assertEqual(
             Page.objects.filter(application_urls=APPHOOK).count(), 1)
         command = poser.Command()
         command.stdout = out
         command.handle("list", "apphooks", interactive=False)
         self.assertEqual(out.getvalue(), "SampleApp\n")
Example #12
0
 def test_templates(self):
     """
     Test the inheritance magic for templates
     """
     template = "nav_playground.html"
     child = create_page("child", template)
     grand_child = create_page("child", template)
     child.save()
     grand_child.save()
     self.assertEqual(child.template, template)
     grand_child.get_template()
Example #13
0
 def test_templates(self):
     """
     Test the inheritance magic for templates
     """
     template = "nav_playground.html"
     child = create_page("child", template)
     grand_child = create_page("child", template)
     child.save()
     grand_child.save()
     self.assertEqual(child.template, template)
     grand_child.get_template()
Example #14
0
 def test_slug_collisions_api_1(self):
     """ Checks for slug collisions on sibling pages - uses API to create pages
     """
     page1_1 = create_page('test page 1_1', 'nav_playground.html',
                             published=True, slug="foo")
     page1_2 = create_page('test page 1_2', 'nav_playground.html',
                             published=True, slug="foo")
     # both sibling pages has same slug, so both pages has an invalid slug
     self.assertFalse(is_valid_page_slug(page1_1,
         page1_1.get_slug(), page1_1.site))
     self.assertFalse(is_valid_page_slug(page1_2,
         page1_2.get_slug(), page1_2.site))
Example #15
0
 def test_internal_forced_redirect(self):
     redirect_one = 'https://www.django-poser.org/'
     redirect_three = '/'
     one = create_page("one", "nav_playground.html", published=True,
                       redirect=redirect_one)
     three = create_page("three", "nav_playground.html",
                         published=True, redirect=redirect_three)
     url = three.get_absolute_url()
     request = self.get_request(url)
     response = details(request, url.strip('/'))
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response['Location'], redirect_three)
Example #16
0
 def test_get_page_without_final_slash(self):
     root = create_page("root",
                        "nav_playground.html",
                        slug="root",
                        published=True)
     page = create_page("page",
                        "nav_playground.html",
                        slug="page",
                        published=True)
     root.publish()
     page.publish()
     request = self.get_request('/page')
     found_page = get_page_from_request(request)
     self.assertFalse(found_page is None)
Example #17
0
 def test_apphook_not_hooked(self):
     """
     Test details view when apphook pool has apphooks, but they're not
     actually hooked
     """
     if APP_MODULE in sys.modules:
         del sys.modules[APP_MODULE]
     apphooks = ('%s.%s' % (APP_MODULE, APP_NAME), )
     create_page("page2", "nav_playground.html", published=True)
     with SettingsOverride(POSER_APPHOOKS=apphooks):
         apphook_pool.clear()
         response = self.client.get('/')
         self.assertEqual(response.status_code, 404)
         apphook_pool.clear()
Example #18
0
    def test_include_urlconf(self):
        with SettingsOverride(ROOT_URLCONF='poser.test_utils.project.second_urls_for_apphook_tests'):

            apphook_pool.clear()
            superuser = User.objects.create_superuser('admin', '*****@*****.**', 'admin')
            child_child_page = create_page("child_child_page", "nav_playground.html",
                created_by=superuser, published=True, apphook='SampleApp')

            child_child_page.publish()

            path = reverse('extra_second')
            response = self.client.get(path)
            self.assertEquals(response.status_code, 200)
            self.assertTemplateUsed(response, 'sampleapp/extra.html')
            self.assertContains(response, "test included urlconf")
            
            path = reverse('extra_first')
            response = self.client.get(path)
            self.assertEquals(response.status_code, 200)
            self.assertTemplateUsed(response, 'sampleapp/extra.html')
            self.assertContains(response, "test urlconf")

            path = reverse('extra_first')
            response = self.client.get(path)
            self.assertEquals(response.status_code, 200)
            self.assertTemplateUsed(response, 'sampleapp/extra.html')
            self.assertContains(response, "test urlconf")

            path = reverse('extra_second')
            response = self.client.get(path)
            self.assertEquals(response.status_code, 200)
            self.assertTemplateUsed(response, 'sampleapp/extra.html')
            self.assertContains(response, "test included urlconf")

            apphook_pool.clear()
Example #19
0
    def test_copy_page(self):
        """
        Test that a page can be copied via its model
        """
        page_a = create_page("page_a", "nav_playground.html")
        create_page("page_a_a_a", "nav_playground.html")

        page_b = create_page("page_b", "nav_playground.html")

        count = Page.objects.get_query_set().count()

        superuser = self.get_superuser()
        with self.login_user_context(superuser):
            page_a.copy_page(page_b, page_a.site)

        self.assertEqual(Page.objects.get_query_set().count() - count, 1)
Example #20
0
 def test_details_view(self):
     """
     Test the details view
     """
     superuser = self.get_superuser()
     with self.login_user_context(superuser):
         response = self.client.get(self.get_pages_root())
         self.assertEqual(response.status_code, 404)
         page = create_page('test page 1', "nav_playground.html")
         response = self.client.get(self.get_pages_root())
         self.assertEqual(response.status_code, 404)
         self.assertTrue(page.publish())
         page2 = create_page("test page 2", "nav_playground.html",
                                 published=True)
         response = self.client.get(page2.get_absolute_url())
         self.assertEqual(response.status_code, 200)
Example #21
0
 def test_slug_collisions_api_1(self):
     """ Checks for slug collisions on sibling pages - uses API to create pages
     """
     page1_1 = create_page('test page 1_1',
                           'nav_playground.html',
                           published=True,
                           slug="foo")
     page1_2 = create_page('test page 1_2',
                           'nav_playground.html',
                           published=True,
                           slug="foo")
     # both sibling pages has same slug, so both pages has an invalid slug
     self.assertFalse(
         is_valid_page_slug(page1_1, page1_1.get_slug(), page1_1.site))
     self.assertFalse(
         is_valid_page_slug(page1_2, page1_2.get_slug(), page1_2.site))
Example #22
0
 def test_apphook_not_hooked(self):
     """
     Test details view when apphook pool has apphooks, but they're not
     actually hooked
     """
     if APP_MODULE in sys.modules:
         del sys.modules[APP_MODULE]
     apphooks = (
         '%s.%s' % (APP_MODULE, APP_NAME),
     )
     create_page("page2", "nav_playground.html", published=True)
     with SettingsOverride(POSER_APPHOOKS=apphooks):
         apphook_pool.clear()
         response = self.client.get('/')
         self.assertEqual(response.status_code, 404)
         apphook_pool.clear()
Example #23
0
    def test_valid_url_multisite(self):
        site1 = Site.objects.get_current()
        site3 = Site.objects.create(domain="sample3.com", name="sample3.com")
        bar = create_page('bar',
                          'nav_playground.html',
                          slug="bar",
                          published=True,
                          site=site1)
        bar_s3 = create_page('bar',
                             'nav_playground.html',
                             slug="bar",
                             published=True,
                             site=site3)

        self.assertTrue(is_valid_url(bar.get_absolute_url(), bar))
        self.assertTrue(is_valid_url(bar_s3.get_absolute_url(), bar_s3))
Example #24
0
 def test_public_for_all_num_queries(self):
     with SettingsOverride(POSER_PUBLIC_FOR='all'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         request = self.get_request(user)
         page = create_page("test-public-for-all", "nav_playground.html")
         with self.assertNumQueries(0):
             page.has_view_permission(request)
Example #25
0
    def test_copy_page(self):
        """
        Test that a page can be copied via its model
        """
        page_a = create_page("page_a", "nav_playground.html")
        create_page("page_a_a_a", "nav_playground.html")

        page_b = create_page("page_b", "nav_playground.html")

        count = Page.objects.get_query_set().count()

        superuser = self.get_superuser()
        with self.login_user_context(superuser):
            page_a.copy_page(page_b, page_a.site)

        self.assertEqual(Page.objects.get_query_set().count() - count, 1)
Example #26
0
 def test_public_for_all_num_queries(self):
     with SettingsOverride(POSER_PUBLIC_FOR='all'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         request = self.get_request(user)
         page = create_page("test-public-for-all", "nav_playground.html")
         with self.assertNumQueries(0):
             page.has_view_permission(request)
Example #27
0
 def test_internal_forced_redirect(self):
     redirect_one = 'https://www.django-poser.org/'
     redirect_three = '/'
     one = create_page("one",
                       "nav_playground.html",
                       published=True,
                       redirect=redirect_one)
     three = create_page("three",
                         "nav_playground.html",
                         published=True,
                         redirect=redirect_three)
     url = three.get_absolute_url()
     request = self.get_request(url)
     response = details(request, url.strip('/'))
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response['Location'], redirect_three)
Example #28
0
    def test_get_page_for_apphook(self):

        with SettingsOverride(ROOT_URLCONF="poser.test_utils.project.second_urls_for_apphook_tests"):

            apphook_pool.clear()
            superuser = User.objects.create_superuser("admin", "*****@*****.**", "admin")
            child_child_page = create_page(
                "child_child_page", "nav_playground.html", created_by=superuser, published=True, apphook="SampleApp"
            )

            child_child_page.publish()
            # publisher_public is set to draft on publish, issue with onetoone reverse
            child_child_page = self.reload(child_child_page)

            en_title = child_child_page.get_title()

            path = reverse("sample-settings")

            response = self.client.get(path)
            self.assertEquals(response.status_code, 200)

            self.assertTemplateUsed(response, "sampleapp/home.html")
            self.assertContains(response, en_title)

            apphook_pool.clear()
Example #29
0
 def test_redirect_to_self_with_host(self):
     one = create_page("one", "nav_playground.html", published=True,
                       redirect='http://testserver/')
     url = one.get_absolute_url()
     request = self.get_request(url)
     response = details(request, url.strip('/'))
     self.assertEqual(response.status_code, 302)
Example #30
0
 def test_page_permissions(self):
     with SettingsOverride(POSER_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         user.user_permissions.add(Permission.objects.get(codename="view_page"))
         user.save()
         request = self.get_request(user)
         page = create_page('A', 'nav_playground.html')
         self.assertTrue(page.has_view_permission(request))
Example #31
0
 def test_details_view(self):
     """
     Test the details view
     """
     superuser = self.get_superuser()
     with self.login_user_context(superuser):
         response = self.client.get(self.get_pages_root())
         self.assertEqual(response.status_code, 404)
         page = create_page('test page 1', "nav_playground.html")
         response = self.client.get(self.get_pages_root())
         self.assertEqual(response.status_code, 404)
         self.assertTrue(page.publish())
         page2 = create_page("test page 2",
                             "nav_playground.html",
                             published=True)
         response = self.client.get(page2.get_absolute_url())
         self.assertEqual(response.status_code, 200)
Example #32
0
    def test_create_copy_publish(self):
        # create new page to copy
        page = create_page("page", "nav_playground.html")

        with self.login_user_context(self.user_master):
            copied_page = page.copy_page(self.home_page, page.site, True, True)

        page = publish_page(copied_page, self.user_master)
Example #33
0
 def test_unauthed_num_queries(self):
     with SettingsOverride(POSER_PUBLIC_FOR='all'):
         request = self.get_request()
         site = Site()
         site.pk = 1
         page = create_page("test-public-for-all", "nav_playground.html")
         with self.assertNumQueries(0):
             page.has_view_permission(request)
Example #34
0
 def test_home_slug_not_accessible(self):
     with SettingsOverride(POSER_PERMISSION=False):
         page = create_page('page', 'nav_playground.html', published=True)
         self.assertEqual(page.get_absolute_url(), '/page/')
         resp = self.client.get('/')
         self.assertEqual(resp.status_code, HttpResponseNotFound.status_code)
         resp = self.client.get('/page/')
         self.assertEqual(resp.status_code, HttpResponse.status_code)
Example #35
0
 def test_unauthed_num_queries(self):
     with SettingsOverride(POSER_PUBLIC_FOR='all'):
         request = self.get_request()
         site = Site()
         site.pk = 1
         page = create_page("test-public-for-all", "nav_playground.html")
         with self.assertNumQueries(0):
             page.has_view_permission(request)
Example #36
0
    def test_create_copy_publish(self):
        # create new page to copy
        page = create_page("page", "nav_playground.html")

        with self.login_user_context(self.user_master):
            copied_page = page.copy_page(self.home_page, page.site, True, True)

        page = publish_page(copied_page, self.user_master)
Example #37
0
 def test_redirect_to_self_with_host(self):
     one = create_page("one",
                       "nav_playground.html",
                       published=True,
                       redirect='http://testserver/')
     url = one.get_absolute_url()
     request = self.get_request(url)
     response = details(request, url.strip('/'))
     self.assertEqual(response.status_code, 302)
Example #38
0
 def test_page_permissions_view_groups(self):
     with SettingsOverride(POSER_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         group = Group.objects.create(name='testgroup')
         group.user_set.add(user)
         request = self.get_request(user)
         page = create_page('A', 'nav_playground.html')
         assign_user_to_page(page, group, grant_all=True)
         self.assertTrue(page.has_view_permission(request))
Example #39
0
 def test_page_permissions(self):
     with SettingsOverride(POSER_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         user.user_permissions.add(
             Permission.objects.get(codename="view_page"))
         user.save()
         request = self.get_request(user)
         page = create_page('A', 'nav_playground.html')
         self.assertTrue(page.has_view_permission(request))
Example #40
0
 def test_page_permissions_view_groups(self):
     with SettingsOverride(POSER_PUBLIC_FOR='staff'):
         user = User.objects.create_user('user', '*****@*****.**', 'user')
         group = Group.objects.create(name='testgroup')
         group.user_set.add(user)
         request = self.get_request(user)
         page = create_page('A', 'nav_playground.html')
         assign_user_to_page(page, group, grant_all=True)
         self.assertTrue(page.has_view_permission(request))
Example #41
0
 def test_home_slug_not_accessible(self):
     with SettingsOverride(POSER_PERMISSION=False):
         page = create_page('page', 'nav_playground.html', published=True)
         self.assertEqual(page.get_absolute_url(), '/page/')
         resp = self.client.get('/')
         self.assertEqual(resp.status_code,
                          HttpResponseNotFound.status_code)
         resp = self.client.get('/page/')
         self.assertEqual(resp.status_code, HttpResponse.status_code)
Example #42
0
    def test_apphook_on_root(self):
        
        with SettingsOverride(ROOT_URLCONF='poser.test_utils.project.urls_for_apphook_tests'):
            apphook_pool.clear()    
            superuser = User.objects.create_superuser('admin', '*****@*****.**', 'admin')
            page = create_page("apphooked-page", "nav_playground.html",
                               created_by=superuser, published=True, apphook="SampleApp")
            blank_page = create_page("not-apphooked-page", "nav_playground.html",
                                     created_by=superuser, published=True, apphook="", slug='blankapp')
            self.assertTrue(page.publish())
            self.assertTrue(blank_page.publish())
    
            response = self.client.get("/apphooked-page/")
            self.assertTemplateUsed(response, 'sampleapp/home.html')

            response = self.client.get('/blankapp/')
            self.assertTemplateUsed(response, 'nav_playground.html')

            apphook_pool.clear()
Example #43
0
 def test_delete(self):
     """
     Creates then deletes a Page
     """
     page = create_page("test", "nav_playground.html", \
                        apphook="SampleApp", created_by=self.user, published=True)
     self.client.login(username=self.username, password=self.password)
     response = self.client.delete(self.uri + str(page.id) + "/")
     self.assertEqual(response.status_code, 204)
     del_page = self.client.get("/test/")
     self.assertEqual(del_page.status_code, 404)
Example #44
0
    def test_same_order(self):
        # create 4 pages
        slugs = []
        for i in range(0, 4):
            page = create_page("page", "nav_playground.html")
            slug = page.slug
            slugs.append(slug)

        # approve last 2 pages in reverse order
        for slug in reversed(slugs[2:]):
            page = publish_page(page, self.user_master)
Example #45
0
    def test_same_order(self):
        # create 4 pages
        slugs = []
        for i in range(0, 4):
            page = create_page("page", "nav_playground.html")
            slug = page.slug
            slugs.append(slug)

        # approve last 2 pages in reverse order
        for slug in reversed(slugs[2:]):
            page = publish_page(page, self.user_master)
Example #46
0
    def test_create_publish_copy(self):
        # create new page to copy
        page = create_page("page", "nav_playground.html")

        page = publish_page(page, self.user_master)

        with self.login_user_context(self.user_master):
            copied_page = page.copy_page(self.master_page, page.site, True, True)

        #self.check_published_page_attributes(page)
        copied_page = publish_page(copied_page, self.user_master)
Example #47
0
 def test_page_already_expired(self):
     """
     Test that a page which has a end date in the past gives a 404, not a
     500.
     """
     yesterday = datetime.date.today() - datetime.timedelta(days=1)
     with SettingsOverride(POSER_MODERATOR=False, POSER_PERMISSION=False):
         page = create_page('page', 'nav_playground.html',
                            publication_end_date=yesterday, published=True)
         resp = self.client.get(page.get_absolute_url())
         self.assertEqual(resp.status_code, 404)
Example #48
0
    def test_apphook_on_root_reverse(self):
        with SettingsOverride(ROOT_URLCONF='poser.test_utils.project.urls_for_apphook_tests'):
            apphook_pool.clear()
            superuser = User.objects.create_superuser('admin', '*****@*****.**', 'admin')
            page = create_page("apphooked-page", "nav_playground.html",
                created_by=superuser, published=True, apphook="SampleApp")
            self.assertTrue(page.publish())

            self.assertFalse(reverse('sample-settings').startswith('//'))

            apphook_pool.clear()
Example #49
0
 def test_get_page_from_request_with_page_preview(self):
     page = create_page("page", "nav_playground.html")
     request = self.get_request('%s?preview' % page.get_absolute_url())
     request.user.is_staff = False
     found_page = get_page_from_request(request)
     self.assertEqual(found_page, None)
     superuser = self.get_superuser()
     with self.login_user_context(superuser):
         request = self.get_request('%s?preview&draft' % page.get_absolute_url())
         found_page = get_page_from_request(request)
         self.assertTrue(found_page)
         self.assertEqual(found_page.pk, page.pk)
Example #50
0
    def test_apphook_on_root_reverse(self):
        with SettingsOverride(ROOT_URLCONF="poser.test_utils.project.urls_for_apphook_tests"):
            apphook_pool.clear()
            superuser = User.objects.create_superuser("admin", "*****@*****.**", "admin")
            page = create_page(
                "apphooked-page", "nav_playground.html", created_by=superuser, published=True, apphook="SampleApp"
            )
            self.assertTrue(page.publish())

            self.assertFalse(reverse("sample-settings").startswith("//"))

            apphook_pool.clear()
Example #51
0
    def test_create_publish_copy(self):
        # create new page to copy
        page = create_page("page", "nav_playground.html")

        page = publish_page(page, self.user_master)

        with self.login_user_context(self.user_master):
            copied_page = page.copy_page(self.master_page, page.site, True,
                                         True)

        #self.check_published_page_attributes(page)
        copied_page = publish_page(copied_page, self.user_master)
Example #52
0
    def test_slug_url_overwrite_clash(self):
        """ Tests if a URL-Override clashes with a normal page url
        """
        with SettingsOverride(POSER_PERMISSION=False):
            bar = create_page('bar', 'nav_playground.html', published=False)
            foo = create_page('foo', 'nav_playground.html', published=True)
            # Tests to assure is_valid_url is ok on plain pages
            self.assertTrue(is_valid_url(bar.get_absolute_url(), bar))
            self.assertTrue(is_valid_url(foo.get_absolute_url(), foo))

            # Set url_overwrite for page foo
            foo.has_url_overwrite = True
            foo.path = '/bar/'
            foo.save()
            try:
                url = is_valid_url(bar.get_absolute_url(), bar)
            except ValidationError:
                url = False
            if url:
                bar.published = True
                bar.save()
            self.assertFalse(bar.published)
Example #53
0
    def test_slug_url_overwrite_clash(self):
        """ Tests if a URL-Override clashes with a normal page url
        """
        with SettingsOverride(POSER_PERMISSION=False):
            bar = create_page('bar', 'nav_playground.html', published=False)
            foo = create_page('foo', 'nav_playground.html', published=True)
            # Tests to assure is_valid_url is ok on plain pages
            self.assertTrue(is_valid_url(bar.get_absolute_url(), bar))
            self.assertTrue(is_valid_url(foo.get_absolute_url(), foo))

            # Set url_overwrite for page foo
            foo.has_url_overwrite = True
            foo.path = '/bar/'
            foo.save()
            try:
                url = is_valid_url(bar.get_absolute_url(),bar)
            except ValidationError:
                url = False
            if url:
                bar.published = True
                bar.save()
            self.assertFalse(bar.published)
Example #54
0
 def test_get_page_from_request_with_page_preview(self):
     page = create_page("page", "nav_playground.html")
     request = self.get_request('%s?preview' % page.get_absolute_url())
     request.user.is_staff = False
     found_page = get_page_from_request(request)
     self.assertEqual(found_page, None)
     superuser = self.get_superuser()
     with self.login_user_context(superuser):
         request = self.get_request('%s?preview&draft' %
                                    page.get_absolute_url())
         found_page = get_page_from_request(request)
         self.assertTrue(found_page)
         self.assertEqual(found_page.pk, page.pk)
Example #55
0
 def test_page_already_expired(self):
     """
     Test that a page which has a end date in the past gives a 404, not a
     500.
     """
     yesterday = datetime.date.today() - datetime.timedelta(days=1)
     with SettingsOverride(POSER_MODERATOR=False, POSER_PERMISSION=False):
         page = create_page('page',
                            'nav_playground.html',
                            publication_end_date=yesterday,
                            published=True)
         resp = self.client.get(page.get_absolute_url())
         self.assertEqual(resp.status_code, 404)
Example #56
0
    def test_page_urls(self):
        page1 = create_page('test page 1',
                            'nav_playground.html',
                            published=True)

        page2 = create_page('test page 2',
                            'nav_playground.html',
                            published=True)

        page3 = create_page('test page 3',
                            'nav_playground.html',
                            published=True)

        page4 = create_page('test page 4',
                            'nav_playground.html',
                            published=True)

        page5 = create_page('test page 5',
                            'nav_playground.html',
                            published=True)

        self.assertEqual(page1.get_absolute_url(),
                         self.get_pages_root() + 'test-page-1/')
        self.assertEqual(page2.get_absolute_url(),
                         self.get_pages_root() + 'test-page-2/')
        self.assertEqual(page4.get_absolute_url(),
                         self.get_pages_root() + 'test-page-4/')

        page3 = page3.move_page(page1)
        self.assertEqual(page3.get_absolute_url(),
                         self.get_pages_root() + 'test-page-1-copy/')

        page5 = page5.move_page(page2)
        self.assertEqual(page5.get_absolute_url(),
                         self.get_pages_root() + 'test-page-2-copy/')

        page3 = page3.move_page(page4)
        self.assertEqual(page3.get_absolute_url(),
                         self.get_pages_root() + 'test-page-4-copy/')
Example #57
0
    def test_apphook_by_class(self):
        if APP_MODULE in sys.modules:
            del sys.modules[APP_MODULE]
        apphooks = (
            '%s.%s' % (APP_MODULE, APP_NAME),
        )

        with SettingsOverride(POSER_APPHOOKS=apphooks):
            apphook_pool.clear()
            apphook = apphook_pool.get_apphook(APP_NAME)
            page = create_page(apphook=apphook,
                               **self._get_default_create_page_arguments())
            self.assertEqual(page.get_application_urls(), APP_NAME)