1 # -*- coding: utf-8 -*-
3 from pytest import raises
4 from sqlparse import parse
6 from sqlconvert.print_tokens import tlist2str
7 from sqlconvert.process_tokens import is_newline_statement, StatementGrouper
10 def test_newline_statement():
11 parsed = parse("\n")[0]
12 assert is_newline_statement(parsed)
16 parsed = parse("insert into test (1, 'тест')", 'utf-8')[0]
17 query = tlist2str(parsed).encode('utf-8')
19 u"INSERT INTO test (1, 'тест')".encode('utf-8')
23 parsed = parse(u"insert into test (1, 'тест')")[0]
24 query = tlist2str(parsed)
25 assert query, u"INSERT INTO test (1 == 'тест')"
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)
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