summaryrefslogtreecommitdiff
path: root/astroid/tests/unittest_inference.py
diff options
context:
space:
mode:
Diffstat (limited to 'astroid/tests/unittest_inference.py')
-rw-r--r--astroid/tests/unittest_inference.py48
1 files changed, 42 insertions, 6 deletions
diff --git a/astroid/tests/unittest_inference.py b/astroid/tests/unittest_inference.py
index f543dbb..98a4daf 100644
--- a/astroid/tests/unittest_inference.py
+++ b/astroid/tests/unittest_inference.py
@@ -1796,8 +1796,6 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
' '.index() #@
' '.find() #@
' '.count() #@
-
- ' '.split() #@
"""
ast = test_utils.extract_node(code, __name__)
self.assertInferConst(ast[0], u'')
@@ -1805,7 +1803,6 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
self.assertInferConst(ast[i], '')
for i in range(16, 19):
self.assertInferConst(ast[i], 0)
- self.assertInferList(ast[19], [])
def test_unicode_methods(self):
code = """
@@ -1830,8 +1827,6 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
u' '.index() #@
u' '.find() #@
u' '.count() #@
-
- u' '.split() #@
"""
ast = test_utils.extract_node(code, __name__)
self.assertInferConst(ast[0], '')
@@ -1839,7 +1834,6 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
self.assertInferConst(ast[i], u'')
for i in range(16, 19):
self.assertInferConst(ast[i], 0)
- self.assertInferList(ast[19], [])
def test_scope_lookup_same_attributes(self):
code = '''
@@ -3143,6 +3137,48 @@ class InferenceTest(resources.SysPathSetup, unittest.TestCase):
self.assertIsInstance(third_c, Instance)
self.assertEqual(third_c.name, 'A')
+ def test_metaclass_subclasses_arguments_are_classes_not_instances(self):
+ ast_node = test_utils.extract_node('''
+ class A(type):
+ def test(cls):
+ return cls
+ import six
+ @six.add_metaclass(A)
+ class B(object):
+ pass
+
+ B.test() #@
+ ''')
+ inferred = next(ast_node.infer())
+ self.assertIsInstance(inferred, nodes.ClassDef)
+ self.assertEqual(inferred.name, 'B')
+
+ def test_infer_cls_in_class_methods(self):
+ ast_nodes = test_utils.extract_node('''
+ class A(type):
+ def __call__(cls):
+ cls #@
+ class B(object):
+ def __call__(cls):
+ cls #@
+ ''')
+ first = next(ast_nodes[0].infer())
+ self.assertIsInstance(first, nodes.ClassDef)
+ second = next(ast_nodes[1].infer())
+ self.assertIsInstance(second, Instance)
+
+ @unittest.expectedFailure
+ def test_metaclass_arguments_are_classes_not_instances(self):
+ ast_node = test_utils.extract_node('''
+ class A(type):
+ def test(cls): return cls
+ A.test() #@
+ ''')
+ # This is not supported yet
+ inferred = next(ast_node.infer())
+ self.assertIsInstance(inferred, ClassDef)
+ self.assertEqual(inferred.name, 'A')
+
class GetattrTest(unittest.TestCase):