From b459f5b7e3be65bbd554e03626ff255d4a68e9fc Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sun, 21 Feb 2010 23:42:57 +0000 Subject: Fixed #5971 - Fixed inconsistent behaviour of the TokenParser when parsing filters that follow constant strings or variables. Thanks Dmitri Fedortchenko, Adam Vandenberg and Ramiro Morales. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12471 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/regressiontests/templates/parser.py | 49 +++++++++++++++++++++++++++++++ tests/regressiontests/templates/tests.py | 4 ++- 2 files changed, 52 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/regressiontests/templates/parser.py b/tests/regressiontests/templates/parser.py index 6ad301d9c3..9e6ad2166e 100644 --- a/tests/regressiontests/templates/parser.py +++ b/tests/regressiontests/templates/parser.py @@ -2,6 +2,55 @@ Testing some internals of the template processing. These are *not* examples to be copied in user code. """ +token_parsing=r""" +Tests for TokenParser behavior in the face of quoted strings with spaces. + +>>> from django.template import TokenParser + + +Test case 1: {% tag thevar|filter sometag %} + +>>> p = TokenParser("tag thevar|filter sometag") +>>> p.tagname +'tag' +>>> p.value() +'thevar|filter' +>>> p.more() +True +>>> p.tag() +'sometag' +>>> p.more() +False + +Test case 2: {% tag "a value"|filter sometag %} + +>>> p = TokenParser('tag "a value"|filter sometag') +>>> p.tagname +'tag' +>>> p.value() +'"a value"|filter' +>>> p.more() +True +>>> p.tag() +'sometag' +>>> p.more() +False + +Test case 3: {% tag 'a value'|filter sometag %} + +>>> p = TokenParser("tag 'a value'|filter sometag") +>>> p.tagname +'tag' +>>> p.value() +"'a value'|filter" +>>> p.more() +True +>>> p.tag() +'sometag' +>>> p.more() +False +""" + filter_parsing = r""" >>> from django.template import FilterExpression, Parser diff --git a/tests/regressiontests/templates/tests.py b/tests/regressiontests/templates/tests.py index b2ba9f6f90..925fc57084 100644 --- a/tests/regressiontests/templates/tests.py +++ b/tests/regressiontests/templates/tests.py @@ -22,7 +22,7 @@ from django.utils.tzinfo import LocalTimezone from context import context_tests from custom import custom_filters -from parser import filter_parsing, variable_parsing +from parser import token_parsing, filter_parsing, variable_parsing from unicode import unicode_tests from smartif import * @@ -37,7 +37,9 @@ import filters __test__ = { 'unicode': unicode_tests, 'context': context_tests, + 'token_parsing': token_parsing, 'filter_parsing': filter_parsing, + 'variable_parsing': variable_parsing, 'custom_filters': custom_filters, } -- cgit v1.3