| # Tests proper handling of lextab and parsetab files in package structures |
| # Check of warning messages when files aren't writable |
| |
| # Here for testing purposes |
| import sys |
| if '..' not in sys.path: |
| sys.path.insert(0, '..') |
| |
| import ply.lex |
| import ply.yacc |
| |
| def patched_open(filename, mode): |
| if 'w' in mode: |
| raise IOError("Permission denied %r" % filename) |
| return open(filename, mode) |
| |
| ply.lex.open = patched_open |
| ply.yacc.open = patched_open |
| try: |
| from .parsing.calcparse import parser |
| finally: |
| del ply.lex.open |
| del ply.yacc.open |
| |
| |