コード例 #1
0
 def test_url(self):
     t = Template('{% url view var1 arg=var2 %}')
     vars = context.get_context(t)
     self.assertEqual(vars, ["var1", "var2"])
     # Django 1.5 format:
     t = Template('{% load url from future %}{% url view var1 arg=var2 %}')
     vars = context.get_context(t)
     self.assertEqual(vars, ["view", "var1", "var2"])
 def process_request(self, request):
     if request.path.startswith(settings.STATIC_URL):
         static_path = request.path[len(settings.STATIC_URL):]
         return views.serve(request, static_path)
     else:
         if request.method == 'POST':
             template_str = request.POST.get('template',
                                             'no template provided')
             template = Template(template_str)
             if 'context' in request.POST:
                 context = json.loads(request.POST['context'])
                 magic_context = {}
                 for citem in context:
                     if "." not in context:
                         cvalue = context[citem]
                         magic_context[citem] = \
                         OverAccomodatingContextItem(context, cvalue, citem)
                 c = Context(magic_context)
                 return HttpResponse(template.render(c))
             else:
                 c = get_context(template)
                 return HttpResponse(json.dumps(c))
         else:
             return HttpResponse("""
                 <form action="." method="post">
                     Template: <input type="text" name="template"><br/>
                     Data: <textarea name="context"></textarea><br/>
                     <input type="submit">
                 </form>
             """)
コード例 #3
0
 def process_request(self, request):
     if request.path.startswith(settings.STATIC_URL):
         static_path = request.path[len(settings.STATIC_URL):]
         return views.serve(request, static_path)
     else:
         if request.method == 'POST':
             template_str = request.POST.get('template',
                                             'no template provided')
             template = Template(template_str)
             if 'context' in request.POST:
                 context = json.loads(request.POST['context'])
                 magic_context = {}
                 for citem in context:
                     if "." not in context:
                         cvalue = context[citem]
                         magic_context[citem] = \
                         OverAccomodatingContextItem(context, cvalue, citem)
                 c = Context(magic_context)
                 return HttpResponse(template.render(c))
             else:
                 c = get_context(template)
                 return HttpResponse(json.dumps(c))
         else:
             return HttpResponse(
             """
                 <form action="." method="post">
                     Template: <input type="text" name="template"><br/>
                     Data: <textarea name="context"></textarea><br/>
                     <input type="submit">
                 </form>
             """)
コード例 #4
0
 def test_block_tag(self):
     t = Template("""
         {% spaceless %}
             This text contains a {{ var }} inside
         {% endspaceless %}
     """)
     vars = context.get_context(t)
     self.assertEqual(vars, ["var"])
コード例 #5
0
 def test_for(self):
     t = Template("""
         {% for item in list %}
             {{ item.attribute }}
             {{ outer }}
         {% endfor %}
     """)
     vars = context.get_context(t)
     self.assertEqual(
         vars,
         ["list", "list.0.attribute", "outer"]
     )
コード例 #6
0
 def test_ifchanged(self):
     t = Template("""
         {% ifchanged var1 var2 %}
             {{ then_var }}
         {% else %}
             {{ else_var }}
         {% endifchanged %}
     """)
     vars = context.get_context(t)
     self.assertEqual(
         vars,
         ["var1", "var2", "then_var", "else_var"]
     )
コード例 #7
0
 def test_for_multiple(self):
     t = Template("""
         {% for key,value in dictionary.items %}
             {{ key.attribute }}
             {{ value }}
         {% endfor %}
     """)
     vars = context.get_context(t)
     self.assertEqual(
         vars,
         ["dictionary.items", "dictionary.items.0.0.attribute",
         "dictionary.items.0.1"]
     )
コード例 #8
0
 def test_if(self):
     t = Template("""
         {% if not var1 and var2 in var3 %}
             {{ then_var }}
         {% else %}
             {{ else_var }}
         {% endif %}
     """)
     vars = context.get_context(t)
     self.assertEqual(
         vars,
         ["var1", "var2", "var3", "then_var", "else_var"]
     )
コード例 #9
0
 def test_with(self):
     t = Template("""
         {% with var1=foo var2=bar.baz var3="foo" %}
             {{ var1 }}
             {{ var2.attribute }}
             {{ var3 }}
             {{ foo }}
         {% endwith %}
     """)
     vars = context.get_context(t)
     # FIXME: in a future version, var3 shouldn't appear in the result
     self.assertEqual(
         vars,
         ["foo", "bar.baz.attribute", "var3", "foo"]
     )
コード例 #10
0
 def test_simple_tag(self):
     t = Template('{% cycle var1 "text" var2 %}')
     vars = context.get_context(t)
     self.assertEqual(vars, ["var1", "var2"])
コード例 #11
0
ファイル: gui.py プロジェクト: perrito666/ninja-django-plugin
def parse_django_template(text):
    template = Template(text)
    return get_context(template)
コード例 #12
0
 def test_include_constant(self):
     t = Template('{% include "base.html" with var1=foo %}')
     vars = context.get_context(t)
     self.assertEqual(vars, ["foo"])
コード例 #13
0
 def test_simple_vars(self):
     t = Template("{{ var1 }}Some text{{ var2 }}")
     vars = context.get_context(t)
     self.assertEqual(vars, ["var1", "var2"])
コード例 #14
0
 def test_firstof(self):
     t = Template('{% firstof var1 "text" var2 %}')
     vars = context.get_context(t)
     self.assertEqual(vars, ["var1", "var2"])
コード例 #15
0
 def test_filter(self):
     t = Template('{% filter lower|default:x %}{{ y }}{% endfilter %}')
     vars = context.get_context(t)
     self.assertEqual(vars, ["x", "y"])
コード例 #16
0
 def test_extends(self):
     t = Template('{% extends "base.html" %}{{ var2 }}')
     vars = context.get_context(t)
     self.assertEqual(vars, ["var1", "var2"])
コード例 #17
0
 def test_widthratio(self):
     t = Template('{% widthratio var1 var2 var3 %}')
     vars = context.get_context(t)
     self.assertEqual(vars, ["var1", "var2", "var3"])
コード例 #18
0
 def test_include_variable(self):
     t = Template('{% include var with arg=foo %}')
     vars = context.get_context(t)
     self.assertEqual(vars, ["var", "foo"])
コード例 #19
0
 def test_filter_arguments(self):
     t = Template('{{ var1|default:var3 }}Some text{{ var2|add:var4 }}')
     vars = context.get_context(t)
     self.assertEqual(vars, ["var1", "var3", "var2", "var4"])
コード例 #20
0
 def test_filtered_constants(self):
     t = Template('{{ "constant"|default:var1 }}')
     vars = context.get_context(t)
     self.assertEqual(vars, ["var1"])
コード例 #21
0
 def test_filtered_vars(self):
     t = Template('{{ var1|default:"Nothing" }}Some text{{ var2|add:"3" }}')
     vars = context.get_context(t)
     self.assertEqual(vars, ["var1", "var2"])
コード例 #22
0
 def test_chained_vars(self):
     t = Template("{{ var1.attribute1.inner_attribute2 }}")
     vars = context.get_context(t)
     self.assertEqual(vars, ["var1.attribute1.inner_attribute2"])