Changeset 7 for trunk

Show
Ignore:
Timestamp:
12/08/04 11:53:28 (8 years ago)
Author:
steve
Message:

handle closing of nested blocks

Location:
trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/airspeed.py

    r6 r7  
    103103    def delegate_token(self, token_type, token_value): 
    104104        if self.delegate: 
    105             if self.delegate.feed(token_type, token_value): 
    106                 return True 
    107             else: self.delegate = None 
     105            if not self.delegate.feed(token_type, token_value): 
     106                self.delegate = None 
     107            return True 
    108108        return False 
    109109 
  • trunk/airspeed_test.py

    r6 r7  
    136136        self.assertEquals("Hello Chris. Hello Steve. ", parser.merge(template)) 
    137137 
     138    def test_loop_variable_not_accessible_after_loop(self): 
     139        parser = airspeed.Parser() 
     140        template = airspeed.Template("#foreach ($name in $names)Hello $name. #end$name") 
     141        parser["names"] = ["Chris", "Steve"] 
     142        self.assertEquals("Hello Chris. Hello Steve. $name", parser.merge(template)) 
     143 
     144    def test_loop_variables_do_not_clash_in_nested_loops(self): 
     145        parser = airspeed.Parser() 
     146        template = airspeed.Template("#foreach ($word in $greetings)$word to#foreach ($word in $names) $word#end. #end") 
     147        parser["greetings"] = ["Hello", "Goodbye"] 
     148        parser["names"] = ["Chris", "Steve"] 
     149        self.assertEquals("Hello to Chris Steve. Goodbye to Chris Steve. ", parser.merge(template)) 
     150 
    138151 
    139152