/usr/share/pyshared/simpleparse/tests/test_erroronfail.py is in python-simpleparse 2.1.0a1-6build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | import unittest, pprint
from simpleparse.parser import Parser
from simpleparse.error import ParserSyntaxError
class ErrorOnFailTests( unittest.TestCase ):
"""Tests of the error-on failure mechanisms"""
def shouldRaise(self, definition, parserName, testValue, ):
self.failUnlessRaises( ParserSyntaxError, Parser( definition).parse, testValue, parserName )
def shouldNotRaise(self, definition, parserName, testValue, ):
success,result, next = Parser( definition).parse( testValue, parserName )
assert success, """Didn't parse %s (error on fail test for definition %s)"""%( repr(testValue), repr(definition))
def testErrorOnFail1( self ):
self.shouldRaise(
'''s := -trailer!
trailer := "bad"
''',
's',
'badba',
)
def testErrorOnFail2( self ):
self.shouldRaise(
'''s := -"bad"!
''',
's',
'badba',
)
def testErrorOnFail3( self ):
self.shouldRaise(
'''s := -(a,b)!
a := "a"
b := "b"
''',
's',
'abdba',
)
def testErrorOnFail4( self ):
self.shouldRaise(
'''s := -[ab]!
''',
's',
'abdba',
)
def testErrorOnFail5( self ):
self.shouldRaise(
'''s := !,'a','b'
''',
's',
'badba',
)
def testErrorOnFail6( self ):
self.shouldNotRaise(
'''s := 'a',!,'b'
''',
's',
'abdba',
)
def testErrorOnFail7( self ):
self.shouldNotRaise(
'''s := 'a',!,'b'?
''',
's',
'acbdba',
)
def testErrorOnFail8( self ):
self.shouldRaise(
'''s := 'a',!,'b'
''',
's',
'acbdba',
)
def testErrorOnFail9( self ):
self.shouldRaise(
'''s := !,'a','b'
''',
's',
'bcbdba',
)
def testErrorOnFail10( self ):
"""Test for use of setting message in definition"""
self.shouldRaise(
'''s := 'a',! "Blargh!",'b'
''',
's',
'acbdba',
)
def testErrorOnFail11( self ):
"""Test proper setting of err message text from !"message" syntax"""
try:
Parser( '''s := 'a',! "Blargh!",'b'
''', 's' ).parse(
'acbdba',
)
except ParserSyntaxError, err:
assert err.message == "Blargh!", """Error message was %r, should have been "Blargh!"."""%(err.message,)
def testErrorOnFail12( self ):
"""Test proper setting of err message text from !"message" syntax"""
try:
Parser( '''s := 'a',! "Blargh!",'b'
''', 's' ).parse(
'acbdba',
)
except ParserSyntaxError, err:
description = str( err )
assert description == 'ParserSyntaxError: Blargh!', """Didn't get expected error description, got: %s"""%(
str(err),
)
def getSuite():
return unittest.makeSuite(ErrorOnFailTests,'test')
if __name__ == "__main__":
unittest.main(defaultTest="getSuite")
|