Changeset 18 for trunk/airspeed_test.py

Show
Ignore:
Timestamp:
17/08/04 21:39:57 (8 years ago)
Author:
steve
Message:

elseif

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/airspeed_test.py

    r17 r18  
    186186        self.assertEquals("48", template.merge(locals())) 
    187187 
     188    def test_velocity_style_escaping(self): # example from Velocity docs 
     189        template = airspeed.Template('''\ 
     190#set( $email = "foo" ) 
     191$email 
     192\\$email 
     193\\\\$email 
     194\\\\\\$email''') 
     195        self.assertEquals('''\ 
     196foo 
     197$email 
     198\\foo 
     199\\$email''', template.merge({})) 
     200 
     201#    def test_velocity_style_escaping_when_var_unset(self): # example from Velocity docs 
     202#        template = airspeed.Template('''\ 
     203#$email 
     204#\$email 
     205#\\$email 
     206#\\\$email''') 
     207#        self.assertEquals('''\ 
     208#$email 
     209#\$email 
     210#\\$email 
     211#\\\$email''', template.merge({})) 
     212 
     213    def test_true_elseif_evaluated_when_if_is_false(self): 
     214        template = airspeed.Template('#if ($value1) one #elseif ($value2) two #end') 
     215        value1, value2 = False, True 
     216        self.assertEquals(' two ', template.merge(locals())) 
     217 
     218    def test_false_elseif_skipped_when_if_is_true(self): 
     219        template = airspeed.Template('#if ($value1) one #elseif ($value2) two #end') 
     220        value1, value2 = True, False 
     221        self.assertEquals(' one ', template.merge(locals())) 
     222 
     223    def test_first_true_elseif_evaluated_when_if_is_false(self): 
     224        template = airspeed.Template('#if ($value1) one #elseif ($value2) two #elseif($value3) three #end') 
     225        value1, value2, value3 = False, True, True 
     226        self.assertEquals(' two ', template.merge(locals())) 
     227 
     228    def test_illegal_to_have_elseif_after_else(self): 
     229        template = airspeed.Template('#if ($value1) one #else two #elseif($value3) three #end') 
     230        self.assertRaises(airspeed.TemplateSyntaxError, template.merge, {}) 
     231 
     232    def test_else_evaluated_when_if_and_elseif_are_false(self): 
     233        template = airspeed.Template('#if ($value1) one #elseif ($value2) two #else three #end') 
     234        value1, value2 = False, False 
     235        self.assertEquals(' three ', template.merge(locals())) 
    188236# 
    189237# TODO: 
    190238# 
    191 #  Escaped characters in string literals 
    192239#  Directives inside string literals 
     240#  Math expressions 
     241#  Gobbling up whitespace (tricky!) 
    193242#  #elseif 
    194 #  Parameterised calls 
    195243#  #parse, #include 
    196244#  #macro 
    197 #  map literals 
    198 Escaped $, # 
     245#  map literals, range literals, list literals 
     246Comparative operators >=, ==, !=, <=, ! 
    199247#  Sub-object assignment:  #set( $customer.Behavior = $primate ) 
    200248#  Q. What is scope of #set ($customer.Name = 'john')  ??? 
    201 # 
     249#  Scope of #set across if/elseif/else? 
    202250 
    203251