aboutsummaryrefslogtreecommitdiffstats
path: root/tests/indent/python_spec.lua
blob: 45e262b73e76095af54729bebb11ff579ee9e0e1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
local Runner = require("tests.indent.common").Runner
local XFAIL = require("tests.indent.common").XFAIL

local run = Runner:new(it, "tests/indent/python", {
  tabstop = 4,
  shiftwidth = 4,
  softtabstop = 0,
  expandtab = true,
})

describe("indent Python:", function()
  describe("whole file:", function()
    run:whole_file(".", {
      expected_failures = {
        "./aligned_indent.py",
        "./basic_blocks.py",
        "./branches.py",
        "./control_flow.py",
        "./hanging_indent.py",
        "./join_lines.py",
        "./nested_collections.py",
        "./strings.py",
        "./control_flow.py",
      },
    })
  end)

  describe("new line:", function()
    run:new_line("aligned_indent.py", { on_line = 1, text = "arg3,", indent = 19 }, "xfail", XFAIL)
    run:new_line("basic_blocks.py", { on_line = 1, text = "wait,", indent = 4 })
    run:new_line("basic_blocks.py", { on_line = 6, text = "x += 1", indent = 4 })
    run:new_line("basic_blocks.py", { on_line = 10, text = "x += 1", indent = 8 })
    run:new_line("basic_blocks.py", { on_line = 7, text = "x += 1", indent = 4 }, "7, after last line of a block")
    run:new_line("basic_blocks.py", { on_line = 11, text = "x += 1", indent = 8 }, "11, after last line of a block")
    run:new_line("basic_collections.py", { on_line = 3, text = "4,", indent = 4 })
    run:new_line("comprehensions.py", { on_line = 8, text = "if x != 2", indent = 4 })
    run:new_line("control_flow.py", { on_line = 23, text = "x = 4", indent = 4 }, "expected failure", XFAIL)
    run:new_line("hanging_indent.py", { on_line = 1, text = "arg0,", indent = 8 }, "expected failure", XFAIL)
    run:new_line("hanging_indent.py", { on_line = 5, text = "0,", indent = 4 })
    run:new_line("join_lines.py", { on_line = 1, text = "+ 1 \\", indent = 4 })
    run:new_line("join_lines.py", { on_line = 4, text = "+ 1 \\", indent = 4 })
    run:new_line("join_lines.py", { on_line = 7, text = "+ 1 \\", indent = 4 })
    run:new_line("nested_collections.py", { on_line = 5, text = "0,", indent = 12 })
    run:new_line("nested_collections.py", { on_line = 6, text = ",0", indent = 12 })
    run:new_line("nested_collections.py", { on_line = 29, text = "[1, 2],", indent = 12 })
    run:new_line("nested_collections.py", { on_line = 39, text = "0,", indent = 5 })
    run:new_line("strings.py", { on_line = 14, text = "x", indent = 4 })
    run:new_line("strings.py", { on_line = 15, text = "x", indent = 0 }, nil, XFAIL)
    run:new_line("strings.py", { on_line = 16, text = "x", indent = 8 }, nil, XFAIL)
  end)
end)