third_party.pylibs.pylint.src/test/genbuiltins.py
Sylvain Thénault e61477fbd4 rpython tests ok
2007-02-15 18:01:16 +01:00

64 lines
1.7 KiB
Python

from os import remove
from glob import glob
code = """
import os
def function():
retval = %s
os.write(2, str(retval) + '\\n')
def entry_point(argv):
function()
return 0
def target(*args):
return entry_point, None
"""
msg = "E: 5:function: Using unavailable builtin '%s'"
checks = [
'set([1, 2, 3])', 'frozenset()',
'dict()', 'unicode("f")', "complex(3, 4)",
'file("foo.txt")', 'open("foo.txt")',
'super(str)', 'object()',
'raw_input()', 'input()', 'buffer()',
'vars()', 'locals()', 'globals()', 'dir()',
'getattr(function, "bar")', 'delattr(function, "bar")', 'setattr(function, "bar", "baz")',
'staticmethod(function)', 'classmethod(function)', 'property(function)',
"reduce(function, [])", "filter(function, [])", 'map(function, [])',
'sum(xrange(4))', 'enumerate(range(5))',
'sorted(range(5))', 'reversed(range(5))',
'callable(function)', 'issubclass(function, str)',
'reload(module)',
'eval("a == b")', 'compile("a==b", "?", "eval")', 'execfile("foo.py")',
'id(function)', 'help(function)',
'intern("foo")', 'round(3.4)', 'iter([])',
]
for filename in glob('rpythoninput/func_nobuiltin_*'):
remove(filename)
for filename in glob('rpythonmessages/func_nobuiltin_*'):
remove(filename)
for check in checks:
builtin, _ = check.split('(', 1)
if builtin == 'isinstance':
builtin = 'basestring'
basename = 'func_nobuiltin_%s' % builtin
print basename
file('rpythoninput/%s.py' % basename, 'w').write(code % check)
file('rpythonmessages/%s.txt' % basename, 'w').write(msg % builtin)
print 'generated %s test' % len(checks)