MCPcopy Index your code
hub / github.com/python/cpython / test_ast_line_numbers

Method test_ast_line_numbers

Lib/test/test_fstring.py:90–119  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

88 self.assertTrue(x.called)
89
90 def test_ast_line_numbers(self):
91 expr = """
92a = 10
93f'{a * x()}'"""
94 t = ast.parse(expr)
95 self.assertEqual(type(t), ast.Module)
96 self.assertEqual(len(t.body), 2)
97 # check `a = 10`
98 self.assertEqual(type(t.body[0]), ast.Assign)
99 self.assertEqual(t.body[0].lineno, 2)
100 # check `f'...'`
101 self.assertEqual(type(t.body[1]), ast.Expr)
102 self.assertEqual(type(t.body[1].value), ast.JoinedStr)
103 self.assertEqual(len(t.body[1].value.values), 1)
104 self.assertEqual(type(t.body[1].value.values[0]), ast.FormattedValue)
105 self.assertEqual(t.body[1].lineno, 3)
106 self.assertEqual(t.body[1].value.lineno, 3)
107 self.assertEqual(t.body[1].value.values[0].lineno, 3)
108 # check the binop location
109 binop = t.body[1].value.values[0].value
110 self.assertEqual(type(binop), ast.BinOp)
111 self.assertEqual(type(binop.left), ast.Name)
112 self.assertEqual(type(binop.op), ast.Mult)
113 self.assertEqual(type(binop.right), ast.Call)
114 self.assertEqual(binop.lineno, 3)
115 self.assertEqual(binop.left.lineno, 3)
116 self.assertEqual(binop.right.lineno, 3)
117 self.assertEqual(binop.col_offset, 3)
118 self.assertEqual(binop.left.col_offset, 3)
119 self.assertEqual(binop.right.col_offset, 7)
120
121 def test_ast_line_numbers_multiple_formattedvalues(self):
122 expr = """

Callers

nothing calls this directly

Calls 2

assertEqualMethod · 0.95
parseMethod · 0.45

Tested by

no test coverage detected