def test_localisation(self): loc = Localisation({ 'locale': 'eng_GB', 'image': 'sample-uuid-000000-0001', 'image_host': 'http://some.site.com/' }) self.workspace.save(loc, 'Add localisation') self.workspace.refresh_index() request = self.mk_request({'_LOCALE_': 'eng_GB'}) self.views = CmsViews(request) localisation = self.views.get_localisation() self.assertEqual(localisation.locale, 'eng_GB') self.assertEqual(localisation.image, 'sample-uuid-000000-0001') self.assertEqual(localisation.image_host, 'http://some.site.com/') # Test fallbacks request = self.mk_request({'_LOCALE_': 'eng_UK'}) self.views = CmsViews(request) localisation = self.views.get_localisation() self.assertEqual(localisation.locale, 'eng_GB') self.assertEqual(localisation.image, 'sample-uuid-000000-0001') self.assertEqual(localisation.image_host, 'http://some.site.com/')
def test_image_url(self): self.views = CmsViews(self.mk_request()) self.assertEqual( self.views.get_image_url('http://some.site.com', 'sample-uuid-000000-0001'), 'http://some.site.com/' '1bzRPrcuQPXBECF9mHxFVr11viY=/sample-uuid-000000-0001') self.assertEqual( self.views.get_image_url('http://some.site.com', 'sample-uuid-000000-0001', 300, 200), 'http://some.site.com/' '8Ko7ZiKCwOv8zDovqScWL5Lgrc8=/300x200/sample-uuid-000000-0001') self.assertEqual( self.views.get_image_url('http://some.site.com', 'sample-uuid-000000-0001', 300), 'http://some.site.com/' 'LUyVe1umwB1caELC5m3LWu1HxvI=/300x0/sample-uuid-000000-0001') self.assertEqual( self.views.get_image_url('http://some.site.com', 'sample-uuid-000000-0001', height=150), 'http://some.site.com/' '4kS9gT_mYqVhnheDCuQhsahI_dU=/0x150/sample-uuid-000000-0001') self.assertEqual(self.views.get_image_url('', ''), '')
def setUp(self): self.workspace = self.mk_workspace() settings = self.get_settings( self.workspace, **{'unicorecomments.host': 'http://localhost/commentservice'}) self.config = testing.setUp(settings=settings) self.config.include('cms') set_cache_regions_from_settings(settings) self.views = CmsViews(self.mk_request()) self.app_id = settings['unicorehub.app_id'] self.app = self.mk_app(self.workspace, settings=settings) [category] = self.create_categories(self.workspace, count=1) [page] = self.create_pages(self.workspace, count=1, description='description', primary_category=category.uuid) self.page = page self.stream = self.mk_comment_stream(page.uuid, state='open', offset=10, limit=5) self.patch_lazy_comment_page = mock.patch.object( LazyCommentPage, 'data', new=mock.PropertyMock(return_value=self.stream)) self.patch_lazy_comment_page.start()
def test_category_view_does_not_exist(self): request = self.mk_request(locale_name='swa_KE') views = CmsViews(request) for does_not_exist in (None, 'abcd'): request.matchdict['category'] = does_not_exist self.assertRaises(HTTPNotFound, views.category)
def setUp(self): self.workspace = self.mk_workspace() self.workspace.setup_custom_mapping( Page, { 'properties': { 'slug': { 'type': 'string', 'index': 'not_analyzed', }, 'language': { 'type': 'string', 'index': 'not_analyzed', } } }) self.workspace.setup_custom_mapping( Category, { 'properties': { 'slug': { 'type': 'string', 'index': 'not_analyzed', }, 'language': { 'type': 'string', 'index': 'not_analyzed', }, 'position': { 'type': 'long' } } }) self.workspace.setup_custom_mapping( Localisation, { 'properties': { 'locale': { 'type': 'string', 'index': 'not_analyzed', } } }) languages = ("[('eng_GB', 'English'), ('swa_KE', 'Swahili')," "('spa_ES', 'Spanish'), ('fre_FR', 'French')," "('hin_IN', 'Hindi'), ('ind_ID', 'Bahasa')," "('per_IR', 'Persian'), ('grn_PY', 'Guarani')]") featured_langs = "[('spa_ES', 'Spanish'), ('eng_GB', 'English')]" settings = self.get_settings(self.workspace, available_languages=languages, featured_languages=featured_langs) self.config = testing.setUp(settings=settings) self.config.include('pyramid_chameleon') set_cache_regions_from_settings(settings) self.config.set_locale_negotiator(locale_negotiator_with_fallbacks) self.views = CmsViews(self.mk_request()) self.app = self.mk_app(self.workspace, settings=settings)
def test_locales_displayed(self): langs = self.views.get_display_languages() self.assertEqual(langs, [('eng_GB', 'English'), ('spa_ES', u'espa\xf1ol')]) request = self.mk_request(locale_name='fre_FR') self.views = CmsViews(request) langs = self.views.get_display_languages() self.assertEqual(langs, [('fre_FR', u'fran\xe7ais'), ('eng_GB', 'English'), ('spa_ES', u'espa\xf1ol')]) request = self.mk_request(locale_name='spa_ES') self.views = CmsViews(request) langs = self.views.get_display_languages() self.assertEqual(langs, [('spa_ES', u'espa\xf1ol'), ('eng_GB', 'English')])
def setUp(self): self.workspace = self.mk_workspace() settings = self.get_settings(self.workspace) self.config = testing.setUp(settings=settings) self.config.include('cms') set_cache_regions_from_settings(settings) self.views = CmsViews(self.mk_request()) self.app = self.mk_app(self.workspace, settings=settings)
def render_logo(locale, default_src=None): request = self.mk_request(locale_name=locale) self.views = CmsViews(request) if default_src: define = 'tal:define="img_attrs view.get_logo_attributes' \ '(default_image_src=\'%s\')"' % default_src else: define = '' template = '<div metal:use-macro="view.logo_template" %s></div>' template = PageTemplate(template % define) return template.render(view=self.views, request=request)
def test_content_linked_pages_none(self): [category] = self.create_categories(self.workspace, count=1) [page1] = self.create_pages(self.workspace, linked_pages=None, count=1, content='', description='', primary_category=category.uuid) request = self.mk_request(matchdict={'uuid': page1.uuid}) self.views = CmsViews(request) response = self.views.content() self.assertEqual(list(response['linked_pages']), [])
def test_flatpage_markdown_rendering(self): [category] = self.create_categories(self.workspace, count=1) [page] = self.create_pages(self.workspace, count=1, content='**strong**', description='_emphasised_') request = self.mk_request(matchdict={'slug': page.slug}) self.views = CmsViews(request) response = self.views.flatpage() self.assertEqual(response['content'], '<p><strong>strong</strong></p>') self.assertEqual(response['description'], '<p><em>emphasised</em></p>')
def test_localisation_not_found(self): loc = Localisation({ 'locale': 'eng_GB', 'image': 'sample-uuid-000000-0001', 'image_host': 'http://some.site.com/' }) self.workspace.save(loc, 'Add localisation') self.workspace.refresh_index() request = self.mk_request({'_LOCALE_': 'spa_ES'}) self.views = CmsViews(request) self.assertIsNone(self.views.get_localisation())
def test_get_flatpage_using_old_english_code(self): [category] = self.create_categories(self.workspace, count=1) [page] = self.create_pages(self.workspace, count=1, content='Sample page in english', description='_emphasised_', language='eng_GB') request = self.mk_request({'_LOCALE_': 'eng_UK'}, matchdict={'slug': page.slug}) self.views = CmsViews(request) response = self.views.flatpage() self.assertEqual(response['content'], '<p>Sample page in english</p>')
def test_get_top_nav(self): category1, category2 = self.create_categories(self.workspace) category3, category4 = self.create_categories(self.workspace, language='swa_KE', featured_in_navbar=True) self.assertEqual([], list(self.views.get_top_nav)) # Change language self.views = CmsViews(self.mk_request(locale_name='swa_KE')) cat1, cat2 = self.views.get_top_nav self.assertEqual(set([cat1.language, cat2.language]), set(['swa_KE', 'swa_KE']))
def test_rtl(self): loc = Localisation({ 'locale': 'urd_IN', 'image': 'sample-uuid-000000-0001', 'image_host': 'http://some.site.com/' }) self.workspace.save(loc, 'Add localisation') self.workspace.refresh_index() request = self.mk_request(locale_name='urd_IN') self.views = CmsViews(request) localisation = self.views.get_localisation() self.assertEqual(localisation.locale, 'urd_IN')
def test_category_view(self): [category] = self.create_categories(self.workspace, count=1, language='swa_KE') [page] = self.create_pages(self.workspace, count=1, language='swa_KE', primary_category=category.uuid) request = self.mk_request(matchdict={'category': category.uuid}, locale_name='swa_KE') views = CmsViews(request) response = views.category() self.assertEqual(response['category'].uuid, category.uuid) self.assertEqual([p.uuid for p in response['pages']], [page.uuid])
def test_get_categories(self): category1, category2 = self.create_categories(self.workspace, language='eng_GB') category3, category4 = self.create_categories(self.workspace, language='swa_KE') cat1, cat2 = self.views.get_categories() self.assertEqual( set([category1.uuid, category2.uuid]), set([category.uuid for category in self.views.get_categories()])) # Change language self.views = CmsViews(self.mk_request(locale_name='swa_KE')) cat1, cat2 = self.views.get_categories() self.assertEqual(set([cat1.language, cat2.language]), set(['swa_KE', 'swa_KE']))
def setUp(self): self.workspace = self.mk_workspace() self.workspace.setup_custom_mapping( Page, { 'properties': { 'slug': { 'type': 'string', 'index': 'not_analyzed', }, 'language': { 'type': 'string', 'index': 'not_analyzed', } } }) self.workspace.setup_custom_mapping( Category, { 'properties': { 'slug': { 'type': 'string', 'index': 'not_analyzed', }, 'language': { 'type': 'string', 'index': 'not_analyzed', } } }) self.workspace.setup_custom_mapping( Localisation, { 'properties': { 'locale': { 'type': 'string', 'index': 'not_analyzed', } } }) settings = self.get_settings(self.workspace) self.config = testing.setUp(settings=settings) set_cache_regions_from_settings(settings) self.config.set_locale_negotiator(locale_negotiator_with_fallbacks) self.views = CmsViews(self.mk_request()) self.app = self.mk_app(self.workspace, settings=settings)
def test_get_featured_category_pages_swahili(self): self.views = CmsViews(self.mk_request(locale_name='swa_KE')) [category_eng] = self.create_categories(self.workspace, language='eng_GB', count=1) self.create_pages(self.workspace, count=10, language='eng_GB', primary_category=category_eng.uuid) self.create_pages(self.workspace, count=2, language='eng_GB', featured_in_category=True, primary_category=category_eng.uuid) [category_swh] = self.create_categories(self.workspace, language='swa_KE', count=1) self.create_pages(self.workspace, count=10, language='swa_KE', primary_category=category_swh.uuid) pages_swh_featured = self.create_pages( self.workspace, count=2, language='swa_KE', featured_in_category=True, primary_category=category_swh.uuid) # Assert english content not returned since language is swahili self.assertEqual( [], list(self.views.get_featured_category_pages(category_eng.uuid))) # Assert we get back featured pages for Swahili self.assertEqual( set([page.uuid for page in pages_swh_featured]), set([ page.uuid for page in self.views.get_featured_category_pages( category_swh.uuid) ]))
def test_format_date_helper(self): views = CmsViews(self.mk_request()) self.assertEqual(views.format_date('2014-10-10T09:10:17+00:00'), '10 October 2014') self.assertEqual( views.format_date('2014-10-10T09:10:17+00:00', '%d-%b-%y'), '10-Oct-14') self.assertEqual(views.format_date('some invalid date'), 'some invalid date') dt = datetime(year=2014, month=10, day=10, hour=9, minute=10, second=17, tzinfo=pytz.utc) self.assertEqual(views.format_date(dt), '10 October 2014')
def test_pages_ordering(self): [category] = self.create_categories(self.workspace, count=1) page1 = Page({ 'title': 'title 1', 'language': 'eng_GB', 'position': 3, 'primary_category': category.uuid }) page2 = Page({ 'title': 'title 2', 'language': 'eng_GB', 'position': 0, 'primary_category': category.uuid }) page3 = Page({ 'title': 'title 3', 'language': 'eng_GB', 'position': 1, 'primary_category': category.uuid }) page4 = Page({ 'title': 'title 4', 'language': 'eng_GB', 'position': 2, 'primary_category': category.uuid }) self.workspace.save(page1, 'Update position') self.workspace.save(page2, 'Update position') self.workspace.save(page3, 'Update position') self.workspace.save(page4, 'Update position') self.workspace.refresh_index() request = self.mk_request(matchdict={'category': category.uuid}) views = CmsViews(request) cat = views.category() p1, p2, p3, p4 = cat['pages'] self.assertEqual(p1.uuid, page2.uuid) self.assertEqual(p2.uuid, page3.uuid) self.assertEqual(p3.uuid, page4.uuid) self.assertEqual(p4.uuid, page1.uuid)
def test_unsupported_locales(self): request = self.mk_request(locale_name='grn_PY') self.views = CmsViews(request) langs = self.views.get_display_languages() self.assertEqual(langs, [('grn_PY', u'Guarani'), ('eng_GB', 'English'), ('spa_ES', u'espa\xf1ol')])
def test_get_category(self): request = self.mk_request(locale_name='swa_KE') views = CmsViews(request) for does_not_exist in (None, 'abcd'): self.assertIs(views.get_category(does_not_exist), None)