def test_two_sites(self): site = SiteFactory.create( root_page=PageFactory.create(title='mypage', path='00010002') ) site_b = SiteFactory.create( root_page=PageFactory.create(title='mypage', path='00010003') ) SystemStringFactory.create( identifier='headline', string='headline a', site=site, modified=True, ) SystemStringFactory.create( identifier='headline', string='headline b', site=site_b, modified=True, ) fill_cache(site) fill_cache(site_b) preload(site) preload(site_b) set_site(site) self.assertEquals(systemtext('headline'), 'headline a') set_site(site_b) self.assertEquals(systemtext('headline'), 'headline b')
def test_empty_but_modified_setting_override(self): app_settings.SYSTEMTEXT_USE_DEFAULT_ON_EMPTY = True site = SiteFactory.create( root_page=PageFactory.create(title='mypage', path='00010002') ) SystemStringFactory.create( identifier='title', string='', site=site, modified=True, ) set_site(site) fill_cache(site) preload(site) self.assertEquals(systemtext('title', default='Default title'), 'Default title') self.assertEquals(systemtext('title'), '')
def test_empty_use_default(self): site = SiteFactory.create( root_page=PageFactory.create(title='mypage', path='00010002') ) SystemStringFactory.create( identifier='title', string='', site=site, modified=False, ) set_site(site) fill_cache(site) preload(site) self.assertEquals(systemtext('title', default='Default title'), 'Default title')
def test_replace(self): site = SiteFactory.create( root_page=PageFactory.create(title='mypage', path='00010002') ) SystemStringFactory.create( identifier='headline', string='Headline!', site=site, modified=True, ) set_site(site) fill_cache(site) preload(site) self.assertEquals(systemtext('headline'), 'Headline!')
def render(self, context): self.filter_expression.var.translate = not self.noop if self.message_context: self.filter_expression.var.message_context = ( self.message_context.resolve(context)) output = self.filter_expression.resolve(context) value = render_value_in_context(output, context) # Restore percent signs. Percent signs in template text are doubled # so they are not interpreted as string format flags. is_safe = isinstance(value, SafeData) value = value.replace('%%', '%') value = systemtext(value, group=self.group, default=self.default) value = mark_safe(value) if is_safe else value if self.asvar: context[self.asvar] = value return '' else: return value