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_bug_172(self): """Test bug 167 http://code.google.com/p/django-page-cms/issues/detail?id=172""" c = self.get_admin_client() c.login(username='******', password='******') page_data = self.get_new_page_data() page_data['title'] = 'title-en-us' page_data['slug'] = 'slug' response = c.post('/admin/basic_cms/page/add/', page_data) page = Content.objects.get_content_slug_by_slug('slug').page Content(page=page, type='title', language='fr-ch', body="title-fr-ch").save() from basic_cms.http import get_request_mock request = get_request_mock() temp = loader.get_template('pages/tests/test3.html') render = temp.render(RequestContext(request, {'page': page})) self.assertTrue('title-en-us' in render) render = temp.render( RequestContext(request, { 'page': page, 'lang': 'fr-ch' })) self.assertTrue('title-fr-ch' in render)
def test_page_id_in_template(self): """Get a page in the templates via the page id.""" page = self.create_new_page() from basic_cms.http import get_request_mock request = get_request_mock() temp = loader.get_template('pages/tests/test4.html') render = temp.render(RequestContext(request, {})) self.assertTrue(page.title() in render)
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_urls_in_templates(self): """Test different ways of displaying urls in templates.""" page = self.create_new_page() from basic_cms.http import get_request_mock request = get_request_mock() temp = loader.get_template('pages/tests/test7.html') temp = loader.get_template('pages/tests/test6.html') render = temp.render(RequestContext(request, {'current_page': page})) self.assertTrue('t1_' + page.get_url_path() in render) self.assertTrue('t2_' + page.get_url_path() in render) self.assertTrue('t3_' + page.get_url_path() in render) self.assertTrue('t4_' + page.slug() in render) self.assertTrue('t5_' + page.slug() in render)
def test_urls_in_templates(self): """Test different ways of displaying urls in templates.""" page = self.create_new_page() from basic_cms.http import get_request_mock request = get_request_mock() temp = loader.get_template('pages/tests/test7.html') temp = loader.get_template('pages/tests/test6.html') render = temp.render(RequestContext(request, {'current_page':page})) self.assertTrue('t1_'+page.get_url_path() in render) self.assertTrue('t2_'+page.get_url_path() in render) self.assertTrue('t3_'+page.get_url_path() in render) self.assertTrue('t4_'+page.slug() in render) self.assertTrue('t5_'+page.slug() in render)
def test_bug_162(self): """Test bug 162 http://code.google.com/p/django-page-cms/issues/detail?id=162""" c = self.get_admin_client() c.login(username= '******', password='******') page_data = self.get_new_page_data() page_data['title'] = 'test-162-title' page_data['slug'] = 'test-162-slug' response = c.post('/admin/basic_cms/page/add/', page_data) self.assertRedirects(response, '/admin/basic_cms/page/') from basic_cms.http import get_request_mock request = get_request_mock() temp = loader.get_template('pages/tests/test2.html') render = temp.render(RequestContext(request, {})) self.assertTrue('test-162-slug' in render)
def test_bug_162(self): """Test bug 162 http://code.google.com/p/django-page-cms/issues/detail?id=162""" c = self.get_admin_client() c.login(username='******', password='******') page_data = self.get_new_page_data() page_data['title'] = 'test-162-title' page_data['slug'] = 'test-162-slug' response = c.post('/admin/basic_cms/page/add/', page_data) self.assertRedirects(response, '/admin/basic_cms/page/') from basic_cms.http import get_request_mock request = get_request_mock() temp = loader.get_template('pages/tests/test2.html') render = temp.render(RequestContext(request, {})) self.assertTrue('test-162-slug' in render)
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 test_path_too_long(self): """Test that the CMS try to resolve the whole page path to find a suitable sub path with delegation.""" page1 = self.new_page(content={'slug': 'page1'}) page2 = self.new_page(content={'slug': 'page2'}) from basic_cms import urlconf_registry as reg reg.register_urlconf('test', 'basic_cms.testproj.documents.urls', label='test') page2.delegate_to = 'test' page1.delegate_to = 'test' page1.save() page2.save() page2.parent = page1 page2.save() from basic_cms.testproj.documents.models import Document doc = Document(title='doc title 1', text='text', page=page1) doc.save() req = get_request_mock() self.set_setting("PAGE_HIDE_ROOT_SLUG", False) page1.invalidate() page2.invalidate() def _get_context_page(path): return details(req, path, 'en-us') self.assertEqual(_get_context_page('/').status_code, 200) self.assertEqual(_get_context_page('/page1/').status_code, 200) self.assertEqual(_get_context_page('/page1/').status_code, 200) self.assertEqual(_get_context_page('/page1/page2').status_code, 301) self.assertEqual(_get_context_page('/page1/page2/').status_code, 301) self.assertEqual( _get_context_page('/page1/page2/doc-%d' % doc.id).status_code, 301) self.assertRaises(Http404, _get_context_page, '/page1/page-wrong/doc-%d' % doc.id) reg.registry = []
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_path_too_long(self): """Test that the CMS try to resolve the whole page path to find a suitable sub path with delegation.""" page1 = self.new_page(content={'slug': 'page1'}) page2 = self.new_page(content={'slug': 'page2'}) from basic_cms import urlconf_registry as reg reg.register_urlconf('test', 'basic_cms.testproj.documents.urls', label='test') page2.delegate_to = 'test' page1.delegate_to = 'test' page1.save() page2.save() page2.parent = page1 page2.save() from basic_cms.testproj.documents.models import Document doc = Document(title='doc title 1', text='text', page=page1) doc.save() req = get_request_mock() self.set_setting("PAGE_HIDE_ROOT_SLUG", False) page1.invalidate() page2.invalidate() def _get_context_page(path): return details(req, path, 'en-us') self.assertEqual(_get_context_page('/').status_code, 200) self.assertEqual(_get_context_page('/page1/').status_code, 200) self.assertEqual(_get_context_page('/page1/').status_code, 200) self.assertEqual(_get_context_page('/page1/page2').status_code, 301) self.assertEqual(_get_context_page('/page1/page2/').status_code, 301) self.assertEqual(_get_context_page('/page1/page2/doc-%d' % doc.id ).status_code, 301) self.assertRaises(Http404, _get_context_page, '/page1/page-wrong/doc-%d' % doc.id) reg.registry = []
def test_bug_172(self): """Test bug 167 http://code.google.com/p/django-page-cms/issues/detail?id=172""" c = self.get_admin_client() c.login(username= '******', password='******') page_data = self.get_new_page_data() page_data['title'] = 'title-en-us' page_data['slug'] = 'slug' response = c.post('/admin/basic_cms/page/add/', page_data) page = Content.objects.get_content_slug_by_slug('slug').page Content(page=page, type='title', language='fr-ch', body="title-fr-ch").save() from basic_cms.http import get_request_mock request = get_request_mock() temp = loader.get_template('pages/tests/test3.html') render = temp.render(RequestContext(request, {'page':page})) self.assertTrue('title-en-us' in render) render = temp.render(RequestContext( request, {'page':page, 'lang':'fr-ch'} )) self.assertTrue('title-fr-ch' in render)
def test_bug_178(self): """http://code.google.com/p/django-page-cms/issues/detail?id=178""" from basic_cms.http import get_request_mock request = get_request_mock() temp = loader.get_template('pages/tests/test5.html') render = temp.render(RequestContext(request, {'page': None}))
def test_request_mockup(self): from basic_cms.http import get_request_mock request = get_request_mock() self.assertEqual(hasattr(request, 'session'), True)
def test_bug_178(self): """http://code.google.com/p/django-page-cms/issues/detail?id=178""" from basic_cms.http import get_request_mock request = get_request_mock() temp = loader.get_template('pages/tests/test5.html') render = temp.render(RequestContext(request, {'page':None}))