Django

Code

Changeset 6956

Show
Ignore:
Timestamp:
12/19/07 00:11:55 (2 years ago)
Author:
gwilson
Message:

Removed some reverse string craziness from the regroup template tag argument checking and added a few syntax tests.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/template/defaulttags.py

    r6923 r6956  
    927927 
    928928    """ 
    929     firstbits = token.contents.split(None, 3
    930     if len(firstbits) != 4
     929    bits = token.contents.split(
     930    if len(bits) != 6
    931931        raise TemplateSyntaxError, "'regroup' tag takes five arguments" 
    932     target = parser.compile_filter(firstbits[1]) 
    933     if firstbits[2] != 'by': 
     932    target = parser.compile_filter(bits[1]) 
     933    if bits[2] != 'by': 
    934934        raise TemplateSyntaxError("second argument to 'regroup' tag must be 'by'") 
    935     lastbits_reversed = firstbits[3][::-1].split(None, 2) 
    936     if lastbits_reversed[1][::-1] != 'as': 
     935    if bits[4] != 'as': 
    937936        raise TemplateSyntaxError("next-to-last argument to 'regroup' tag must" 
    938937                                  " be 'as'") 
    939938 
    940     expression = parser.compile_filter(lastbits_reversed[2][::-1]) 
    941  
    942     var_name = lastbits_reversed[0][::-1] 
     939    expression = parser.compile_filter(bits[3]) 
     940    var_name = bits[5] 
    943941    return RegroupNode(target, expression, var_name) 
    944942regroup = register.tag(regroup) 
  • django/trunk/tests/regressiontests/templates/tests.py

    r6854 r6956  
    808808                          '{% endfor %}', 
    809809                          {}, ''), 
     810             
     811            # Test syntax. 
     812            'regroup03': ('{% regroup data by bar as %}', {}, 
     813                          template.TemplateSyntaxError), 
     814            'regroup04': ('{% regroup data by bar thisaintright grouped %}', {}, 
     815                          template.TemplateSyntaxError), 
     816            'regroup05': ('{% regroup data thisaintright bar as grouped %}', {}, 
     817                          template.TemplateSyntaxError), 
     818            'regroup06': ('{% regroup data by bar as grouped toomanyargs %}', {}, 
     819                          template.TemplateSyntaxError), 
    810820 
    811821            ### TEMPLATETAG TAG #######################################################