File: helpers_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 (32 lines) | stat: -rw-r--r-- 1,007 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
"""Test the helpers."""

import pytest

from sqlfluff.core.parser.helpers import trim_non_code_segments


@pytest.mark.parametrize(
    "token_list,pre_len,mid_len,post_len",
    [
        (["bar", ".", "bar"], 0, 3, 0),
        (("bar", ".", "bar"), 0, 3, 0),
        ([], 0, 0, 0),
        (["  ", "\n", "\t", "bar", ".", "bar", "  ", "\n", "\t"], 3, 3, 3),
    ],
)
def test__parser__helper_trim_non_code_segments(
    token_list,
    pre_len,
    mid_len,
    post_len,
    generate_test_segments,
):
    """Test trim_non_code_segments."""
    segments = generate_test_segments(token_list)
    pre, mid, post = trim_non_code_segments(segments)
    # Assert lengths
    assert (len(pre), len(mid), len(post)) == (pre_len, mid_len, post_len)
    # Assert content
    assert [elem.raw for elem in pre] == list(token_list[:pre_len])
    assert [elem.raw for elem in mid] == list(token_list[pre_len : pre_len + mid_len])
    assert [elem.raw for elem in post] == list(token_list[len(segments) - post_len :])