summaryrefslogtreecommitdiff
path: root/tests/template_tests/syntax_tests/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/template_tests/syntax_tests/utils.py')
-rw-r--r--tests/template_tests/syntax_tests/utils.py206
1 files changed, 0 insertions, 206 deletions
diff --git a/tests/template_tests/syntax_tests/utils.py b/tests/template_tests/syntax_tests/utils.py
deleted file mode 100644
index 168eca73f8..0000000000
--- a/tests/template_tests/syntax_tests/utils.py
+++ /dev/null
@@ -1,206 +0,0 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
-import functools
-
-from django import template
-from django.template import Library
-from django.template.base import Context
-from django.template.engine import Engine
-from django.template.loader import get_template
-from django.test.utils import override_settings
-from django.utils import translation
-from django.utils.encoding import python_2_unicode_compatible
-from django.utils.safestring import mark_safe
-
-
-def render(template_name, context=None):
- if context is None:
- context = {}
-
- t = get_template(template_name)
- with translation.override(context.get('LANGUAGE_CODE', 'en-us')):
- return t.render(Context(context))
-
-
-def setup(templates, *args):
- """
- Runs test method multiple times in the following order:
-
- TEMPLATE_DEBUG CACHED TEMPLATE_STRING_IF_INVALID
- -------------- ------ --------------------------
- False False
- False True
- False False INVALID
- False True INVALID
- True False
- True True
- """
-
- for arg in args:
- templates.update(arg)
-
- # numerous tests make use of an inclusion tag
- # add this in here for simplicity
- templates["inclusion.html"] = "{{ result }}"
-
- def decorator(func):
- @register_test_tags
- @override_settings(TEMPLATE_LOADERS=[
- ('django.template.loaders.cached.Loader', [
- ('django.template.loaders.locmem.Loader', templates),
- ]),
- ])
- @functools.wraps(func)
- def inner(self):
- loader = Engine.get_default().template_loaders[0]
-
- func(self)
- func(self)
- loader.reset()
-
- with override_settings(TEMPLATE_STRING_IF_INVALID='INVALID'):
- func(self)
- func(self)
- loader.reset()
-
- with override_settings(TEMPLATE_DEBUG=True):
- func(self)
- func(self)
- loader.reset()
- return inner
- return decorator
-
-
-# Custom template tag for tests
-
-register = Library()
-
-
-class EchoNode(template.Node):
- def __init__(self, contents):
- self.contents = contents
-
- def render(self, context):
- return ' '.join(self.contents)
-
-
-@register.tag
-def echo(parser, token):
- return EchoNode(token.contents.split()[1:])
-register.tag('other_echo', echo)
-
-
-@register.filter
-def upper(value):
- return value.upper()
-
-
-def register_test_tags(func):
- @functools.wraps(func)
- def inner(self):
- template.libraries['testtags'] = register
- func(self)
- del template.libraries['testtags']
- return inner
-
-
-# Helper objects
-
-class SomeException(Exception):
- silent_variable_failure = True
-
-
-class SomeOtherException(Exception):
- pass
-
-
-class ShouldNotExecuteException(Exception):
- pass
-
-
-class SomeClass:
- def __init__(self):
- self.otherclass = OtherClass()
-
- def method(self):
- return 'SomeClass.method'
-
- def method2(self, o):
- return o
-
- def method3(self):
- raise SomeException
-
- def method4(self):
- raise SomeOtherException
-
- def method5(self):
- raise TypeError
-
- def __getitem__(self, key):
- if key == 'silent_fail_key':
- raise SomeException
- elif key == 'noisy_fail_key':
- raise SomeOtherException
- raise KeyError
-
- @property
- def silent_fail_attribute(self):
- raise SomeException
-
- @property
- def noisy_fail_attribute(self):
- raise SomeOtherException
-
- @property
- def attribute_error_attribute(self):
- raise AttributeError
-
-
-class OtherClass:
- def method(self):
- return 'OtherClass.method'
-
-
-class TestObj(object):
- def is_true(self):
- return True
-
- def is_false(self):
- return False
-
- def is_bad(self):
- raise ShouldNotExecuteException()
-
-
-class SilentGetItemClass(object):
- def __getitem__(self, key):
- raise SomeException
-
-
-class SilentAttrClass(object):
- def b(self):
- raise SomeException
- b = property(b)
-
-
-@python_2_unicode_compatible
-class UTF8Class:
- "Class whose __str__ returns non-ASCII data on Python 2"
- def __str__(self):
- return 'ŠĐĆŽćžšđ'
-
-
-# These two classes are used to test auto-escaping of unicode output.
-@python_2_unicode_compatible
-class UnsafeClass:
- def __str__(self):
- return 'you & me'
-
-
-@python_2_unicode_compatible
-class SafeClass:
- def __str__(self):
- return mark_safe('you > me')