예제 #1
0
 def testOverriddenAbstractMethodStillAbstract(self):
     sized_pytd = self._vm.loader.typing.Lookup("typing.Sized")
     sized = self._vm.convert.constant_to_value(sized_pytd, {},
                                                self._vm.root_cfg_node)
     bases = [sized.to_variable(self._vm.root_cfg_node)]
     func = abstract.Function("__len__", self._vm)
     func.is_abstract = True
     members = {"__len__": func.to_variable(self._vm.root_cfg_node)}
     cls = abstract.InterpreterClass("X", bases, members, None, self._vm)
     self.assertListEqual(cls.abstract_methods, ["__len__"])
예제 #2
0
 def testAbstractMethod(self):
     func = abstract.Function("f",
                              self._vm).to_variable(self._vm.root_cfg_node)
     func.data[0].is_abstract = True
     cls = abstract.InterpreterClass("X", [], {"f": func}, None, self._vm)
     self.assertListEqual(cls.abstract_methods, ["f"])
예제 #3
0
 def test_abstract_method(self):
   func = abstract.Function("f", self._vm).to_variable(self._vm.root_node)
   func.data[0].is_abstract = True
   cls = abstract.InterpreterClass("X", [], {"f": func}, None, self._vm)
   six.assertCountEqual(self, cls.abstract_methods, {"f"})