Changeset 52
- Timestamp:
- 01/02/06 16:18:02 (2 years ago)
- Files:
-
- trunk/airspeed.py (modified) (2 diffs)
- trunk/airspeed_test.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/airspeed.py
r51 r52 143 143 return parent_value 144 144 145 def top(self): 146 if hasattr(self.parent, "top"): 147 return self.parent.top() 148 return self.parent 149 145 150 def __repr__(self): 146 151 return dict.__repr__(self) + '->' + repr(self.parent) … … 581 586 582 587 def evaluate(self, stream, namespace, loader): 588 global_ns = namespace.top() 583 589 macro_key = '#' + self.macro_name.lower() 584 if namespace.has_key(macro_key):590 if global_ns.has_key(macro_key): 585 591 raise Exception("cannot redefine macro") 586 namespace[macro_key] = self592 global_ns[macro_key] = self 587 593 588 594 def execute_macro(self, stream, namespace, arg_value_elements, loader): trunk/airspeed_test.py
r50 r52 522 522 value = unicode('Grüße', 'latin1') 523 523 self.assertEquals(value, template.merge(locals())) 524 525 def test_can_define_macros_in_parsed_files(self): 526 class Loader: 527 def load_template(self, name): 528 if name == 'foo.tmpl': 529 return airspeed.Template('#macro(themacro)works#end') 530 template = airspeed.Template('#parse("foo.tmpl")#themacro()') 531 self.assertEquals('works', template.merge({}, loader=Loader())) 524 532 525 533
