summaryrefslogtreecommitdiff
path: root/astroid
diff options
context:
space:
mode:
authorClaudiu Popa <cpopa@cloudbasesolutions.com>2015-07-11 18:12:18 +0300
committerClaudiu Popa <cpopa@cloudbasesolutions.com>2015-07-11 18:12:18 +0300
commit90ef70abfa57397ce34aab4e9b23a7623e48d66f (patch)
treef1614b9ea928b561d14ad725f6242fed40d79710 /astroid
parentbd25fc260e6f66086746eec57ccfe87d6fd56aaa (diff)
downloadastroid-git-90ef70abfa57397ce34aab4e9b23a7623e48d66f.tar.gz
Add a new convenience API, `astroid.parse`.
This API can be used to retrieve an astroid AST from a source code string, similar to how ast.parse can be used to obtain a Python AST from a source string. This is the test_utils.build_module promoted to a public API.
Diffstat (limited to 'astroid')
-rw-r--r--astroid/__init__.py1
-rw-r--r--astroid/builder.py13
-rw-r--r--astroid/test_utils.py17
-rw-r--r--astroid/tests/unittest_brain.py11
-rw-r--r--astroid/tests/unittest_builder.py36
-rw-r--r--astroid/tests/unittest_helpers.py3
-rw-r--r--astroid/tests/unittest_inference.py99
-rw-r--r--astroid/tests/unittest_lookup.py29
-rw-r--r--astroid/tests/unittest_nodes.py14
-rw-r--r--astroid/tests/unittest_peephole.py3
-rw-r--r--astroid/tests/unittest_scoped_nodes.py87
11 files changed, 159 insertions, 154 deletions
diff --git a/astroid/__init__.py b/astroid/__init__.py
index 65300756..c00c678c 100644
--- a/astroid/__init__.py
+++ b/astroid/__init__.py
@@ -63,6 +63,7 @@ from astroid import raw_building
from astroid.bases import YES, Instance, BoundMethod, UnboundMethod
from astroid.node_classes import are_exclusive, unpack_infer
from astroid.scoped_nodes import builtin_lookup
+from astroid.builder import parse
# make a manager instance (borg) accessible from astroid package
from astroid.manager import AstroidManager
diff --git a/astroid/builder.py b/astroid/builder.py
index 7f3a0661..8f0a1d07 100644
--- a/astroid/builder.py
+++ b/astroid/builder.py
@@ -25,6 +25,7 @@ from __future__ import with_statement
import _ast
import os
import sys
+import textwrap
from astroid import bases
from astroid import exceptions
@@ -233,3 +234,15 @@ class AstroidBuilder(raw_building.InspectBuilder):
values.append(node)
except exceptions.InferenceError:
pass
+
+
+def parse(code, module_name='', path=None):
+ """Parses a source string in order to obtain an astroid AST from it
+
+ :param str code: The code for the module.
+ :param str module_name: The name for the module, if any
+ :param str path: The path for the module
+ """
+ code = textwrap.dedent(code)
+ return AstroidBuilder(MANAGER).string_build(
+ code, modname=module_name, path=path)
diff --git a/astroid/test_utils.py b/astroid/test_utils.py
index 19bd7b96..e45177a4 100644
--- a/astroid/test_utils.py
+++ b/astroid/test_utils.py
@@ -152,7 +152,7 @@ def extract_node(code, module_name=''):
if line.strip().endswith(_STATEMENT_SELECTOR):
requested_lines.append(idx + 1)
- tree = build_module(code, module_name=module_name)
+ tree = builder.parse(code, module_name=module_name)
extracted = []
if requested_lines:
for line in requested_lines:
@@ -171,21 +171,6 @@ def extract_node(code, module_name=''):
return extracted
-def build_module(code, module_name='', path=None):
- """Parses a string module with a builder.
- :param code: The code for the module.
- :type code: str
- :param module_name: The name for the module
- :type module_name: str
- :param path: The path for the module
- :type module_name: str
- :returns: The module AST.
- :rtype: astroid.bases.NodeNG
- """
- code = textwrap.dedent(code)
- return builder.AstroidBuilder(None).string_build(code, modname=module_name, path=path)
-
-
def require_version(minver=None, maxver=None):
""" Compare version of python interpreter to the given one. Skip the test
if older.
diff --git a/astroid/tests/unittest_brain.py b/astroid/tests/unittest_brain.py
index 543f584e..978486cf 100644
--- a/astroid/tests/unittest_brain.py
+++ b/astroid/tests/unittest_brain.py
@@ -22,6 +22,7 @@ import six
from astroid import MANAGER
from astroid import bases
+from astroid import builder
from astroid import nodes
from astroid import test_utils
import astroid
@@ -277,7 +278,7 @@ class MultiprocessingBrainTest(unittest.TestCase):
def test_multiprocessing_manager(self):
# Test that we have the proper attributes
# for a multiprocessing.managers.SyncManager
- module = test_utils.build_module("""
+ module = builder.parse("""
import multiprocessing
manager = multiprocessing.Manager()
queue = manager.Queue()
@@ -335,7 +336,7 @@ class MultiprocessingBrainTest(unittest.TestCase):
class EnumBrainTest(unittest.TestCase):
def test_simple_enum(self):
- module = test_utils.build_module("""
+ module = builder.parse("""
import enum
class MyEnum(enum.Enum):
@@ -360,7 +361,7 @@ class EnumBrainTest(unittest.TestCase):
self.assertIsInstance(meth, astroid.Function)
def test_enum_multiple_base_classes(self):
- module = test_utils.build_module("""
+ module = builder.parse("""
import enum
class Mixin:
@@ -377,7 +378,7 @@ class EnumBrainTest(unittest.TestCase):
'Enum instance should share base classes with generating class')
def test_int_enum(self):
- module = test_utils.build_module("""
+ module = builder.parse("""
import enum
class MyEnum(enum.IntEnum):
@@ -396,7 +397,7 @@ class EnumBrainTest(unittest.TestCase):
@unittest.skipUnless(HAS_DATEUTIL, "This test requires the dateutil library.")
class DateutilBrainTest(unittest.TestCase):
def test_parser(self):
- module = test_utils.build_module("""
+ module = builder.parse("""
from dateutil.parser import parse
d = parse('2000-01-01')
""")
diff --git a/astroid/tests/unittest_builder.py b/astroid/tests/unittest_builder.py
index 21266506..65dd1908 100644
--- a/astroid/tests/unittest_builder.py
+++ b/astroid/tests/unittest_builder.py
@@ -110,7 +110,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):
@@ -173,7 +173,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)
@@ -182,7 +182,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:
@@ -203,7 +203,7 @@ class FromToLineNoTest(unittest.TestCase):
def test_try_finally_lineno(self):
- astroid = test_utils.build_module('''
+ astroid = builder.parse('''
try:
print (a)
finally:
@@ -218,7 +218,7 @@ class FromToLineNoTest(unittest.TestCase):
def test_try_finally_25_lineno(self):
- astroid = test_utils.build_module('''
+ astroid = builder.parse('''
try:
print (a)
except:
@@ -235,7 +235,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)
@@ -418,7 +418,7 @@ class BuilderTest(unittest.TestCase):
class F:
"new style"
'''
- mod_ast = test_utils.build_module(data, __name__)
+ mod_ast = builder.parse(data, __name__)
if IS_PY3:
self.assertTrue(mod_ast['A'].newstyle)
self.assertTrue(mod_ast['B'].newstyle)
@@ -443,7 +443,7 @@ 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.AssName)
self.assertEqual(astroid.getattr('CSTE')[0].fromlineno, 2)
@@ -472,7 +472,7 @@ 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
@@ -482,15 +482,15 @@ class BuilderTest(unittest.TestCase):
[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
""")
@@ -505,7 +505,7 @@ class BuilderTest(unittest.TestCase):
print (self)
A.ass_type = A_ass_type
'''
- astroid = test_utils.build_module(code)
+ astroid = builder.parse(code)
lclass = list(astroid.igetattr('A'))
self.assertEqual(len(lclass), 1)
lclass = lclass[0]
@@ -513,7 +513,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):
@@ -529,7 +529,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)
@@ -539,13 +539,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):
@@ -556,7 +556,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)
diff --git a/astroid/tests/unittest_helpers.py b/astroid/tests/unittest_helpers.py
index 9ba3e6b3..a69c1361 100644
--- a/astroid/tests/unittest_helpers.py
+++ b/astroid/tests/unittest_helpers.py
@@ -22,6 +22,7 @@ import six
from six.moves import builtins
from astroid import bases
+from astroid import builder
from astroid import helpers
from astroid import manager
from astroid import raw_building
@@ -117,7 +118,7 @@ class TestHelpers(unittest.TestCase):
@test_utils.require_version(minver='3.0')
def test_object_type_metaclasses(self):
- module = test_utils.build_module('''
+ module = builder.parse('''
import abc
class Meta(metaclass=abc.ABCMeta):
pass
diff --git a/astroid/tests/unittest_inference.py b/astroid/tests/unittest_inference.py
index eba665c8..df048b74 100644
--- a/astroid/tests/unittest_inference.py
+++ b/astroid/tests/unittest_inference.py
@@ -25,6 +25,7 @@ import unittest
import six
from astroid import InferenceError, builder, nodes
+from astroid.builder import parse
from astroid.inference import infer_end as inference_infer_end
from astroid.bases import YES, Instance, BoundMethod, UnboundMethod,\
path_wrapper, BUILTINS
@@ -123,10 +124,10 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
a, b= b, a # Gasp !
'''
- ast = test_utils.build_module(CODE, __name__)
+ ast = parse(CODE, __name__)
def test_infer_abstract_property_return_values(self):
- module = test_utils.build_module('''
+ module = parse('''
import abc
class A(object):
@@ -362,7 +363,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
a = f()
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
a = ast['a']
a_infered = a.infered()
self.assertEqual(a_infered[0].value, 1)
@@ -392,7 +393,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
ex2 = ex
raise
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
ex1 = ast['ex1']
ex1_infer = ex1.infer()
ex1 = next(ex1_infer)
@@ -422,7 +423,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
a = 2
d = a
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
n = ast['b']
n_infer = n.infer()
infered = next(n_infer)
@@ -447,7 +448,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
s = ''
s2 = '_'
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
n = ast['l']
infered = next(n.infer())
self.assertIsInstance(infered, nodes.List)
@@ -481,7 +482,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
self.assertEqual(infered.getitem(0).value, '_')
code = 's = {1}'
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
n = ast['s']
infered = next(n.infer())
self.assertIsInstance(infered, nodes.Set)
@@ -492,7 +493,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
@test_utils.require_version(maxver='3.0')
def test_unicode_type(self):
code = '''u = u""'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
n = ast['u']
infered = next(n.infer())
self.assertIsInstance(infered, nodes.Const)
@@ -507,7 +508,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
statm = staticmethod(open)
clsm = classmethod('whatever')
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
statm = next(ast['A'].igetattr('statm'))
self.assertTrue(statm.callable())
clsm = next(ast['A'].igetattr('clsm'))
@@ -518,7 +519,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
class Warning(Warning):
pass
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
w = ast['Warning']
ancestors = w.ancestors()
ancestor = next(ancestors)
@@ -540,7 +541,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
from astroid.modutils import load_module_from_name
xxx = load_module_from_name('__pkginfo__')
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
xxx = ast['xxx']
self.assertSetEqual({n.__class__ for n in xxx.infered()},
{nodes.Const, YES.__class__})
@@ -556,7 +557,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
kwargs['e_type'] = e_type.capitalize().encode()
print(args)
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
arg = test_utils.get_name_node(ast['ErudiEntitySchema']['__init__'], 'e_type')
self.assertEqual([n.__class__ for n in arg.infer()],
[YES.__class__])
@@ -621,7 +622,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
if ok:
fct(a_line)
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
self.assertEqual(len(list(ast['process_line'].infer_call_result(None))), 3)
self.assertEqual(len(list(ast['tupletest'].infer())), 3)
values = ['Function(first_word)', 'Function(last_word)', 'Const(NoneType)']
@@ -657,7 +658,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
something = 1.0j
return something.conjugate()
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
values = [i.value for i in test_utils.get_name_node(ast, 'something', -1).infer()]
self.assertEqual(values, [1.0, 1.0j])
@@ -715,7 +716,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
self.assertEqual(inferred.value, 97)
def test_simple_tuple(self):
- module = test_utils.build_module("""
+ module = parse("""
a = (1,)
b = (22,)
some = a + b #@
@@ -736,7 +737,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
print ([(d,e) for e,d in ([1,2], [3,4])])
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
self.assertEqual([i.value for i in
test_utils.get_name_node(ast, 'a', -1).infer()], [1, 2, 3])
self.assertEqual([i.value for i in
@@ -752,7 +753,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
code = '''
print ((d,e) for e,d in ([1,2], [3,4]))
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
self.assertEqual([i.value for i in
test_utils.get_name_node(ast, 'd', -1).infer()], [2, 4])
self.assertEqual([i.value for i in
@@ -795,7 +796,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
un = mirror(1)
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
infered = list(ast.igetattr('un'))
self.assertEqual(len(infered), 1)
self.assertIsInstance(infered[0], nodes.Const)
@@ -807,7 +808,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
un = mirror(1)
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
infered = list(ast.igetattr('mirror'))
self.assertEqual(len(infered), 1)
self.assertIsInstance(infered[0], nodes.Lambda)
@@ -829,7 +830,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
sub = Sub.instance()
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
infered = list(ast.igetattr('sub'))
self.assertEqual(len(infered), 1)
self.assertIsInstance(infered[0], Instance)
@@ -844,7 +845,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
from os.path import exists as e
assert e(__file__)
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
infered = list(ast.igetattr('osp'))
self.assertEqual(len(infered), 1)
self.assertIsInstance(infered[0], nodes.Module)
@@ -1020,7 +1021,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
x = randint(1)
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
infered = list(ast.igetattr('x'))
self.assertEqual(len(infered), 2)
value = [str(v) for v in infered]
@@ -1047,7 +1048,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
def f(x):
a = ()[x]
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
infered = list(ast['f'].ilookup('a'))
self.assertEqual(len(infered), 1)
self.assertEqual(infered[0], YES)
@@ -1066,7 +1067,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
def __init__(self):
self.attr = 41
"""
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
foo_class = ast['Foo']
bar_class = ast['Bar']
bar_self = ast['Bar']['__init__']['self']
@@ -1131,7 +1132,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
print(Browser)
b = Browser()
'''
- ast = test_utils.build_module(data, __name__)
+ ast = parse(data, __name__)
browser = next(test_utils.get_name_node(ast, 'Browser').infer())
self.assertIsInstance(browser, nodes.Class)
bopen = list(browser.igetattr('open'))
@@ -1163,7 +1164,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
my_me = SendMailController().me
'''
decorators = set(['%s.property' % BUILTINS])
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
self.assertEqual(ast['SendMailController']['smtp'].decoratornames(),
decorators)
propinfered = list(ast.body[2].value.infer())
@@ -1193,7 +1194,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
pactions = EnvBasedTC.pactions.im_func
print (pactions)
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
pactions = test_utils.get_name_node(ast, 'pactions')
infered = list(pactions.infer())
self.assertEqual(len(infered), 1)
@@ -1209,7 +1210,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
a += 2
print (a)
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
infered = list(test_utils.get_name_node(ast, 'a').infer())
self.assertEqual(len(infered), 1)
@@ -1226,7 +1227,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
spam = bar(None, qux)
print (spam)
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
infered = list(test_utils.get_name_node(ast['foo'], 'spam').infer())
self.assertEqual(len(infered), 1)
self.assertIs(infered[0], YES)
@@ -1251,7 +1252,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
p = self.app
print (p)
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
infered = list(Instance(ast['DataManager']).igetattr('app'))
self.assertEqual(len(infered), 2, infered) # None / Instance(Application)
infered = list(test_utils.get_name_node(ast['DataManager']['test'], 'p').infer())
@@ -1277,7 +1278,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
Z = test()
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
infered = next(ast['Z'].infer())
self.assertIsInstance(infered, nodes.List)
self.assertEqual(len(infered.elts), 0)
@@ -1293,7 +1294,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
n = NewTest()
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
self.assertRaises(InferenceError, list, ast['NewTest'].igetattr('arg'))
n = next(ast['n'].infer())
infered = list(n.igetattr('arg'))
@@ -1306,7 +1307,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
class Xxx(nonregr.Aaa, nonregr.Ccc):
"doc"
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
parents = list(ast['Xxx'].ancestors())
self.assertEqual(len(parents), 3, parents) # Aaa, Ccc, object
@@ -1316,7 +1317,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
A = namedtuple('A', ['a', 'b'])
B = namedtuple('B', 'a b')
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
aclass = ast['A'].infered()[0]
self.assertIsInstance(aclass, nodes.Class)
self.assertIn('a', aclass.instance_attrs)
@@ -1348,7 +1349,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
empty = A.empty()
empty_list = A().empty_method()
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
int_node = ast['x'].infered()[0]
self.assertIsInstance(int_node, nodes.Const)
self.assertEqual(int_node.value, 1)
@@ -1369,7 +1370,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
vararg = args
kwarg = kwargs
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
func = ast['test']
vararg = func.body[0].value
kwarg = func.body[1].value
@@ -1393,7 +1394,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
"""
# Test that inferring Thread.__init__ looks up in
# the nested scope.
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
callfunc = next(ast.nodes_of_class(nodes.CallFunc))
func = callfunc.func
infered = func.infered()[0]
@@ -1409,7 +1410,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
sub = a - b
mul = a * b
"""
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
sub = ast['sub'].infered()[0]
mul = ast['mul'].infered()[0]
self.assertIs(sub, YES)
@@ -1428,7 +1429,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
sub = a - b
mul = a * b
"""
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
sub = ast['sub'].infered()[0]
mul = ast['mul'].infered()[0]
self.assertIs(sub, YES)
@@ -1448,7 +1449,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
sub = a - b
mul = a * b
"""
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
sub = ast['sub'].infered()[0]
mul = ast['mul'].infered()[0]
self.assertIs(sub, YES)
@@ -1466,7 +1467,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
b = A()
c = a * b
"""
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
node = ast['c']
self.assertEqual(node.infered(), [YES])
@@ -1488,7 +1489,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
def do_a_thing():
pass
"""
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
node = ast['do_a_thing']
self.assertEqual(node.type, 'function')
@@ -1768,7 +1769,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
return "second"
'''
- ast = test_utils.build_module(code, __name__)
+ ast = parse(code, __name__)
bases = ast['Second'].bases[0]
inferred = next(bases.infer())
self.assertTrue(inferred)
@@ -1776,7 +1777,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
self.assertEqual(inferred.qname(), 'collections.Counter')
def test_inferring_with_statement_failures(self):
- module = test_utils.build_module('''
+ module = parse('''
class NoEnter(object):
pass
class NoMethod(object):
@@ -1797,7 +1798,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
self.assertRaises(InferenceError, next, module['no_elts'].infer())
def test_inferring_with_statement(self):
- module = test_utils.build_module('''
+ module = parse('''
class SelfContext(object):
def __enter__(self):
return self
@@ -1848,7 +1849,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
self.assertEqual(inferred.value, 2)
def test_inferring_with_contextlib_contextmanager(self):
- module = test_utils.build_module('''
+ module = parse('''
import contextlib
from contextlib import contextmanager
@@ -1906,7 +1907,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
# indices. This is the case of contextlib.nested, where the
# result is a list, which is mutated later on, so it's
# undetected by astroid.
- module = test_utils.build_module('''
+ module = parse('''
class Manager(object):
def __enter__(self):
return []
@@ -1916,7 +1917,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
self.assertRaises(InferenceError, next, module['a'].infer())
def test_inferring_with_contextlib_contextmanager_failures(self):
- module = test_utils.build_module('''
+ module = parse('''
from contextlib import contextmanager
def no_decorators_mgr():
@@ -2144,7 +2145,7 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
def test_bool_value(self):
# Verify the truth value of nodes.
- module = test_utils.build_module('''
+ module = parse('''
import collections
collections_module = collections
def function(): pass
diff --git a/astroid/tests/unittest_lookup.py b/astroid/tests/unittest_lookup.py
index cec8de37..42c50d6b 100644
--- a/astroid/tests/unittest_lookup.py
+++ b/astroid/tests/unittest_lookup.py
@@ -24,6 +24,7 @@ import unittest
from astroid import nodes, InferenceError, NotFoundError, UnresolvableName
from astroid.scoped_nodes import builtin_lookup
from astroid.bases import YES
+from astroid import builder
from astroid import test_utils
from astroid.tests import resources
@@ -48,7 +49,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
def func():
c = 1
'''
- astroid = test_utils.build_module(code, __name__)
+ astroid = builder.parse(code, __name__)
# a & b
a = next(astroid.nodes_of_class(nodes.Name))
self.assertEqual(a.lineno, 2)
@@ -72,7 +73,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
self.assertEqual(len(func.lookup('c')[1]), 1)
def test_module(self):
- astroid = test_utils.build_module('pass', __name__)
+ astroid = builder.parse('pass', __name__)
# built-in objects
none = next(astroid.ilookup('None'))
self.assertIsNone(none.value)
@@ -92,7 +93,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
class A(A):
pass
'''
- astroid = test_utils.build_module(code, __name__)
+ astroid = builder.parse(code, __name__)
cls1 = astroid.locals['A'][0]
cls2 = astroid.locals['A'][1]
name = next(cls2.nodes_of_class(nodes.Name))
@@ -132,7 +133,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
def test_loopvar_hiding(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
x = 10
for x in range(5):
print (x)
@@ -148,7 +149,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
self.assertEqual(len(xnames[2].lookup('x')[1]), 2)
def test_list_comps(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
print ([ i for i in range(10) ])
print ([ i for i in range(10) ])
print ( list( i for i in range(10) ) )
@@ -163,7 +164,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
def test_list_comp_target(self):
"""test the list comprehension target"""
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
ten = [ var for var in range(10) ]
var
""")
@@ -174,7 +175,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
self.assertRaises(UnresolvableName, var.infered)
def test_dict_comps(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
print ({ i: j for i in range(10) for j in range(10) })
print ({ i: j for i in range(10) for j in range(10) })
""", __name__)
@@ -191,7 +192,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
self.assertEqual(xnames[1].lookup('i')[1][0].lineno, 3)
def test_set_comps(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
print ({ i for i in range(10) })
print ({ i for i in range(10) })
""", __name__)
@@ -202,7 +203,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
self.assertEqual(xnames[1].lookup('i')[1][0].lineno, 3)
def test_set_comp_closure(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
ten = { var for var in range(10) }
var
""")
@@ -210,7 +211,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
self.assertRaises(UnresolvableName, var.infered)
def test_generator_attributes(self):
- tree = test_utils.build_module("""
+ tree = builder.parse("""
def count():
"test"
yield 0
@@ -240,7 +241,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
class NoName: pass
p3 = NoName()
'''
- astroid = test_utils.build_module(code, __name__)
+ astroid = builder.parse(code, __name__)
p1 = next(astroid['p1'].infer())
self.assertTrue(p1.getattr('__name__'))
p2 = next(astroid['p2'].infer())
@@ -251,7 +252,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
def test_function_module_special(self):
- astroid = test_utils.build_module('''
+ astroid = builder.parse('''
def initialize(linter):
"""initialize linter with checkers in this package """
package_load(linter, __path__[0])
@@ -322,7 +323,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
def __init__(self):
print (FileA.funcA())
'''
- astroid = test_utils.build_module(code, __name__)
+ astroid = builder.parse(code, __name__)
it = astroid['Test']['__init__'].ilookup('FileA')
obj = next(it)
self.assertIsInstance(obj, nodes.Class)
@@ -343,7 +344,7 @@ class LookupTest(resources.SysPathSetup, unittest.TestCase):
def run1():
f = Frobble()
'''
- astroid = test_utils.build_module(code, __name__)
+ astroid = builder.parse(code, __name__)
stmts = astroid['run2'].lookup('Frobbel')[1]
self.assertEqual(len(stmts), 0)
stmts = astroid['run1'].lookup('Frobbel')[1]
diff --git a/astroid/tests/unittest_nodes.py b/astroid/tests/unittest_nodes.py
index 3e53750b..86e42b85 100644
--- a/astroid/tests/unittest_nodes.py
+++ b/astroid/tests/unittest_nodes.py
@@ -159,7 +159,7 @@ class _NodeTest(unittest.TestCase):
try:
return self.__class__.__dict__['CODE_Astroid']
except KeyError:
- astroid = test_utils.build_module(self.CODE)
+ astroid = builder.parse(self.CODE)
self.__class__.CODE_Astroid = astroid
return astroid
@@ -359,7 +359,7 @@ from ..cave import wine\n\n"""
except PickleError:
pass
'''
- astroid = test_utils.build_module(code)
+ astroid = builder.parse(code)
handler_type = astroid.body[1].handlers[0].type
excs = list(unpack_infer(handler_type))
@@ -435,9 +435,9 @@ class NameNodeTest(unittest.TestCase):
"""
if sys.version_info >= (3, 0):
with self.assertRaises(AstroidBuildingException):
- test_utils.build_module(code)
+ builder.parse(code)
else:
- ast = test_utils.build_module(code)
+ ast = builder.parse(code)
ass_true = ast['True']
self.assertIsInstance(ass_true, nodes.AssName)
self.assertEqual(ass_true.name, "True")
@@ -448,7 +448,7 @@ class NameNodeTest(unittest.TestCase):
class ArgumentsNodeTC(unittest.TestCase):
def test_linenumbering(self):
- ast = test_utils.build_module('''
+ ast = builder.parse('''
def func(a,
b): pass
x = lambda x: None
@@ -481,7 +481,7 @@ class UnboundMethodNodeTest(unittest.TestCase):
# https://bitbucket.org/logilab/astroid/issue/91, which tests
# that UnboundMethod doesn't call super when doing .getattr.
- ast = test_utils.build_module('''
+ ast = builder.parse('''
class A(object):
def test(self):
pass
@@ -498,7 +498,7 @@ class UnboundMethodNodeTest(unittest.TestCase):
class BoundMethodNodeTest(unittest.TestCase):
def test_is_property(self):
- ast = test_utils.build_module('''
+ ast = builder.parse('''
import abc
def cached_property():
diff --git a/astroid/tests/unittest_peephole.py b/astroid/tests/unittest_peephole.py
index aa8c6aef..68a00633 100644
--- a/astroid/tests/unittest_peephole.py
+++ b/astroid/tests/unittest_peephole.py
@@ -24,6 +24,7 @@ import unittest
import astroid
from astroid import astpeephole
+from astroid import builder
from astroid import manager
from astroid import test_utils
from astroid.tests import resources
@@ -104,7 +105,7 @@ class PeepholeOptimizer(unittest.TestCase):
def test_optimisation_disabled(self):
try:
MANAGER.optimize_ast = False
- module = test_utils.build_module("""
+ module = builder.parse("""
'1' + '2' + '3'
""")
self.assertIsInstance(module.body[0], astroid.Discard)
diff --git a/astroid/tests/unittest_scoped_nodes.py b/astroid/tests/unittest_scoped_nodes.py
index f995661d..2e946a36 100644
--- a/astroid/tests/unittest_scoped_nodes.py
+++ b/astroid/tests/unittest_scoped_nodes.py
@@ -34,6 +34,7 @@ from astroid.bases import (
BUILTINS, Instance,
BoundMethod, UnboundMethod, Generator
)
+from astroid import builder
from astroid import __pkginfo__
from astroid import test_utils
from astroid.tests import resources
@@ -108,7 +109,7 @@ class ModuleNodeTest(ModuleLoader, unittest.TestCase):
res = sorted(m.wildcard_import_names())
self.assertEqual(res, ['Aaa', 'func', 'name', 'other'])
- m = test_utils.build_module('''
+ m = builder.parse('''
from missing import tzop
trop = "test"
__all__ = (trop, "test1", tzop, 42)
@@ -116,7 +117,7 @@ class ModuleNodeTest(ModuleLoader, unittest.TestCase):
res = sorted(m.wildcard_import_names())
self.assertEqual(res, ["test", "test1"])
- m = test_utils.build_module('''
+ m = builder.parse('''
test = tzop = 42
__all__ = ('test', ) + ('tzop', )
''')
@@ -129,7 +130,7 @@ class ModuleNodeTest(ModuleLoader, unittest.TestCase):
appli += 2
del appli
'''
- astroid = test_utils.build_module(data, __name__)
+ astroid = builder.parse(data, __name__)
# test del statement not returned by getattr
self.assertEqual(len(astroid.getattr('appli')), 2,
astroid.getattr('appli'))
@@ -161,7 +162,7 @@ class ModuleNodeTest(ModuleLoader, unittest.TestCase):
def test_import_1(self):
data = '''from . import subpackage'''
sys.path.insert(0, resources.find('data'))
- astroid = test_utils.build_module(data, 'package', 'data/package/__init__.py')
+ astroid = builder.parse(data, 'package', 'data/package/__init__.py')
try:
m = astroid.import_module('', level=1)
self.assertEqual(m.name, 'package')
@@ -174,7 +175,7 @@ class ModuleNodeTest(ModuleLoader, unittest.TestCase):
def test_import_2(self):
data = '''from . import subpackage as pouet'''
- astroid = test_utils.build_module(data, 'package', 'data/package/__init__.py')
+ astroid = builder.parse(data, 'package', 'data/package/__init__.py')
sys.path.insert(0, resources.find('data'))
try:
m = astroid.import_module('', level=1)
@@ -188,7 +189,7 @@ class ModuleNodeTest(ModuleLoader, unittest.TestCase):
def test_file_stream_in_memory(self):
data = '''irrelevant_variable is irrelevant'''
- astroid = test_utils.build_module(data, 'in_memory')
+ astroid = builder.parse(data, 'in_memory')
with warnings.catch_warnings(record=True):
self.assertEqual(astroid.file_stream.read().decode(), data)
@@ -280,7 +281,7 @@ class FunctionNodeTest(ModuleLoader, unittest.TestCase):
def nested_args(a, (b, c, d)):
"nested arguments test"
'''
- tree = test_utils.build_module(code)
+ tree = builder.parse(code)
func = tree['nested_args']
self.assertEqual(sorted(func.locals), ['a', 'b', 'c', 'd'])
self.assertEqual(func.args.format_args(), 'a, (b, c, d)')
@@ -353,12 +354,12 @@ class FunctionNodeTest(ModuleLoader, unittest.TestCase):
def f():
g = lambda: None
'''
- astroid = test_utils.build_module(data)
+ astroid = builder.parse(data)
g = list(astroid['f'].ilookup('g'))[0]
self.assertEqual(g.pytype(), '%s.function' % BUILTINS)
def test_lambda_qname(self):
- astroid = test_utils.build_module('lmbd = lambda: None', __name__)
+ astroid = builder.parse('lmbd = lambda: None', __name__)
self.assertEqual('%s.<lambda>' % __name__, astroid['lmbd'].parent.value.qname())
def test_is_method(self):
@@ -380,7 +381,7 @@ class FunctionNodeTest(ModuleLoader, unittest.TestCase):
def sfunction():
return -1
'''
- astroid = test_utils.build_module(data)
+ astroid = builder.parse(data)
self.assertTrue(astroid['A']['meth1'].is_method())
self.assertTrue(astroid['A']['meth2'].is_method())
self.assertTrue(astroid['A']['meth3'].is_method())
@@ -392,7 +393,7 @@ class FunctionNodeTest(ModuleLoader, unittest.TestCase):
code = 'def f(a, (b, c), *args, **kwargs): pass'
else:
code = 'def f(a, b, c, *args, **kwargs): pass'
- astroid = test_utils.build_module(code, __name__)
+ astroid = builder.parse(code, __name__)
self.assertEqual(astroid['f'].argnames(), ['a', 'b', 'c', 'args', 'kwargs'])
def test_return_nothing(self):
@@ -403,7 +404,7 @@ class FunctionNodeTest(ModuleLoader, unittest.TestCase):
a = func()
'''
- astroid = test_utils.build_module(data)
+ astroid = builder.parse(data)
call = astroid.body[1].value
func_vals = call.infered()
self.assertEqual(len(func_vals), 1)
@@ -419,7 +420,7 @@ class FunctionNodeTest(ModuleLoader, unittest.TestCase):
test.bar = 1
test()
"""
- astroid = test_utils.build_module(data, 'mod')
+ astroid = builder.parse(data, 'mod')
func = astroid.body[2].value.func.infered()[0]
self.assertIsInstance(func, nodes.Function)
self.assertEqual(func.name, 'test')
@@ -428,7 +429,7 @@ class FunctionNodeTest(ModuleLoader, unittest.TestCase):
self.assertEqual(one.value, 1)
def test_type_builtin_descriptor_subclasses(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
class classonlymethod(classmethod):
pass
class staticonlymethod(staticmethod):
@@ -459,7 +460,7 @@ class FunctionNodeTest(ModuleLoader, unittest.TestCase):
'staticmethod')
def test_decorator_builtin_descriptors(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
def static_decorator(platform=None, order=50):
def wrapper(f):
f.cgm_module = True
@@ -582,7 +583,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
self.assertEqual(len(cls.getattr('__mro__')), 1)
def test_cls_special_attributes_2(self):
- astroid = test_utils.build_module('''
+ astroid = builder.parse('''
class A: pass
class B: pass
@@ -611,7 +612,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
self.assertEqual(r_sibling.name, 'YOUPI')
def test_local_attr_ancestors(self):
- module = test_utils.build_module('''
+ module = builder.parse('''
class A():
def __init__(self): pass
class B(A): pass
@@ -646,7 +647,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
self.assertRaises(StopIteration, partial(next, it))
def test_local_attr_mro(self):
- module = test_utils.build_module('''
+ module = builder.parse('''
class A(object):
def __init__(self): pass
class B(A):
@@ -748,7 +749,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
return cls
registered = classmethod(registered)
'''
- astroid = test_utils.build_module(data, __name__)
+ astroid = builder.parse(data, __name__)
cls = astroid['WebAppObject']
self.assertEqual(sorted(cls.locals.keys()),
['appli', 'config', 'registered', 'schema'])
@@ -760,7 +761,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
appli += 2
del self.appli
'''
- astroid = test_utils.build_module(data, __name__)
+ astroid = builder.parse(data, __name__)
cls = astroid['WebAppObject']
# test del statement not returned by getattr
self.assertEqual(len(cls.getattr('appli')), 2)
@@ -774,7 +775,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
self.appli += 2
del self.appli
'''
- astroid = test_utils.build_module(data)
+ astroid = builder.parse(data)
inst = Instance(astroid['WebAppObject'])
# test del statement not returned by getattr
self.assertEqual(len(inst.getattr('appli')), 2)
@@ -798,7 +799,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
val = self.bb
self.aa += val
'''
- astroid = test_utils.build_module(data)
+ astroid = builder.parse(data)
inst = Instance(astroid['Klass'])
self.assertEqual(len(inst.getattr('aa')), 3, inst.getattr('aa'))
self.assertEqual(len(inst.getattr('bb')), 1, inst.getattr('bb'))
@@ -821,7 +822,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
inst = Clazz()
inst.m4 = func
'''
- astroid = test_utils.build_module(data)
+ astroid = builder.parse(data)
cls = astroid['Clazz']
# test del statement not returned by getattr
for method in ('m1', 'm2', 'm3'):
@@ -846,7 +847,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
class Past(Present):
pass
'''
- astroid = test_utils.build_module(data)
+ astroid = builder.parse(data)
past = astroid['Past']
attr = past.getattr('attr')
self.assertEqual(len(attr), 1)
@@ -866,7 +867,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
def g2():
pass
'''
- astroid = test_utils.build_module(data)
+ astroid = builder.parse(data)
self.assertEqual(astroid['g1'].fromlineno, 4)
self.assertEqual(astroid['g1'].tolineno, 5)
self.assertEqual(astroid['g2'].fromlineno, 9)
@@ -874,7 +875,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
@test_utils.require_version(maxver='3.0')
def test_simple_metaclass(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
class Test(object):
__metaclass__ = type
""")
@@ -884,7 +885,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
self.assertEqual(metaclass.name, 'type')
def test_metaclass_error(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
class Test(object):
__metaclass__ = typ
""")
@@ -893,7 +894,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
@test_utils.require_version(maxver='3.0')
def test_metaclass_imported(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
from abc import ABCMeta
class Test(object):
__metaclass__ = ABCMeta
@@ -905,7 +906,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
self.assertEqual(metaclass.name, 'ABCMeta')
def test_metaclass_yes_leak(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
# notice `ab` instead of `abc`
from ab import ABCMeta
@@ -917,7 +918,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
@test_utils.require_version(maxver='3.0')
def test_newstyle_and_metaclass_good(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
from abc import ABCMeta
class Test:
__metaclass__ = ABCMeta
@@ -925,7 +926,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
klass = astroid['Test']
self.assertTrue(klass.newstyle)
self.assertEqual(klass.metaclass().name, 'ABCMeta')
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
from abc import ABCMeta
__metaclass__ = ABCMeta
class Test:
@@ -937,7 +938,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
@test_utils.require_version(maxver='3.0')
def test_nested_metaclass(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
from abc import ABCMeta
class A(object):
__metaclass__ = ABCMeta
@@ -960,7 +961,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
@test_utils.require_version(maxver='3.0')
def test_parent_metaclass(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
from abc import ABCMeta
class Test:
__metaclass__ = ABCMeta
@@ -974,7 +975,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
@test_utils.require_version(maxver='3.0')
def test_metaclass_ancestors(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
from abc import ABCMeta
class FirstMeta(object):
@@ -1074,7 +1075,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
self.assertIsNone(inferred.metaclass())
def test_nonregr_infer_callresult(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
class Delegate(object):
def __get__(self, obj, cls):
return getattr(obj._subject, self.attribute)
@@ -1091,7 +1092,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
self.assertEqual(list(instance.infer()), [YES])
def test_slots(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
from collections import deque
from textwrap import dedent
@@ -1138,7 +1139,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
@test_utils.require_version(maxver='3.0')
def test_slots_py2(self):
- module = test_utils.build_module("""
+ module = builder.parse("""
class UnicodeSlots(object):
__slots__ = (u"a", u"b", "c")
""")
@@ -1150,7 +1151,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
@test_utils.require_version(maxver='3.0')
def test_slots_py2_not_implemented(self):
- module = test_utils.build_module("""
+ module = builder.parse("""
class OldStyle:
__slots__ = ("a", "b")
""")
@@ -1160,7 +1161,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
self.assertEqual(str(cm.exception), msg)
def test_slots_empty_list_of_slots(self):
- module = test_utils.build_module("""
+ module = builder.parse("""
class Klass(object):
__slots__ = ()
""")
@@ -1199,7 +1200,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
self.assertTrue(node.newstyle)
def test_with_metaclass_mro(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
import six
class C(object):
@@ -1212,7 +1213,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
self.assertEqualMro(astroid['A'], ['A', 'B', 'C', 'object'])
def test_mro(self):
- astroid = test_utils.build_module("""
+ astroid = builder.parse("""
class C(object): pass
class D(dict, C): pass
@@ -1346,7 +1347,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
self.assertEqual(inferred.value, 42)
def test_has_dynamic_getattr(self):
- module = test_utils.build_module("""
+ module = builder.parse("""
class Getattr(object):
def __getattr__(self, attrname):
pass
@@ -1370,7 +1371,7 @@ class ClassNodeTest(ModuleLoader, unittest.TestCase):
self.assertFalse(module['timedelta'].has_dynamic_getattr())
def test_duplicate_bases_namedtuple(self):
- module = test_utils.build_module("""
+ module = builder.parse("""
import collections
_A = collections.namedtuple('A', 'a')