Changeset 45

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

Support operator

Location:
trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/airspeed.py

    r44 r45  
    2727    operator.__eq__ = lambda a, b: a == b 
    2828    operator.__ne__ = lambda a, b: a != b 
     29    operator.__or__ = lambda a, b: a or b 
    2930try: 
    3031    basestring 
     
    437438 
    438439class BinaryOperator(_Element): 
    439     BINARY_OP = re.compile(r'\s*(>=|<=|<|==|!=|>)\s*(.*)$', re.S) 
     440    BINARY_OP = re.compile(r'\s*(>=|<=|<|==|!=|>|\|\|)\s*(.*)$', re.S) 
    440441    OPERATORS = {'>' : operator.__gt__, '>=': operator.__ge__, 
    441442                 '<' : operator.__lt__, '<=': operator.__le__, 
    442                  '==': operator.__eq__, '!=': operator.__ne__} 
     443                 '==': operator.__eq__, '!=': operator.__ne__, 
     444                 '||': operator.__or__} 
    443445    def parse(self): 
    444446        op_string, = self.identity_match(self.BINARY_OP) 
  • trunk/airspeed_test.py

    r44 r45  
    307307        self.assertEquals('yes', template.merge({'value': 1})) 
    308308        self.assertEquals('', template.merge({'value': 2})) 
     309 
     310    def test_or_operator(self): 
     311        template = airspeed.Template('#if ( $value1 || $value2 )yes#end') 
     312        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})) 
    309315 
    310316    def test_cannot_define_macro_to_override_reserved_statements(self):