def test_create_source_map_multiple_nodes(self): source = """ from __future__ import print_function def test_fn(x): return x + 1 """ source = textwrap.dedent(source) nodes = parser.parse_str(source, single_node=False) fake_import_origin = origin_info.OriginInfo( loc=origin_info.Location('fake_filename', 3, 7), function_name='fake_function_name', source_code_line='fake source line', comment=None) anno.setanno(nodes[0], anno.Basic.ORIGIN, fake_import_origin) fake_function_origin = origin_info.OriginInfo( loc=origin_info.Location('fake_filename', 3, 7), function_name='fake_function_name', source_code_line='fake source line', comment=None) anno.setanno(nodes[1], anno.Basic.ORIGIN, fake_function_origin) source_map = origin_info.create_source_map(nodes, source, 'test_filename') loc = origin_info.LineLocation('test_filename', 2) self.assertIn(loc, source_map) self.assertIs(source_map[loc], fake_import_origin) loc = origin_info.LineLocation('test_filename', 3) self.assertIn(loc, source_map) self.assertIs(source_map[loc], fake_function_origin)
def test_create_source_map(self): def test_fn(x): return x + 1 node, _, _ = parser.parse_entity(test_fn) fake_origin = origin_info.OriginInfo( loc=origin_info.Location('fake_filename', 3, 7), function_name='fake_function_name', source_code_line='fake source line', comment=None) anno.setanno(node.body[0], anno.Basic.ORIGIN, fake_origin) converted_code = compiler.ast_to_source(node) source_map = origin_info.create_source_map(node, converted_code, 'test_filename', [0]) loc = origin_info.LineLocation('test_filename', 2) self.assertIn(loc, source_map) self.assertIs(source_map[loc], fake_origin)
def test_create_source_map(self): source = """ def test_fn(x): return x + 1 """ source = textwrap.dedent(source) node = parser.parse(source) fake_origin = origin_info.OriginInfo( loc=origin_info.Location('fake_filename', 3, 7), function_name='fake_function_name', source_code_line='fake source line', comment=None) anno.setanno(node, anno.Basic.ORIGIN, fake_origin) source_map = origin_info.create_source_map(node, source, 'test_filename') loc = origin_info.LineLocation('test_filename', 2) self.assertIn(loc, source_map) self.assertIs(source_map[loc], fake_origin)