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"
|