]> git.phdru.name Git - sqlconvert.git/blob - tests/test_tokens.py
Unescape all known escapes
[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 def test_encoding():
12     parsed = parse("insert into test (1, 'тест')", 'utf-8')[0]
13     query = tlist2str(parsed).encode('utf-8')
14     assert query == \
15         u"INSERT INTO test (1, 'тест')".encode('utf-8')
16
17
18 def test_unicode():
19     parsed = parse(u"insert into test (1, 'тест')")[0]
20     query = tlist2str(parsed)
21     assert query, u"INSERT INTO test (1 == 'тест')"
22
23
24 def test_directive():
25     parsed = parse("select /*! test */ * from /* test */ `T`")[0]
26     remove_directive_tokens(parsed)
27     query = tlist2str(parsed)
28     assert query == u'SELECT * FROM /* test */ `T`'
29
30
31 def test_directive_statement():
32     parsed = parse("/*! test */ test ;")[0]
33     assert not is_directive_statement(parsed)
34     parsed = parse("/*! test */ ;")[0]
35     assert is_directive_statement(parsed)
36
37
38 def test_requote():
39     parsed = parse("select * from `T`")[0]
40     requote_names(parsed)
41     query = tlist2str(parsed)
42     assert query == u'SELECT * FROM "T"'
43
44
45 def test_string():
46     parsed = parse("insert into test values ('\"te\\'st\\\"\\n')")[0]
47     unescape_strings(parsed)
48     query = tlist2str(parsed)
49     assert query == u"INSERT INTO test VALUES ('\"te''st\"\n')"
50
51
52 def test_process():
53     parsed = parse("select /*! test */ * from /* test */ `T`")[0]
54     process_statement(parsed)
55     query = tlist2str(parsed)
56     assert query == u'SELECT * FROM /* test */ "T"'