summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryce Guinta <bryce.paul.guinta@gmail.com>2018-07-06 01:09:51 -0600
committerBryce Guinta <bryce.paul.guinta@gmail.com>2018-07-06 01:09:51 -0600
commit0b7638a0d2a1d29b3bba690e779dd02d89dbac81 (patch)
treed20e5488c16835b0c39936b79c91b8dfc88a8718
parent50c911503e134fa72943b1053fa7ecf8fe907f2f (diff)
downloadastroid-git-0b7638a0d2a1d29b3bba690e779dd02d89dbac81.tar.gz
Add test for BoundMethod descriptor objectmodel fix
-rw-r--r--astroid/tests/unittest_object_model.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/astroid/tests/unittest_object_model.py b/astroid/tests/unittest_object_model.py
index 85226b01..0e217154 100644
--- a/astroid/tests/unittest_object_model.py
+++ b/astroid/tests/unittest_object_model.py
@@ -342,6 +342,26 @@ class FunctionModelTest(unittest.TestCase):
with self.assertRaises(exceptions.InferenceError):
next(node.infer())
+ def test_descriptor_error_regression(self):
+ """Make sure the following code does
+ node cause an exception"""
+ node = builder.extract_node('''
+ class MyClass:
+ text = "MyText"
+
+ def mymethod1(self):
+ return self.text
+
+ def mymethod2(self):
+ return self.mymethod1.__get__(self, MyClass)
+
+
+ cl = MyClass().mymethod2()()
+ cl #@
+ ''')
+ [const] = node.inferred()
+ assert const.value == "MyText"
+
def test_function_model(self):
ast_nodes = builder.extract_node('''
def func(a=1, b=2):