Changeset 50 for trunk/airspeed_test.py

Show
Ignore:
Timestamp:
22/09/05 10:21:47 (6 years ago)
Author:
steve
Message:

Extra tests to ensure that nonzero is honoured by conditionals

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/airspeed_test.py

    r49 r50  
    9191        self.assertEquals('', template.merge({})) 
    9292        self.assertEquals('', template.merge({'some_value': None})) 
     93 
     94    def test_if_statement_honours_custom_truth_value_of_objects(self): 
     95        class BooleanValue: 
     96            def __init__(self, value): self.value = value 
     97            def __nonzero__(self): return self.value 
     98        template = airspeed.Template("#if ($v)yes#end") 
     99        self.assertEquals('', template.merge({'v': BooleanValue(False)})) 
     100        self.assertEquals('yes', template.merge({'v': BooleanValue(True)})) 
     101 
    93102 
    94103    def test_new_lines_in_templates_are_permitted(self): 
     
    360369        template = airspeed.Template('#if ( !$value )yes#end') 
    361370        self.assertEquals('yes', template.merge({'value': None})) 
     371 
     372    def test_logical_negation_operator_honours_custom_truth_values(self): 
     373        class BooleanValue: 
     374            def __init__(self, value): self.value = value 
     375            def __nonzero__(self): return self.value 
     376        template = airspeed.Template('#if ( !$v)yes#end') 
     377        self.assertEquals('yes', template.merge({'v': BooleanValue(False)})) 
     378        self.assertEquals('', template.merge({'v': BooleanValue(True)})) 
    362379 
    363380    def test_compound_binary_and_unary_operators(self):