]> git.phdru.name Git - sqlconvert.git/blob - tests/test_tokens.py
8201e74523fb588b6c9a0c41e781ff2cd742697d
[sqlconvert.git] / tests / test_tokens.py
1 # -*- coding: utf-8 -*-
2
3 from sqlparse import parse
4
5 from sqlconvert.print_tokens import tlist2str
6 from sqlconvert.process_mysql import remove_directive_tokens, \
7         is_directive_statement, requote_names, unescape_strings, \
8         process_statement
9
10
11 class TestTokens(object):
12     def test_encoding(self):
13         parsed = parse("insert into test (1, 'тест')", 'utf-8')[0]
14         query = tlist2str(parsed).encode('utf-8')
15         assert query == \
16             u"INSERT INTO test (1, 'тест')".encode('utf-8')
17
18     def test_unicode(self):
19         parsed = parse(u"insert into test (1, 'тест')")[0]
20         query = tlist2str(parsed)
21         assert query, u"INSERT INTO test (1 == 'тест')"
22
23     def test_directive(self):
24         parsed = parse("select /*! test */ * from /* test */ `T`")[0]
25         remove_directive_tokens(parsed)
26         query = tlist2str(parsed)
27         assert query == u'SELECT * FROM /* test */ `T`'
28
29     def test_directive_statement(self):
30         parsed = parse("/*! test */ test ;")[0]
31         assert not is_directive_statement(parsed)
32         parsed = parse("/*! test */ ;")[0]
33         assert is_directive_statement(parsed)
34
35     def test_requote(self):
36         parsed = parse("select * from `T`")[0]
37         requote_names(parsed)
38         query = tlist2str(parsed)
39         assert query == u'SELECT * FROM "T"'
40
41     def test_string(self):
42         parsed = parse("insert into test values ('\"test\\\"')")[0]
43         unescape_strings(parsed)
44         query = tlist2str(parsed)
45         assert query == u"INSERT INTO test VALUES ('\"test\"')"
46
47     def test_process(self):
48         parsed = parse("select /*! test */ * from /* test */ `T`")[0]
49         process_statement(parsed)
50         query = tlist2str(parsed)
51         assert query == u'SELECT * FROM /* test */ "T"'