Exemple #1
0
    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_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))
Exemple #3
0
    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))
Exemple #5
0
    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_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'))
Exemple #9
0
    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)
Exemple #10
0
    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 }}'))
Exemple #12
0
    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)
Exemple #15
0
 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 }}'))
    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))