summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmile Anclin <emile.anclin@logilab.fr>2010-10-07 18:03:26 +0200
committerEmile Anclin <emile.anclin@logilab.fr>2010-10-07 18:03:26 +0200
commitf083c81e2e672238a1d5bd3f0fd40c6ff878969b (patch)
tree01cf0d68378a7a54dc1fb27ccc24745790b47a1d
parent640c94487e47896104ab4d766512eccd57264670 (diff)
downloadastroid-f083c81e2e672238a1d5bd3f0fd40c6ff878969b.tar.gz
py3k: a lot of simple fixes
-rw-r--r--bases.py3
-rw-r--r--test/unittest_builder.py21
-rw-r--r--test/unittest_inference.py16
-rw-r--r--test/unittest_manager.py9
-rw-r--r--test/unittest_nodes.py2
-rw-r--r--test/unittest_scoped_nodes.py5
6 files changed, 33 insertions, 23 deletions
diff --git a/bases.py b/bases.py
index 326852a..5336552 100644
--- a/bases.py
+++ b/bases.py
@@ -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'])