File: std_ST03_test.py

package info (click to toggle)
sqlfluff 3.5.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 34,000 kB
  • sloc: python: 106,131; sql: 34,188; makefile: 52; sh: 8
file content (67 lines) | stat: -rw-r--r-- 1,747 bytes parent folder | download | duplicates (2)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
"""Tests the python routines within ST03."""

import sqlfluff


def test__rules__std_ST03_multiple_unused_ctes():
    """Verify that ST03 returns multiple lint issues, one per unused CTE."""
    sql = """
    WITH
    cte_1 AS (
        SELECT 1
    ),
    cte_2 AS (
        SELECT 2
    ),
    cte_3 AS (
        SELECT 3
    ),
    cte_4 AS (
        SELECT 4
    )

    SELECT var_bar
    FROM cte_3
    """
    result = sqlfluff.lint(sql, rules=["ST03"])
    assert result == [
        {
            "code": "ST03",
            "description": 'Query defines CTE "cte_1" but does not use it.',
            "name": "structure.unused_cte",
            "warning": False,
            "fixes": [],
            "start_line_no": 3,
            "start_line_pos": 5,
            "start_file_pos": 14,
            "end_line_no": 3,
            "end_line_pos": 10,
            "end_file_pos": 19,
        },
        {
            "code": "ST03",
            "description": 'Query defines CTE "cte_2" but does not use it.',
            "name": "structure.unused_cte",
            "warning": False,
            "fixes": [],
            "start_line_no": 6,
            "start_line_pos": 5,
            "start_file_pos": 53,
            "end_line_no": 6,
            "end_line_pos": 10,
            "end_file_pos": 58,
        },
        {
            "code": "ST03",
            "description": 'Query defines CTE "cte_4" but does not use it.',
            "name": "structure.unused_cte",
            "warning": False,
            "fixes": [],
            "start_line_no": 12,
            "start_line_pos": 5,
            "start_file_pos": 131,
            "end_line_no": 12,
            "end_line_pos": 10,
            "end_file_pos": 136,
        },
    ]