Exemple #1
0
 def test_instance_special_attributes(self):
     for inst in (Instance(MODULE['YO']), nodes.List(), nodes.Const(1)):
         self.assertRaises(NotFoundError, inst.getattr, '__mro__')
         self.assertRaises(NotFoundError, inst.getattr, '__bases__')
         self.assertRaises(NotFoundError, inst.getattr, '__name__')
         self.assertEqual(len(inst.getattr('__dict__')), 1)
         self.assertEqual(len(inst.getattr('__doc__')), 1)
Exemple #2
0
 def visit_name(self, node, parent):
     """visit a Name node by returning a fresh instance of it"""
     if node.name in CONST_NAME_TRANSFORMS:
         newnode = new.Const(CONST_NAME_TRANSFORMS[node.name])
         self._set_infos(node, newnode, parent)
         return newnode
     if self.asscontext == "Aug":
         return self.visit_assname(node, parent)
     newnode = new.Name()
     self._set_infos(node, newnode, parent)
     newnode.name = node.name
     return newnode
 def visit_name(self, node, parent):
     """visit a Name node by returning a fresh instance of it"""
     if node.id in CONST_NAME_TRANSFORMS:
         newnode = new.Const(CONST_NAME_TRANSFORMS[node.id])
         self._set_infos(node, newnode, parent)
         return newnode
     if self.asscontext == "Del":
         newnode = new.DelName()
     elif self.asscontext is not None: # Ass
         assert self.asscontext == "Ass"
         newnode = new.AssName()
     else:
         newnode = new.Name()
     _lineno_parent(node, newnode, parent)
     newnode.name = node.id
     # XXX REMOVE me :
     if self.asscontext in ('Del', 'Ass'): # 'Aug' ??
         self._save_assignment(newnode)
     newnode.set_line_info(newnode.last_child())
     return newnode
 def test_cls_special_attributes_1(self):
     cls = MODULE['YO']
     self.assertEqual(len(cls.getattr('__bases__')), 1)
     self.assertEqual(len(cls.getattr('__name__')), 1)
     self.assertIsInstance(cls.getattr('__name__')[0], nodes.Const)
     self.assertEqual(cls.getattr('__name__')[0].value, 'YO')
     self.assertEqual(len(cls.getattr('__doc__')), 1)
     self.assertIsInstance(cls.getattr('__doc__')[0], nodes.Const)
     self.assertEqual(cls.getattr('__doc__')[0].value, 'hehe')
     self.assertEqual(len(cls.getattr('__module__')), 1)
     self.assertIsInstance(cls.getattr('__module__')[0], nodes.Const)
     self.assertEqual(cls.getattr('__module__')[0].value, 'data.module')
     self.assertEqual(len(cls.getattr('__dict__')), 1)
     self.assertRaises(NotFoundError, cls.getattr, '__mro__')
     for cls in (nodes.List._proxied, nodes.Const(1)._proxied):
         self.assertEqual(len(cls.getattr('__bases__')), 1)
         self.assertEqual(len(cls.getattr('__name__')), 1)
         self.assertEqual(len(cls.getattr('__doc__')), 1, (cls, cls.getattr('__doc__')))
         self.assertEqual(cls.getattr('__doc__')[0].value, cls.doc)
         self.assertEqual(len(cls.getattr('__module__')), 1)
         self.assertEqual(len(cls.getattr('__dict__')), 1)
         self.assertEqual(len(cls.getattr('__mro__')), 1)
Exemple #5
0
 def visit_str(self, node, parent):
     """visit a Str node by returning a fresh instance of Const"""
     newnode = new.Const(node.s)
     _set_infos(node, newnode, parent)
     return newnode
Exemple #6
0
 def visit_num(self, node, parent):
     """visit a Num node by returning a fresh instance of Const"""
     newnode = new.Const(node.n)
     _set_infos(node, newnode, parent)
     return newnode
Exemple #7
0
 def visit_const(self, node, parent):
     """visit a Const node by returning a fresh instance of it"""
     newnode = new.Const(node.value)
     _set_infos(node, newnode, parent)
     return newnode