diff options
-rw-r--r-- | bases.py | 3 | ||||
-rw-r--r-- | test/unittest_builder.py | 21 | ||||
-rw-r--r-- | test/unittest_inference.py | 16 | ||||
-rw-r--r-- | test/unittest_manager.py | 9 | ||||
-rw-r--r-- | test/unittest_nodes.py | 2 | ||||
-rw-r--r-- | test/unittest_scoped_nodes.py | 5 |
6 files changed, 33 insertions, 23 deletions
@@ -50,10 +50,11 @@ except ImportError: class BaseClass: pass -from logilab.common.compat import set +from logilab.common.compat import set, builtins from logilab.astng._exceptions import InferenceError, ASTNGError, \ NotFoundError, UnresolvableName +BUILTINS_NAME = builtins.__name__ class Proxy(BaseClass): """a simple proxy object""" diff --git a/test/unittest_builder.py b/test/unittest_builder.py index 49885fb..b25c1ab 100644 --- a/test/unittest_builder.py +++ b/test/unittest_builder.py @@ -41,7 +41,7 @@ from pprint import pprint from logilab.astng import builder, nodes, MANAGER, \ InferenceError, NotFoundError from logilab.astng.nodes import Module -from logilab.astng.bases import YES +from logilab.astng.bases import YES, BUILTINS_NAME from logilab.astng.nodes_as_string import as_string from unittest_inference import get_name_node @@ -273,14 +273,15 @@ class BuilderTC(TestCase): def test_inspect_build0(self): """test astng tree build from a living object""" - builtin_astng = MANAGER.astng_from_module_name('__builtin__') - fclass = builtin_astng['file'] - self.assert_('name' in fclass) - self.assert_('mode' in fclass) - self.assert_('read' in fclass) - self.assert_(fclass.newstyle) - self.assert_(fclass.pytype(), '__builtin__.type') - self.assertIsInstance(fclass['read'], nodes.Function) + builtin_astng = MANAGER.astng_from_module_name(BUILTINS_NAME) + if sys.version_info < (3, 0): + fclass = builtin_astng['file'] + self.assert_('name' in fclass) + self.assert_('mode' in fclass) + self.assert_('read' in fclass) + self.assert_(fclass.newstyle) + self.assert_(fclass.pytype(), '__builtin__.type') + self.assertIsInstance(fclass['read'], nodes.Function) # check builtin function has args.args == None dclass = builtin_astng['dict'] self.assertEqual(dclass['has_key'].args.args, None) @@ -336,7 +337,7 @@ class BuilderTC(TestCase): self.assert_('filename' in container) def test_inspect_build_type_object(self): - builtin_astng = MANAGER.astng_from_module_name('__builtin__') + builtin_astng = MANAGER.astng_from_module_name(BUILTINS_NAME) infered = list(builtin_astng.igetattr('object')) self.assertEqual(len(infered), 1) diff --git a/test/unittest_inference.py b/test/unittest_inference.py index c257a9c..de78782 100644 --- a/test/unittest_inference.py +++ b/test/unittest_inference.py @@ -21,10 +21,10 @@ from os.path import join, dirname, abspath import sys from StringIO import StringIO from logilab.common.testlib import TestCase, unittest_main -from logilab.common.compat import builtins from logilab.astng import InferenceError, builder, nodes, inference -from logilab.astng.bases import YES, Instance, BoundMethod, UnboundMethod, path_wrapper +from logilab.astng.bases import YES, Instance, BoundMethod, UnboundMethod,\ + path_wrapper, BUILTINS_NAME def get_name_node(start_from, name, index=0): return [n for n in start_from.nodes_of_class(nodes.Name) if n.name == name][index] @@ -45,7 +45,6 @@ class InferenceUtilsTC(TestCase): infer_default(1).next) self.failUnlessEqual(infer_end(1).next(), 1) -BUILTINS_NAME = builtins.__name__ class InferenceTC(TestCase): @@ -395,7 +394,6 @@ l = [1] t = (2,) d = {} s = '' -u = u'' ''' astng = builder.string_build(code, __name__, __file__) n = astng['l'] @@ -426,6 +424,12 @@ u = u'' self.assertIsInstance(infered, Instance) self.failUnlessEqual(infered.name, 'str') self.failUnless('lower' in infered._proxied.locals) + + def test_unicode_type(self): + if sys.version_info >= (3, 0): + self.skipTest('unicode removed on py >= 3.0') + code = '''u = u""''' + astng = builder.string_build(code, __name__, __file__) n = astng['u'] infered = n.infer().next() self.assertIsInstance(infered, nodes.Const) @@ -690,7 +694,7 @@ open("toto.txt") node = get_name_node(astng, 'open', -1) infered = list(node.infer()) self.failUnlessEqual(len(infered), 1) - if open is file: + if sys.version_info < (2, 5): # On python < 2.5 open and file are the same thing. self.assertIsInstance(infered[0], nodes.Class) self.failUnlessEqual(infered[0].name, 'file') @@ -919,7 +923,7 @@ def f(x): def test_python25_relative_import(self): if sys.version_info < (2, 5): self.skipTest('require py >= 2.5') - data = "from ...common import date; print date" + data = "from ...common import date; print (date)" astng = builder.string_build(data, 'logilab.astng.test.unittest_inference', __file__) infered = get_name_node(astng, 'date').infer().next() self.assertIsInstance(infered, nodes.Module) diff --git a/test/unittest_manager.py b/test/unittest_manager.py index 0244dc2..1142146 100644 --- a/test/unittest_manager.py +++ b/test/unittest_manager.py @@ -22,6 +22,7 @@ import os import sys from os.path import join, dirname from logilab.astng.manager import ASTNGManager +from logilab.astng.bases import BUILTINS_NAME class ASTNGManagerTC(unittest.TestCase): @@ -36,13 +37,13 @@ class ASTNGManagerTC(unittest.TestCase): self.assertEqual(astng.pure_python, False) def test_astng_from_class(self): - astng = self.manager.astng_from_class(file) - self.assertEqual(astng.name, 'file') - self.assertEqual(astng.parent.frame().name, '__builtin__') + astng = self.manager.astng_from_class(int) + self.assertEqual(astng.name, 'int') + self.assertEqual(astng.parent.frame().name, BUILTINS_NAME) astng = self.manager.astng_from_class(object) self.assertEqual(astng.name, 'object') - self.assertEqual(astng.parent.frame().name, '__builtin__') + self.assertEqual(astng.parent.frame().name, BUILTINS_NAME) self.failUnless('__setattr__' in astng) def _test_astng_from_zip(self, archive): diff --git a/test/unittest_nodes.py b/test/unittest_nodes.py index 1986afd..3a8fc79 100644 --- a/test/unittest_nodes.py +++ b/test/unittest_nodes.py @@ -143,7 +143,7 @@ class TryFinally25NodeTC(_NodeTC): try: print('pouet') except Exception: - print 'oops' + print ('oops') finally: print ('pouet') """ diff --git a/test/unittest_scoped_nodes.py b/test/unittest_scoped_nodes.py index 2853bf2..4b8c00d 100644 --- a/test/unittest_scoped_nodes.py +++ b/test/unittest_scoped_nodes.py @@ -229,7 +229,10 @@ def sfunction(): self.failIf(astng['sfunction'].is_method()) def test_argnames(self): - code = 'def f(a, (b, c), *args, **kwargs): pass' + if sys.version_info < (3, 0): + code = 'def f(a, (b, c), *args, **kwargs): pass' + else: + code = 'def f(a, b, c, *args, **kwargs): pass' astng = abuilder.string_build(code, __name__, __file__) self.assertEqual(astng['f'].argnames(), ['a', 'b', 'c', 'args', 'kwargs']) |