Changeset 47

Show
Ignore:
Timestamp:
15/09/05 09:49:24 (3 years ago)
Author:
steve
Message:

Support parenthesised values and expressions

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/airspeed.py

    r46 r47  
    319319class Value(_Element): 
    320320    def parse(self): 
    321         self.expression = self.next_element((SimpleReference, IntegerLiteral, StringLiteral, InterpolatedStringLiteral, ArrayLiteral)) 
     321        self.expression = self.next_element((SimpleReference, IntegerLiteral, StringLiteral, InterpolatedStringLiteral, ArrayLiteral, Condition)) 
    322322 
    323323    def calculate(self, namespace, loader): 
  • trunk/airspeed_test.py

    r46 r47  
    320320        self.assertEquals('', template.merge({'value1': False, 'value2': True})) 
    321321        self.assertEquals('yes', template.merge({'value1': True, 'value2': True})) 
     322 
     323    def test_parenthesised_value(self): 
     324        template = airspeed.Template('#if ( ($value1 == 1) && ($value2 == 2) )yes#end') 
     325        self.assertEquals('', template.merge({'value1': 0, 'value2': 1})) 
     326        self.assertEquals('', template.merge({'value1': 1, 'value2': 1})) 
     327        self.assertEquals('', template.merge({'value1': 0, 'value2': 2})) 
     328        self.assertEquals('yes', template.merge({'value1': 1, 'value2': 2})) 
     329 
     330    def test_compound_condition(self): 
     331        template = airspeed.Template('#if ( ($value) )yes#end') 
     332        self.assertEquals('', template.merge({'value': False})) 
     333        self.assertEquals('yes', template.merge({'value': True})) 
    322334 
    323335    def test_cannot_define_macro_to_override_reserved_statements(self):