from test
.test_support
import vereq
, TestFailed
symbols
= _symtable
.symtable("def f(x): return x", "?", "exec")
vereq(symbols
[0].name
, "global")
vereq(len([ste
for ste
in symbols
.values() if ste
.name
== "f"]), 1)
# Bug tickler: SyntaxError file name correct whether error raised
# while parsing or building symbol table.
def checkfilename(brokencode
):
_symtable
.symtable(brokencode
, "spam", "exec")
vereq(e
.filename
, "spam")
raise TestFailed("no SyntaxError for %r" % (brokencode
,))
checkfilename("def f(x): foo)(") # parse-time
checkfilename("def f(x): global x") # symtable-build-time