Changeset 46

Show
Ignore:
Timestamp:
14/09/05 12:21:59 (7 years ago)
Author:
steve
Message:

Support && operator

Location:
trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/airspeed.py

    r45 r46  
    2828    operator.__ne__ = lambda a, b: a != b 
    2929    operator.__or__ = lambda a, b: a or b 
     30    operator.__and__ = lambda a, b: a and b 
    3031try: 
    3132    basestring 
     
    438439 
    439440class BinaryOperator(_Element): 
    440     BINARY_OP = re.compile(r'\s*(>=|<=|<|==|!=|>|\|\|)\s*(.*)$', re.S) 
     441    BINARY_OP = re.compile(r'\s*(>=|<=|<|==|!=|>|\|\||&&)\s*(.*)$', re.S) 
    441442    OPERATORS = {'>' : operator.__gt__, '>=': operator.__ge__, 
    442443                 '<' : operator.__lt__, '<=': operator.__le__, 
    443444                 '==': operator.__eq__, '!=': operator.__ne__, 
    444                  '||': operator.__or__} 
     445                 '||': operator.__or__, '&&': operator.__and__} 
    445446    def parse(self): 
    446447        op_string, = self.identity_match(self.BINARY_OP) 
  • trunk/airspeed_test.py

    r45 r46  
    311311        template = airspeed.Template('#if ( $value1 || $value2 )yes#end') 
    312312        self.assertEquals('', template.merge({'value1': False, 'value2': False})) 
    313         #self.assertEquals('yes', template.merge({'value1': True, 'value2': False})) 
    314         #self.assertEquals('yes', template.merge({'value1': False, 'value2': True})) 
     313        self.assertEquals('yes', template.merge({'value1': True, 'value2': False})) 
     314        self.assertEquals('yes', template.merge({'value1': False, 'value2': True})) 
     315 
     316    def test_and_operator(self): 
     317        template = airspeed.Template('#if ( $value1 && $value2 )yes#end') 
     318        self.assertEquals('', template.merge({'value1': False, 'value2': False})) 
     319        self.assertEquals('', template.merge({'value1': True, 'value2': False})) 
     320        self.assertEquals('', template.merge({'value1': False, 'value2': True})) 
     321        self.assertEquals('yes', template.merge({'value1': True, 'value2': True})) 
    315322 
    316323    def test_cannot_define_macro_to_override_reserved_statements(self):