def test_template_render(self): registry.register('echo_markdown', MarkdownTemplateInline) self.assertEqual( u'**Hello**', renderer.render( u'{{ echo_markdown Hello }}', raise_errors=True)) self.assertEqual( u'**HELLO**', renderer.render( u'{{ echo_markdown:upper Hello }}', raise_errors=True))
def test_model_inline(self): registry.register('model', BasicModelInline) obj = InlineTestModel.objects.create(text='Test') self.assertEqual(u'Test', renderer.render(u'{{ model %s }}' % obj.pk)) self.assertEqual( u'TEST', renderer.render(u'{{ model:upper %s }}' % obj.pk, raise_errors=True))
def test_model_inline(self): registry.register('model', BasicModelInline) obj = InlineTestModel.objects.create(text='Test') self.assertEqual( u'Test', renderer.render(u'{{ model %s }}' % obj.pk)) self.assertEqual( u'TEST', renderer.render( u'{{ model:upper %s }}' % obj.pk, raise_errors=True))
def test_model_template_inline(self): registry.register('model_template_inline', BasicModelTemplateInline) obj = InlineTestModel.objects.create(text='Test') self.assertEqual( u'**Test**', renderer.render(u'{{ model_template_inline %s }}' % obj.pk, raise_errors=True)) self.assertEqual( u'**TEST**', renderer.render(u'{{ model_template_inline:upper %s }}' % obj.pk, raise_errors=True))
def test_model_template_inline(self): registry.register('model_template_inline', BasicModelTemplateInline) obj = InlineTestModel.objects.create(text='Test') self.assertEqual( u'**Test**', renderer.render( u'{{ model_template_inline %s }}' % obj.pk, raise_errors=True)) self.assertEqual( u'**TEST**', renderer.render( u'{{ model_template_inline:upper %s }}' % obj.pk, raise_errors=True))
def test_media(self): registry.unregister('echo') registry.register( 'echo', BasicInline, media={'mix_mod_4': BasicMixInline}) self.assertEqual( u'ArG1 aRg2 KwArG1 kWaRg2', renderer.render( u'{{ echo:mix arg1 arg2 kwarg1=kwarg1 kwarg2=kwarg2 }}')) self.assertEqual( u'Arg1 arg2 kwArg1 kwaRg2', renderer.render( u'{{ echo:mix arg1 arg2 kwarg1=kwarg1 kwarg2=kwarg2 }}', media='mix_mod_4'))
def test_variant(self): self.assertEqual( u'ARG1 ARG2 NONE KWARG2', renderer.render('{{ echo:upper arg1 arg2 }}', raise_errors=True)) self.assertRaisesMessage( ValidationError, u'`downer` is not a valid variant for inline `echo`', renderer.render, u'{{ echo:downer arg1 arg2 kwarg2=kwarg2 kwarg1=kwarg1 }}', None, True)
def test_missing_template_render(self): self.assertRaises( TemplateDoesNotExist, renderer.render, u'{{ echo_template arg1 }}', None, True) settings.INLINE_DEBUG = False self.assertEqual( u'', renderer.render( u'{{ echo_template arg1 }}', raise_errors=True, log_errors=False))
def test_missing_template_render(self): registry.register('echo_markdown', MarkdownTemplateInline) self.assertRaises( TemplateDoesNotExist, renderer.render, u'{{ echo_template arg1 }}', None, True) with self.settings(INLINE_DEBUG=False): self.assertEqual( u'**Hello**', renderer.render( u'{{ echo_markdown Hello }}{{ echo_template: arg1 }}'))
def test_basic_inline_render(self): self.assertEqual( u'arg1 arg2 None kwarg2', renderer.render('{{ echo arg1 arg2 }}', raise_errors=True)) self.assertEqual( u'arg1 arg2 kwarg1 kwarg2', renderer.render( '{{ echo arg1 \'arg2\' kwarg1="kwarg1" }}', raise_errors=True)) self.assertEqual( u'arg1 arg2 kwarg1 hope', renderer.render( '{{ echo arg1 arg2 kwarg1=kwarg1 kwarg2=hope }}', raise_errors=True)) self.assertEqual( u'arg1 arg2 kwarg1 kwarg2', renderer.render( '{{ echo arg1 arg2 kwarg2=kwarg2 kwarg1=kwarg1 }}', raise_errors=True))
def test_exceptions(self): registry.register('none', BasicInlineParent) self.assertEqual(u'', renderer.render('{{ echo }}', log_errors=False)) self.assertEqual(u'', renderer.render('{{ none }}', log_errors=False))
def test_validation_errors(self): # Test empty inline and `clean_arg1` validation errors with self.assertRaises(ValidationError) as cm: renderer.render( '{{ }}{{ echo hope arg2 kwarg2=kwarg2 }}', raise_errors=True, verbose_errors=False) self._test_validation_messages([ u'Empty inline found.', u'Inline `echo hope arg2 kwarg2=kwarg2`, argument `arg1` (pos 1): ' u'Validation Error 1', u'Inline `echo hope arg2 kwarg2=kwarg2`, argument `arg1` (pos 1): ' u'Validation Error 2'], cm) # Test `clean` validation errors with self.assertRaises(ValidationError) as cm: renderer.render( '{{ echo \'a new\' "hope" }}', raise_errors=True, verbose_errors=False) self._test_validation_messages([ u'Inline `echo \'a new\' "hope"`: You are a part of the Rebel' u' Alliance and a traitor!'], cm) # Test inline w\ too few args with self.assertRaises(ValidationError) as cm: renderer.render( '{{ }}\n{{ echo 1 }}\n{{ }}', raise_errors=True, verbose_errors=False) self._test_validation_messages([ u'Empty inline found.', u'Inline `echo 1`: Takes at least 2 non-keyword arguments ' u'(1 given).', u'Empty inline found.'], cm) # Test inline w\ too many args with self.assertRaises(ValidationError) as cm: renderer.render( '{{ echo a new hope }}', raise_errors=True, verbose_errors=False) self._test_validation_messages([ u'Inline `echo a new hope`: Takes only 2 non-keyword ' u'arguments (3 given).'], cm) # Test arg found after kwarg with self.assertRaises(ValidationError) as cm: renderer.render( '{{ echo kw=1 \'a new\' "hope" }}', raise_errors=True, verbose_errors=False) self._test_validation_messages([ u'Inline `echo kw=1 \'a new\' "hope"`, non-keyword argument ' u'found after keyword argument.'], cm) # Test kwarg3 argument validator with self.assertRaises(ValidationError) as cm: renderer.render( '{{ echo arg1 arg2 kwarg3=rebel }}', raise_errors=True, verbose_errors=False) self._test_validation_messages([ u'Inline `echo arg1 arg2 kwarg3=rebel`, argument `kwarg3`: ' u'Enter a valid email address.', u'Inline `echo arg1 arg2 kwarg3=rebel`, argument `kwarg3`: Is a ' u'part of the Rebel Alliance and a traitor!'], cm)
def test_template_override(self): self.assertEqual( u'arg1', renderer.render( u'{{ echo_template:downer ARG1 }}', raise_errors=True))
def test_exceptions(self): registry.register('none', BasicInlineParent) with self.settings(INLINE_DEBUG=False): self.assertEqual(u'', renderer.render('{{ echo }}')) self.assertEqual(u'', renderer.render('{{ none }}'))