def check_vars(self, code, local_variables, global_variables=None,
nonlocal_variables=None,
get_node=None):
tree = compile_ast(code)
self.assertIsInstance(tree, ast.Module)
if get_node:
node = get_node(tree)
else:
node = tree.body[0]
visitor = fatoptimizer.namespace.VariableVisitor("<string>")
visitor.find_variables(node)
self.assertEqual(visitor.local_variables, local_variables)
if global_variables is not None:
self.assertEqual(visitor.global_variables, global_variables)
else:
self.assertEqual(visitor.global_variables, set())
if nonlocal_variables is not None:
self.assertEqual(visitor.nonlocal_variables, nonlocal_variables)
else:
self.assertEqual(visitor.nonlocal_variables, set())
评论列表
文章目录