summaryrefslogtreecommitdiff
path: root/astroid/tests/unittest_builder.py
diff options
context:
space:
mode:
Diffstat (limited to 'astroid/tests/unittest_builder.py')
-rw-r--r--astroid/tests/unittest_builder.py72
1 files changed, 38 insertions, 34 deletions
diff --git a/astroid/tests/unittest_builder.py b/astroid/tests/unittest_builder.py
index 4559b35d..252f096f 100644
--- a/astroid/tests/unittest_builder.py
+++ b/astroid/tests/unittest_builder.py
@@ -21,14 +21,18 @@ import os
import sys
import unittest
-from astroid import builder, nodes, InferenceError, NotFoundError
-from astroid.bases import YES, BUILTINS
-from astroid.manager import AstroidManager
+import six
+
+from astroid import bases
+from astroid import builder
+from astroid import exceptions
+from astroid import manager
+from astroid import nodes
from astroid import test_utils
from astroid.tests import resources
-MANAGER = AstroidManager()
-IS_PY3 = sys.version_info[0] == 3
+MANAGER = manager.AstroidManager()
+BUILTINS = six.moves.builtins.__name__
class FromToLineNoTest(unittest.TestCase):
@@ -109,7 +113,7 @@ class FromToLineNoTest(unittest.TestCase):
'(no line number on function args)')
def test_decorated_function_lineno(self):
- astroid = test_utils.build_module('''
+ astroid = builder.parse('''
@decorator
def function(
arg):
@@ -172,7 +176,7 @@ class FromToLineNoTest(unittest.TestCase):
else:
print ("bouh")
'''):
- astroid = test_utils.build_module(code, __name__)
+ astroid = builder.parse(code, __name__)
stmt = astroid.body[0]
self.assertEqual(stmt.fromlineno, 2)
self.assertEqual(stmt.tolineno, 6)
@@ -181,7 +185,7 @@ class FromToLineNoTest(unittest.TestCase):
self.assertEqual(stmt.orelse[0].tolineno, 6)
def test_try_except_lineno(self):
- astroid = test_utils.build_module('''
+ astroid = builder.parse('''
try:
print (a)
except:
@@ -202,7 +206,7 @@ class FromToLineNoTest(unittest.TestCase):
def test_try_finally_lineno(self):
- astroid = test_utils.build_module('''
+ astroid = builder.parse('''
try:
print (a)
finally:
@@ -217,7 +221,7 @@ class FromToLineNoTest(unittest.TestCase):
def test_try_finally_25_lineno(self):
- astroid = test_utils.build_module('''
+ astroid = builder.parse('''
try:
print (a)
except:
@@ -234,7 +238,7 @@ class FromToLineNoTest(unittest.TestCase):
def test_with_lineno(self):
- astroid = test_utils.build_module('''
+ astroid = builder.parse('''
from __future__ import with_statement
with file("/tmp/pouet") as f:
print (f)
@@ -251,11 +255,11 @@ class BuilderTest(unittest.TestCase):
self.builder = builder.AstroidBuilder()
def test_data_build_null_bytes(self):
- with self.assertRaises(builder.AstroidBuildingException):
+ with self.assertRaises(exceptions.AstroidBuildingException):
self.builder.string_build('\x00')
def test_data_build_invalid_x_escape(self):
- with self.assertRaises(builder.AstroidBuildingException):
+ with self.assertRaises(exceptions.AstroidBuildingException):
self.builder.string_build('"\\x1"')
def test_missing_newline(self):
@@ -263,13 +267,13 @@ class BuilderTest(unittest.TestCase):
resources.build_file('data/noendingnewline.py')
def test_missing_file(self):
- with self.assertRaises(builder.AstroidBuildingException):
+ with self.assertRaises(exceptions.AstroidBuildingException):
resources.build_file('data/inexistant.py')
def test_inspect_build0(self):
"""test astroid tree build from a living object"""
builtin_ast = MANAGER.ast_from_module_name(BUILTINS)
- if not IS_PY3:
+ if six.PY2:
fclass = builtin_ast['file']
self.assertIn('name', fclass)
self.assertIn('mode', fclass)
@@ -294,7 +298,7 @@ class BuilderTest(unittest.TestCase):
self.assertIsInstance(builtin_ast['None'], nodes.Const)
self.assertIsInstance(builtin_ast['True'], nodes.Const)
self.assertIsInstance(builtin_ast['False'], nodes.Const)
- if IS_PY3:
+ if six.PY3:
self.assertIsInstance(builtin_ast['Exception'], nodes.ClassDef)
self.assertIsInstance(builtin_ast['NotImplementedError'], nodes.ClassDef)
else:
@@ -417,8 +421,8 @@ class BuilderTest(unittest.TestCase):
class F:
"new style"
'''
- mod_ast = test_utils.build_module(data, __name__)
- if IS_PY3:
+ mod_ast = builder.parse(data, __name__)
+ if six.PY3:
self.assertTrue(mod_ast['A'].newstyle)
self.assertTrue(mod_ast['B'].newstyle)
self.assertTrue(mod_ast['E'].newstyle)
@@ -442,14 +446,14 @@ class BuilderTest(unittest.TestCase):
global CSTE2
print (CSTE)
'''
- astroid = test_utils.build_module(data, __name__)
+ astroid = builder.parse(data, __name__)
self.assertEqual(len(astroid.getattr('CSTE')), 2)
self.assertIsInstance(astroid.getattr('CSTE')[0], nodes.AssignName)
self.assertEqual(astroid.getattr('CSTE')[0].fromlineno, 2)
self.assertEqual(astroid.getattr('CSTE')[1].fromlineno, 6)
- with self.assertRaises(NotFoundError):
+ with self.assertRaises(exceptions.NotFoundError):
astroid.getattr('CSTE2')
- with self.assertRaises(InferenceError):
+ with self.assertRaises(exceptions.InferenceError):
next(astroid['global_no_effect'].ilookup('CSTE2'))
@unittest.skipIf(os.name == 'java',
@@ -471,25 +475,25 @@ class BuilderTest(unittest.TestCase):
def test_gen_expr_var_scope(self):
data = 'l = list(n for n in range(10))\n'
- astroid = test_utils.build_module(data, __name__)
+ astroid = builder.parse(data, __name__)
# n unavailable outside gen expr scope
self.assertNotIn('n', astroid)
# test n is inferable anyway
n = test_utils.get_name_node(astroid, 'n')
self.assertIsNot(n.scope(), astroid)
self.assertEqual([i.__class__ for i in n.infer()],
- [YES.__class__])
+ [bases.YES.__class__])
def test_no_future_imports(self):
- mod = test_utils.build_module("import sys")
+ mod = builder.parse("import sys")
self.assertEqual(set(), mod.future_imports)
def test_future_imports(self):
- mod = test_utils.build_module("from __future__ import print_function")
+ mod = builder.parse("from __future__ import print_function")
self.assertEqual(set(['print_function']), mod.future_imports)
def test_two_future_imports(self):
- mod = test_utils.build_module("""
+ mod = builder.parse("""
from __future__ import print_function
from __future__ import absolute_import
""")
@@ -504,7 +508,7 @@ class BuilderTest(unittest.TestCase):
print (self)
A.assign_type = A_assign_type
'''
- astroid = test_utils.build_module(code)
+ astroid = builder.parse(code)
lclass = list(astroid.igetattr('A'))
self.assertEqual(len(lclass), 1)
lclass = lclass[0]
@@ -512,7 +516,7 @@ class BuilderTest(unittest.TestCase):
self.assertIn('type', lclass.locals)
def test_augassign_attr(self):
- test_utils.build_module("""
+ builder.parse("""
class Counter:
v = 0
def inc(self):
@@ -528,7 +532,7 @@ class BuilderTest(unittest.TestCase):
def func2(a={}):
a.custom_attr = 0
'''
- test_utils.build_module(code)
+ builder.parse(code)
nonetype = nodes.const_factory(None)
self.assertNotIn('custom_attr', nonetype.locals)
self.assertNotIn('custom_attr', nonetype.instance_attrs)
@@ -538,13 +542,13 @@ class BuilderTest(unittest.TestCase):
def test_asstuple(self):
code = 'a, b = range(2)'
- astroid = test_utils.build_module(code)
+ astroid = builder.parse(code)
self.assertIn('b', astroid.locals)
code = '''
def visit_if(self, node):
node.test, body = node.tests[0]
'''
- astroid = test_utils.build_module(code)
+ astroid = builder.parse(code)
self.assertIn('body', astroid['visit_if'].locals)
def test_build_constants(self):
@@ -555,7 +559,7 @@ class BuilderTest(unittest.TestCase):
return
return 'None'
'''
- astroid = test_utils.build_module(code)
+ astroid = builder.parse(code)
none, nothing, chain = [ret.value for ret in astroid.body[0].body]
self.assertIsInstance(none, nodes.Const)
self.assertIsNone(none.value)
@@ -650,7 +654,7 @@ class FileBuildTest(unittest.TestCase):
self.assertEqual(klass.parent.frame(), module)
self.assertEqual(klass.root(), module)
self.assertEqual(klass.basenames, [])
- if IS_PY3:
+ if six.PY3:
self.assertTrue(klass.newstyle)
else:
self.assertFalse(klass.newstyle)
@@ -728,7 +732,7 @@ class ModuleBuildTest(resources.SysPathSetup, FileBuildTest):
else:
self.module = abuilder.module_build(data.module, 'data.module')
-@unittest.skipIf(IS_PY3, "guess_encoding not used on Python 3")
+@unittest.skipIf(six.PY3, "guess_encoding not used on Python 3")
class TestGuessEncoding(unittest.TestCase):
def setUp(self):
self.guess_encoding = builder._guess_encoding