Changeset 21 for trunk/airspeed_test.py

Show
Ignore:
Timestamp:
18/08/04 18:08:26 (8 years ago)
Author:
steve
Message:

avoid passing text fragments between elements: pass positions instead. make TemplateSyntaxError? aware of error positions

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/airspeed_test.py

    r19 r21  
    234234        value1, value2 = False, False 
    235235        self.assertEquals(' three ', template.merge(locals())) 
     236 
     237    def test_syntax_error_contains_line_and_column_pos(self): 
     238        try: airspeed.Template('#if ( $hello )\n\n#elseif blah').merge({}) 
     239        except airspeed.TemplateSyntaxError, e: 
     240            self.assertEquals((3, 9), (e.line, e.column)) 
     241        else: self.fail('expected error') 
     242        try: airspeed.Template('#else blah').merge({}) 
     243        except airspeed.TemplateSyntaxError, e: 
     244            self.assertEquals((1, 1), (e.line, e.column)) 
     245        else: self.fail('expected error') 
     246 
     247    def test_get_position_strings_in_syntax_error(self): 
     248        try: airspeed.Template('#else whatever').merge({}) 
     249        except airspeed.TemplateSyntaxError, e: 
     250            self.assertEquals(['#else whatever', 
     251                               '^'], e.get_position_strings()) 
     252        else: self.fail('expected error') 
     253 
     254    def test_get_position_strings_in_syntax_error_when_newline_after_error(self): 
     255        try: airspeed.Template('#else whatever\n').merge({}) 
     256        except airspeed.TemplateSyntaxError, e: 
     257            self.assertEquals(['#else whatever', 
     258                               '^'], e.get_position_strings()) 
     259        else: self.fail('expected error') 
     260 
     261    def test_get_position_strings_in_syntax_error_when_newline_before_error(self): 
     262        try: airspeed.Template('foobar\n  #else whatever\n').merge({}) 
     263        except airspeed.TemplateSyntaxError, e: 
     264            self.assertEquals(['  #else whatever', 
     265                               '  ^'], e.get_position_strings()) 
     266        else: self.fail('expected error') 
     267 
     268 
    236269# 
    237270# TODO: