def test_page_permission_group(rf): shop = get_default_shop() page = create_page(available_from=datetime.date(1988, 1, 1), shop=shop) permitted_group = Group.objects.create(name="Permitted") page.available_permission_groups.add(permitted_group) view_func = PageView.as_view() # not available for anonymous request = apply_request_middleware(rf.get("/")) with pytest.raises(Http404): response = view_func(request, url=page.url) # not available for wrong user group user = create_random_user() request = apply_request_middleware(rf.get("/"), user=user) with pytest.raises(Http404): response = view_func(request, url=page.url) # available for correct user group user.groups.add(permitted_group) request = apply_request_middleware(rf.get("/"), user=user) response = view_func(request, url=page.url) assert response.status_code == 200 response.render() assert "<h1>Bacon ipsum" in response.rendered_content
def check_children_content(request, page, children_content, children_visibility): view_func = PageView.as_view() response = view_func(request, url=page.url) response.render() assert page.get_html() in response.rendered_content assert bool(children_content in response.rendered_content) == children_visibility
def test_superuser_can_see_invisible_page(rf, admin_user): page = create_page(shop=get_default_shop(), available_from=None) view_func = PageView.as_view() request = apply_request_middleware(rf.get("/"), user=admin_user) response = view_func(request, url=page.url) response.render() assert "<h1>Bacon ipsum" in response.rendered_content
def test_visible_page_has_right_content(rf): page = create_page(available_from=datetime.date(1988, 1, 1), shop=get_default_shop()) view_func = PageView.as_view() request = apply_request_middleware(rf.get("/")) assert is_anonymous(request.user) response = view_func(request, url=page.url) response.render() assert "<h1>Bacon ipsum" in response.rendered_content
def test_anon_cant_see_invisible_page(rf): page = create_page() get_default_shop() view_func = PageView.as_view() request = apply_request_middleware(rf.get("/")) assert request.user.is_anonymous() with pytest.raises(Http404): response = view_func(request, url=page.url)
def test_superuser_can_see_invisible_page(rf, template_name): template_path = "shuup/simple_cms/" + template_name page = create_page(template_name=template_path, available_from=datetime.date(1988, 1, 1), shop=get_default_shop()) view_func = PageView.as_view() request = apply_request_middleware(rf.get("/")) response = view_func(request, url=page.url) response.render() assert response.template_name[0] == template_path
def test_visible_page_has_right_content(rf): page = create_page(available_from=datetime.date(1988, 1, 1), shop=get_default_shop()) view_func = PageView.as_view() request = apply_request_middleware(rf.get("/")) assert request.user.is_anonymous() response = view_func(request, url=page.url) response.render() assert "<h1>Bacon ipsum" in response.rendered_content
def test_visible_children(rf): shop = get_default_shop() request = apply_request_middleware(rf.get("/")) assert is_anonymous(request.user) parent_content = "Parent content" page = create_page(available_from=datetime.date(1988, 1, 1), content=parent_content, shop=shop, url="test") children_content = "Children content" # Visible child create_page(available_from=datetime.date(2000, 1, 1), content=children_content, parent=page, shop=shop) assert page.list_children_on_page == False check_children_content(request, page, children_content, False) page.list_children_on_page = True page.save() check_children_content(request, page, children_content, True) # check timestamps page.show_child_timestamps = True page.save() page.refresh_from_db() view = PageView.as_view() response = view(request=request, pk=page.pk, url="test") response.render() content = force_text(response.content) assert "Children content" in content assert "Jan 1, 2000, 12:00:00 AM" in content page.show_child_timestamps = False page.save() page.refresh_from_db() view = PageView.as_view() response = view(request=request, pk=page.pk, url="test") response.render() content = force_text(response.content) assert "Children content" in content assert "Jan 1, 2000, 12:00:00 AM" not in content
def test_render_page_title(rf): page = create_page(render_title=False, available_from=datetime.date(1988, 1, 1), shop=get_default_shop()) view_func = PageView.as_view() request = apply_request_middleware(rf.get("/")) response = view_func(request, url=page.url) response.render() soup = BeautifulSoup(response.content) title = soup.find("h1", class_= "page-header").text assert title == "\n"
def test_render_page_title(rf): page = create_page(render_title=False, available_from=datetime.date(1988, 1, 1), shop=get_default_shop()) view_func = PageView.as_view() request = apply_request_middleware(rf.get("/")) response = view_func(request, url=page.url) response.render() soup = BeautifulSoup(response.content) title = soup.find("h1", class_="page-header").text assert title == "\n"
def test_edit_page_in_admin_toolbar(rf, admin_user): shop = get_default_shop() # test shop.staff_members.add(admin_user) model = create_page(shop=shop) view = PageView.as_view() request = apply_request_middleware(rf.get("/"), user=admin_user) response = view(request, url=model.url) response.render() content = (response.content) soup = BeautifulSoup(content) check_url(soup, model)
def test_multilanguage_page_404_no_xlate(rf): # https://github.com/edoburu/django-parler/issues/50 cache.clear() # this is here, because parler cache is enabled and tests use same pk with page page = create_multilanguage_page(eternal=True, url="no_content", languages=("udm",)) # create page with udm language get_default_shop() request = apply_request_middleware(rf.get("/")) with translation.override("fi"): # change language of the page to fi view_func = PageView.as_view() with pytest.raises(Http404): response = view_func(request, url="no_content-udm") # Using Udmurt URL, but xlate is Finnish . . . assert response.status_code == 404 # ... should 404
def test_multilanguage_page_404_no_xlate(rf): # https://github.com/edoburu/django-parler/issues/50 cache.clear() # this is here, because parler cache is enabled and tests use same pk with page page = create_multilanguage_page(eternal=True, url="no_content", shop=get_default_shop(), languages=("udm",)) # create page with udm language get_default_shop() request = apply_request_middleware(rf.get("/")) with translation.override("fi"): # change language of the page to fi view_func = PageView.as_view() with pytest.raises(Http404): response = view_func(request, url="no_content-udm") # Using Udmurt URL, but xlate is Finnish . . . assert response.status_code == 404 # ... should 404
def test_owner_can_see_invisible_page(rf): user = create_random_user() page = create_page(shop=get_default_shop(), available_from=None) view_func = PageView.as_view() request = apply_request_middleware(rf.get("/"), user=user) with pytest.raises(Http404): response = view_func(request, url=page.url) page.created_by = user page.save() response = view_func(request, url=page.url) response.render() assert "<h1>Bacon ipsum" in response.rendered_content
def test_multilanguage_page_redirect(rf): page = create_multilanguage_page(eternal=True, url="redirector") get_default_shop() view_func = PageView.as_view() request = apply_request_middleware(rf.get("/")) with translation.override("fi"): page.set_current_language("fi") finnish_url = page.url response = view_func(request, url=finnish_url) assert response.status_code == 200 # Using the Finnish URL works page.set_current_language("en") english_url = page.url response = view_func(request, url=english_url) assert response.status_code == 302 # Using the English URL - redirect to finnish assert finnish_url in response["location"]
def test_page_different_shops(rf): shop1 = get_shop(status=ShopStatus.ENABLED, identifier="shop-1", name="Shop 1", domain="shop1") shop2 = get_shop(status=ShopStatus.ENABLED, identifier="shop-2", name="Shop 2", domain="shop2") # dreate page only for shop2 page = create_page(available_from=datetime.date(1988, 1, 1), shop=shop2) view_func = PageView.as_view() request = apply_request_middleware(rf.get("/", HTTP_HOST=shop1.domain)) with pytest.raises(Http404): response = view_func(request, url=page.url) request = apply_request_middleware(rf.get("/", HTTP_HOST=shop2.domain)) response = view_func(request, url=page.url) assert response.status_code == 200 response.render() assert "<h1>Bacon ipsum" in response.rendered_content
# -*- coding: utf-8 -*- # This file is part of Shuup. # # Copyright (c) 2012-2016, Shoop Ltd. All rights reserved. # # This source code is licensed under the AGPLv3 license found in the # LICENSE file in the root directory of this source tree. from django.conf.urls import patterns, url from shuup.simple_cms.views import PageView urlpatterns = patterns( '', url(r'^(?P<url>.*)/$', PageView.as_view(), name='cms_page'), )
# -*- coding: utf-8 -*- # This file is part of Shuup. # # Copyright (c) 2012-2021, Shuup Commerce Inc. All rights reserved. # # This source code is licensed under the OSL-3.0 license found in the # LICENSE file in the root directory of this source tree. from django.conf.urls import url from shuup.simple_cms.views import PageView urlpatterns = [ url(r"^(?P<url>.*)/$", PageView.as_view(), name="cms_page"), ]
# -*- coding: utf-8 -*- # This file is part of Shuup. # # Copyright (c) 2012-2020, Shoop Commerce Ltd. All rights reserved. # # This source code is licensed under the OSL-3.0 license found in the # LICENSE file in the root directory of this source tree. from django.conf.urls import url from shuup.simple_cms.views import PageView urlpatterns = [ url(r'^(?P<url>.*)/$', PageView.as_view(), name='cms_page'), ]
# -*- coding: utf-8 -*- # This file is part of Shuup. # # Copyright (c) 2012-2018, Shuup Inc. All rights reserved. # # This source code is licensed under the OSL-3.0 license found in the # LICENSE file in the root directory of this source tree. from django.conf.urls import url from shuup.simple_cms.views import PageView urlpatterns = [ url(r'^(?P<url>.*)/$', PageView.as_view(), name='cms_page'), ]