File: classes_test.py

package info (click to toggle)
sqlfluff 3.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 33,984 kB
  • sloc: python: 106,138; sql: 34,188; makefile: 52; sh: 8
file content (37 lines) | stat: -rw-r--r-- 1,243 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
"""Tests for use cases of the public api classes."""

from sqlfluff.core import Lexer, Linter, Parser

test_query = "SELECt 1"


def test__api__lexer():
    """Basic checking of lexing functionality."""
    tokens, violations = Lexer(dialect="ansi").lex(test_query)
    assert violations == []
    assert isinstance(tokens, tuple)
    # The last element is the file end marker.
    assert [elem.raw for elem in tokens] == ["SELECt", " ", "1", ""]


def test__api__parser():
    """Basic checking of parsing functionality."""
    tokens, _ = Lexer(dialect="ansi").lex(test_query)
    parsed = Parser(dialect="ansi").parse(tokens)
    assert parsed.raw == test_query


def test__api__linter_lint():
    """Basic checking of parsing functionality."""
    tokens, _ = Lexer(dialect="ansi").lex(test_query)
    parsed = Parser(dialect="ansi").parse(tokens)
    violations = Linter(dialect="ansi").lint(parsed)
    assert [v.rule.code for v in violations] == ["CP01", "LT12"]


def test__api__linter_fix():
    """Basic checking of parsing functionality."""
    tokens, _ = Lexer(dialect="ansi").lex(test_query)
    parsed = Parser(dialect="ansi").parse(tokens)
    fixed, _ = Linter(dialect="ansi").fix(parsed)
    assert fixed.raw == "SELECT 1\n"