Changeset 15
- Timestamp:
- 17/08/04 18:10:28 (4 years ago)
- Files:
-
- trunk/airspeed.py (modified) (4 diffs)
- trunk/airspeed_test.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/airspeed.py
r14 r15 45 45 46 46 class StringLiteralElement: 47 MY_PATTERN = re.compile(r'^"((?:\\["nrbt\\ ]|[^"\n\r"\\])+)"(.*)', re.S)47 MY_PATTERN = re.compile(r'^"((?:\\["nrbt\\\\]|[^"\n\r"\\])+)"(.*)', re.S) 48 48 ESCAPED_CHAR = re.compile(r'\\([nrbt"\\])') 49 49 def __init__(self, text): … … 205 205 self.remaining_text = m.group(1) 206 206 207 class NullElement: 208 def evaluate(self, namespace, stream): pass 207 209 208 210 class IfElement: 209 START = re.compile(r'^#if\b\s*(.*)', re.S + re.I) 211 START = re.compile(r'^#if\b\s*(.*)$', re.S + re.I) 212 START_ELSE = re.compile(r'^#else(.*)$', re.S + re.I) 213 else_block = NullElement() 214 210 215 def __init__(self, text): 211 216 m = self.START.match(text) … … 216 221 self.block = BlockElement(text) 217 222 text = self.block.remaining_text 223 m = self.START_ELSE.match(text) 224 if m: 225 text = m.group(1) 226 self.else_block = BlockElement(text) 227 text = self.else_block.remaining_text 218 228 try: 219 229 end = EndElement(text) … … 225 235 if self.condition.calculate(namespace): 226 236 self.block.evaluate(namespace, stream) 237 else: 238 self.else_block.evaluate(namespace, stream) 227 239 228 240 trunk/airspeed_test.py
r14 r15 150 150 self.assertEquals('"batman"', template.merge({})) 151 151 152 # def test_else_block_evaluated_if_if_expression_false(self): 153 # template = airspeed.Template('#if ($value) true #else false #end') 154 # self.assertEquals(" false ", template.merge({})) 152 def test_string_literal_can_contain_embedded_escaped_newlines(self): 153 template = airspeed.Template('#set ($name = "\\\\batman\\nand robin")$name') 154 self.assertEquals('\\batman\nand robin', template.merge({})) 155 156 def test_else_block_evaluated_when_if_expression_false(self): 157 template = airspeed.Template('#if ($value) true #else false #end') 158 self.assertEquals(" false ", template.merge({})) 155 159 156 160
