def test_default_view_with_language_prefix(self): """ Test that everything is working with the language prefix option activated. """ self.set_setting("PAGE_USE_LANGUAGE_PREFIX", True) req = get_request_mock() self.assertRaises(Http404, details, req, '/pages/') page1 = self.new_page(content={'slug': 'page1'}) page2 = self.new_page(content={'slug': 'page2'}) self.assertEqual(page1.get_url_path(), reverse('pages-details-by-path', args=[], kwargs={'lang': 'en-us', 'path': 'page1'}) ) self.assertEqual(details(req, page1.get_url_path(), only_context=True)['current_page'], page1) self.assertEqual(details(req, path=page2.get_complete_slug(), only_context=True)['current_page'], page2) self.assertEqual(details(req, page2.get_url_path(), only_context=True)['current_page'], page2) self.set_setting("PAGE_USE_LANGUAGE_PREFIX", False) self.assertEqual(details(req, page2.get_url_path(), only_context=True)['current_page'], page2)
def test_context_processor(self): """Test that the page's context processor is properly activated.""" from basic_cms.views import details req = get_request_mock() page1 = self.new_page(content={'slug': 'page1', 'title': 'hello'}) page1.save() self.set_setting("PAGES_MEDIA_URL", "test_request_context") self.assertContains(details(req, path='/'), "test_request_context")
def test_default_view_with_language_prefix(self): """ Test that everything is working with the language prefix option activated. """ self.set_setting("PAGE_USE_LANGUAGE_PREFIX", True) req = get_request_mock() self.assertRaises(Http404, details, req, '/pages/') page1 = self.new_page(content={'slug': 'page1'}) page2 = self.new_page(content={'slug': 'page2'}) self.assertEqual( page1.get_url_path(), reverse('pages-details-by-path', args=[], kwargs={ 'lang': 'en-us', 'path': 'page1' })) self.assertEqual( details(req, page1.get_url_path(), only_context=True)['current_page'], page1) self.assertEqual( details(req, path=page2.get_complete_slug(), only_context=True)['current_page'], page2) self.assertEqual( details(req, page2.get_url_path(), only_context=True)['current_page'], page2) self.set_setting("PAGE_USE_LANGUAGE_PREFIX", False) self.assertEqual( details(req, page2.get_url_path(), only_context=True)['current_page'], page2)
def test_view_context(self): """ Test that the default view can only return the context """ c = self.get_admin_client() c.login(username='******', password='******') page_data = self.get_new_page_data() page_data['slug'] = 'page1' # create a page for the example otherwise you will get a Http404 error c.post('/admin/basic_cms/page/add/', page_data) page1 = Content.objects.get_content_slug_by_slug('page1').page from basic_cms.views import details from basic_cms.http import get_request_mock request = get_request_mock() context = details(request, path='/page1/', only_context=True) self.assertEqual(context['current_page'], page1)
def pages_view_decorator(request, *args, **kwargs): # if the current page is already there if(kwargs.get('current_page', False) or kwargs.get('pages_navigation', False)): return view(request, *args, **kwargs) path = kwargs.pop('path', None) lang = kwargs.pop('lang', None) if path: from basic_cms.views import details response = details(request, path=path, lang=lang, only_context=True, delegation=False) context = response extra_context_var = kwargs.pop('extra_context_var', None) if extra_context_var: kwargs.update({extra_context_var: context}) else: kwargs.update(context) return view(request, *args, **kwargs)
def pages_view_decorator(request, *args, **kwargs): # if the current page is already there if (kwargs.get('current_page', False) or kwargs.get('pages_navigation', False)): return view(request, *args, **kwargs) path = kwargs.pop('path', None) lang = kwargs.pop('lang', None) if path: from basic_cms.views import details response = details(request, path=path, lang=lang, only_context=True, delegation=False) context = response extra_context_var = kwargs.pop('extra_context_var', None) if extra_context_var: kwargs.update({extra_context_var: context}) else: kwargs.update(context) return view(request, *args, **kwargs)
def _get_context_page(path): return details(req, path, 'en-us')