- pep8 + modernize
diff --git a/test/test_ast.py b/test/test_ast.py index c9c400e..b0257b7 100644 --- a/test/test_ast.py +++ b/test/test_ast.py
@@ -3,7 +3,11 @@ from mako import ast, exceptions, pyparser, util from test import eq_ -exception_kwargs = {'source':'', 'lineno':0, 'pos':0, 'filename':''} +exception_kwargs = { + 'source': '', + 'lineno': 0, + 'pos': 0, + 'filename': ''} class AstParseTest(unittest.TestCase): @@ -23,9 +27,16 @@ ("Another expr", c) """ parsed = ast.PythonCode(code, **exception_kwargs) - assert parsed.declared_identifiers == set(['a','b','c', 'g', 'h', 'i', 'u', 'k', 'j', 'gh', 'lar', 'x']) - assert parsed.undeclared_identifiers == set(['x', 'q', 'foo', 'gah', 'blah']) - + eq_( + parsed.declared_identifiers, + set(['a', 'b', 'c', 'g', 'h', 'i', 'u', + 'k', 'j', 'gh', 'lar', 'x']) + ) + eq_( + parsed.undeclared_identifiers, + set(['x', 'q', 'foo', 'gah', 'blah']) + ) + parsed = ast.PythonCode("x + 5 * (y-z)", **exception_kwargs) assert parsed.undeclared_identifiers == set(['x', 'y', 'z']) assert parsed.declared_identifiers == set() @@ -41,11 +52,15 @@ result.append(x+7) """ parsed = ast.PythonCode(code, **exception_kwargs) - assert parsed.undeclared_identifiers == set(['get_data']) - assert parsed.declared_identifiers == set(['result', 'data', 'x', 'hoho', 'foobar', 'foo', 'yaya']) + eq_(parsed.undeclared_identifiers, set(['get_data'])) + eq_( + parsed.declared_identifiers, + set(['result', 'data', 'x', 'hoho', 'foobar', 'foo', 'yaya']) + ) def test_locate_identifiers_3(self): - """test that combination assignment/expressions of the same identifier log the ident as 'undeclared'""" + """test that combination assignment/expressions + of the same identifier log the ident as 'undeclared'""" code = """ x = x + 5 for y in range(1, y): @@ -54,8 +69,11 @@ (q for q in range (1, q)) """ parsed = ast.PythonCode(code, **exception_kwargs) - assert parsed.undeclared_identifiers == set(['x', 'y', 'z', 'q', 'range']) - + eq_( + parsed.undeclared_identifiers, + set(['x', 'y', 'z', 'q', 'range']) + ) + def test_locate_identifiers_4(self): if util.py3k: code = """ @@ -63,18 +81,18 @@ (y, ) def mydef(mydefarg): print("mda is", mydefarg) -""" +""" else: code = """ x = 5 (y, ) def mydef(mydefarg): print "mda is", mydefarg -""" +""" parsed = ast.PythonCode(code, **exception_kwargs) - assert parsed.undeclared_identifiers == set(['y']) - assert parsed.declared_identifiers == set(['mydef', 'x']) - + eq_(parsed.undeclared_identifiers, set(['y'])) + eq_(parsed.declared_identifiers, set(['mydef', 'x'])) + def test_locate_identifiers_5(self): if util.py3k: code = """ @@ -84,7 +102,7 @@ print(y) """ else: - + code = """ try: print x @@ -92,16 +110,16 @@ print y """ parsed = ast.PythonCode(code, **exception_kwargs) - assert parsed.undeclared_identifiers == set(['x', 'y']) - + eq_(parsed.undeclared_identifiers, set(['x', 'y'])) + def test_locate_identifiers_6(self): code = """ def foo(): return bar() """ parsed = ast.PythonCode(code, **exception_kwargs) - assert parsed.undeclared_identifiers == set(['bar']) - + eq_(parsed.undeclared_identifiers, set(['bar'])) + if util.py3k: code = """ def lala(x, y): @@ -115,9 +133,9 @@ print x """ parsed = ast.PythonCode(code, **exception_kwargs) - assert parsed.undeclared_identifiers == set(['z', 'x']) - assert parsed.declared_identifiers == set(['lala']) - + eq_(parsed.undeclared_identifiers, set(['z', 'x'])) + eq_(parsed.declared_identifiers, set(['lala'])) + if util.py3k: code = """ def lala(x, y): @@ -135,16 +153,16 @@ print z """ parsed = ast.PythonCode(code, **exception_kwargs) - assert parsed.undeclared_identifiers == set(['z']) - assert parsed.declared_identifiers == set(['lala']) - + eq_(parsed.undeclared_identifiers, set(['z'])) + eq_(parsed.declared_identifiers, set(['lala'])) + def test_locate_identifiers_7(self): code = """ import foo.bar """ parsed = ast.PythonCode(code, **exception_kwargs) - assert parsed.declared_identifiers == set(['foo']) - assert parsed.undeclared_identifiers == set() + eq_(parsed.declared_identifiers, set(['foo'])) + eq_(parsed.undeclared_identifiers, set()) def test_locate_identifiers_8(self): code = """ @@ -154,24 +172,24 @@ x = 5 """ parsed = ast.PythonCode(code, **exception_kwargs) - assert parsed.declared_identifiers == set(['Hi']) - assert parsed.undeclared_identifiers == set() - + eq_(parsed.declared_identifiers, set(['Hi'])) + eq_(parsed.undeclared_identifiers, set()) + def test_locate_identifiers_9(self): code = """ ",".join([t for t in ("a", "b", "c")]) """ parsed = ast.PythonCode(code, **exception_kwargs) - assert parsed.declared_identifiers == set(['t']) - assert parsed.undeclared_identifiers == set(['t']) - + eq_(parsed.declared_identifiers, set(['t'])) + eq_(parsed.undeclared_identifiers, set(['t'])) + code = """ [(val, name) for val, name in x] """ parsed = ast.PythonCode(code, **exception_kwargs) - assert parsed.declared_identifiers == set(['val', 'name']) - assert parsed.undeclared_identifiers == set(['val', 'name', 'x']) - + eq_(parsed.declared_identifiers, set(['val', 'name'])) + eq_(parsed.undeclared_identifiers, set(['val', 'name', 'x'])) + def test_locate_identifiers_10(self): code = """ lambda q: q + 5 @@ -179,7 +197,7 @@ parsed = ast.PythonCode(code, **exception_kwargs) eq_(parsed.declared_identifiers, set()) eq_(parsed.undeclared_identifiers, set()) - + def test_locate_identifiers_11(self): code = """ def x(q): @@ -196,80 +214,108 @@ from foo import * import x as bar """ - self.assertRaises(exceptions.CompileException, ast.PythonCode, code, **exception_kwargs) - + self.assertRaises(exceptions.CompileException, + ast.PythonCode, code, **exception_kwargs) + def test_python_fragment(self): parsed = ast.PythonFragment("for x in foo:", **exception_kwargs) - assert parsed.declared_identifiers == set(['x']) - assert parsed.undeclared_identifiers == set(['foo']) - + eq_(parsed.declared_identifiers, set(['x'])) + eq_(parsed.undeclared_identifiers, set(['foo'])) + parsed = ast.PythonFragment("try:", **exception_kwargs) if util.py3k: - parsed = ast.PythonFragment("except MyException as e:", **exception_kwargs) + parsed = ast.PythonFragment( + "except MyException as e:", **exception_kwargs) else: - parsed = ast.PythonFragment("except MyException, e:", **exception_kwargs) + parsed = ast.PythonFragment( + "except MyException, e:", **exception_kwargs) eq_(parsed.declared_identifiers, set(['e'])) eq_(parsed.undeclared_identifiers, set(['MyException'])) - + def test_argument_list(self): - parsed = ast.ArgumentList("3, 5, 'hi', x+5, context.get('lala')", **exception_kwargs) - assert parsed.undeclared_identifiers == set(['x', 'context']) - assert [x for x in parsed.args] == ["3", "5", "'hi'", "(x + 5)", "context.get('lala')"] + parsed = ast.ArgumentList("3, 5, 'hi', x+5, " + "context.get('lala')", **exception_kwargs) + eq_(parsed.undeclared_identifiers, set(['x', 'context'])) + eq_([x for x in parsed.args], + ["3", "5", "'hi'", "(x + 5)", "context.get('lala')"]) parsed = ast.ArgumentList("h", **exception_kwargs) - assert parsed.args == ["h"] + eq_(parsed.args, ["h"]) def test_function_decl(self): """test getting the arguments from a function""" code = "def foo(a, b, c=None, d='hi', e=x, f=y+7):pass" parsed = ast.FunctionDecl(code, **exception_kwargs) - assert parsed.funcname=='foo' - assert parsed.argnames==['a', 'b', 'c', 'd', 'e', 'f'] + eq_(parsed.funcname, 'foo') + eq_(parsed.argnames, + ['a', 'b', 'c', 'd', 'e', 'f']) def test_function_decl_2(self): """test getting the arguments from a function""" code = "def foo(a, b, c=None, *args, **kwargs):pass" parsed = ast.FunctionDecl(code, **exception_kwargs) - assert parsed.funcname=='foo' - assert parsed.argnames==['a', 'b', 'c', 'args', 'kwargs'] - + eq_(parsed.funcname, 'foo') + eq_(parsed.argnames, + ['a', 'b', 'c', 'args', 'kwargs']) + def test_expr_generate(self): """test the round trip of expressions to AST back to python source""" x = 1 y = 2 + class F(object): def bar(self, a,b): return a + b + def lala(arg): return "blah" + arg + local_dict = dict(x=x, y=y, foo=F(), lala=lala) - + code = "str((x+7*y) / foo.bar(5,6)) + lala('ho')" astnode = pyparser.parse(code) newcode = pyparser.ExpressionGenerator(astnode).value() - assert (eval(code, local_dict) == eval(newcode, local_dict)) - + eq_(eval(code, local_dict), eval(newcode, local_dict)) + a = ["one", "two", "three"] - hoho = {'somevalue':"asdf"} - g = [1,2,3,4,5] - local_dict = dict(a=a,hoho=hoho,g=g) - code = "a[2] + hoho['somevalue'] + repr(g[3:5]) + repr(g[3:]) + repr(g[:5])" + hoho = {'somevalue': "asdf"} + g = [1, 2, 3, 4, 5] + local_dict = dict(a=a, hoho=hoho, g=g) + code = "a[2] + hoho['somevalue'] + "\ + "repr(g[3:5]) + repr(g[3:]) + repr(g[:5])" astnode = pyparser.parse(code) newcode = pyparser.ExpressionGenerator(astnode).value() - assert(eval(code, local_dict) == eval(newcode, local_dict)) - - local_dict={'f':lambda :9, 'x':7} + eq_(eval(code, local_dict), eval(newcode, local_dict)) + + local_dict = {'f': lambda: 9, 'x': 7} code = "x+f()" astnode = pyparser.parse(code) newcode = pyparser.ExpressionGenerator(astnode).value() - assert(eval(code, local_dict)) == eval(newcode, local_dict) + eq_(eval(code, local_dict), eval(newcode, local_dict)) - for code in ["repr({'x':7,'y':18})", "repr([])", "repr({})", "repr([{3:[]}])", "repr({'x':37*2 + len([6,7,8])})", "repr([1, 2, {}, {'x':'7'}])", "repr({'x':-1})", "repr(((1,2,3), (4,5,6)))", "repr(1 and 2 and 3 and 4)", "repr(True and False or 55)", "repr(1 & 2 | 3)", "repr(3//5)", "repr(3^5)", "repr([q.endswith('e') for q in ['one', 'two', 'three']])", "repr([x for x in (5,6,7) if x == 6])", "repr(not False)"]: - local_dict={} + for code in ["repr({'x':7,'y':18})", + "repr([])", + "repr({})", + "repr([{3:[]}])", + "repr({'x':37*2 + len([6,7,8])})", + "repr([1, 2, {}, {'x':'7'}])", + "repr({'x':-1})", "repr(((1,2,3), (4,5,6)))", + "repr(1 and 2 and 3 and 4)", + "repr(True and False or 55)", + "repr(1 & 2 | 3)", + "repr(3//5)", + "repr(3^5)", + "repr([q.endswith('e') for q in " + "['one', 'two', 'three']])", + "repr([x for x in (5,6,7) if x == 6])", + "repr(not False)"]: + local_dict = {} astnode = pyparser.parse(code) newcode = pyparser.ExpressionGenerator(astnode).value() - assert(eval(code, local_dict)) == eval(newcode, local_dict), "%s != %s" % (code, newcode) + eq_(eval(code, local_dict), + eval(newcode, local_dict) + ) - - + +