import subprocess import sys cases = [ ' open(filepath)', # FAIL (IndentationError) '4 2,', # (seems ok) 'π 2', # FAIL 'π 2,', # FAIL '4\t2', # FAIL ] for case in cases: print('=' * 40) p = subprocess.Popen(sys.executable, stdin=subprocess.PIPE) p.communicate(("""import traceback try: exec(%r) except Exception as exc: traceback.print_exc() raise """ % case).encode('utf-8'))