]> git.phdru.name Git - sqlconvert.git/blob - tests/test_process_tokens.py
Build(GHActions): Use `checkout@v4` instead of outdated `v2`
[sqlconvert.git] / tests / test_process_tokens.py
1 # -*- coding: utf-8 -*-
2
3 from pytest import raises
4 from sqlparse import parse
5
6 from sqlconvert.print_tokens import tlist2str
7 from sqlconvert.process_tokens import is_newline_statement, StatementGrouper
8
9
10 def test_newline_statement():
11     parsed = parse("\n")[0]
12     assert is_newline_statement(parsed)
13
14
15 def test_encoding():
16     parsed = parse("insert into test (1, 'тест')", 'utf-8')[0]
17     query = tlist2str(parsed).encode('utf-8')
18     assert query == \
19         u"INSERT INTO test (1, 'тест')".encode('utf-8')
20
21
22 def test_unicode():
23     parsed = parse(u"insert into test (1, 'тест')")[0]
24     query = tlist2str(parsed)
25     assert query, u"INSERT INTO test (1 == 'тест')"
26
27
28 def test_incomplete():
29     grouper = StatementGrouper()
30     grouper.process_line("select * from `T`")
31     assert not grouper.statements
32     assert len(grouper.statements) == 0
33     raises(ValueError, grouper.close)
34
35
36 def test_statements():
37     grouper = StatementGrouper()
38     grouper.process_line("select * from T;")
39     assert grouper.statements
40     assert len(grouper.statements) == 1
41     for statement in grouper.get_statements():
42         query = tlist2str(statement)
43         assert query == 'SELECT * FROM T;'
44     assert len(grouper.statements) == 0
45     assert grouper.close() is None