be padded with spaces to match its original position.
"""
try:
+ if node.end_lineno is None or node.end_col_offset is None:
+ return None
lineno = node.lineno - 1
end_lineno = node.end_lineno - 1
col_offset = node.col_offset
cdef = ast.parse(s).body[0]
self.assertEqual(ast.get_source_segment(s, cdef.body[0], padded=True), s_method)
+ def test_source_segment_missing_info(self):
+ s = 'v = 1\r\nw = 1\nx = 1\n\ry = 1\r\n'
+ v, w, x, y = ast.parse(s).body
+ del v.lineno
+ del w.end_lineno
+ del x.col_offset
+ del y.end_col_offset
+ self.assertIsNone(ast.get_source_segment(s, v))
+ self.assertIsNone(ast.get_source_segment(s, w))
+ self.assertIsNone(ast.get_source_segment(s, x))
+ self.assertIsNone(ast.get_source_segment(s, y))
class NodeVisitorTests(unittest.TestCase):
def test_old_constant_nodes(self):