X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=tests%2Ftest_tokens.py;h=4e48ab040e00c4212225f4415c467a776c8ac00a;hb=refs%2Ftags%2F0.0.6;hp=8201e74523fb588b6c9a0c41e781ff2cd742697d;hpb=d6d2d76d2b29e8384169c5b86e19e494fab1a464;p=sqlconvert.git diff --git a/tests/test_tokens.py b/tests/test_tokens.py index 8201e74..4e48ab0 100644 --- a/tests/test_tokens.py +++ b/tests/test_tokens.py @@ -6,46 +6,68 @@ from sqlconvert.print_tokens import tlist2str from sqlconvert.process_mysql import remove_directive_tokens, \ is_directive_statement, requote_names, unescape_strings, \ process_statement +from sqlconvert.process_tokens import escape_strings -class TestTokens(object): - def test_encoding(self): - parsed = parse("insert into test (1, 'тест')", 'utf-8')[0] - query = tlist2str(parsed).encode('utf-8') - assert query == \ - u"INSERT INTO test (1, 'тест')".encode('utf-8') - - def test_unicode(self): - parsed = parse(u"insert into test (1, 'тест')")[0] - query = tlist2str(parsed) - assert query, u"INSERT INTO test (1 == 'тест')" - - def test_directive(self): - parsed = parse("select /*! test */ * from /* test */ `T`")[0] - remove_directive_tokens(parsed) - query = tlist2str(parsed) - assert query == u'SELECT * FROM /* test */ `T`' - - def test_directive_statement(self): - parsed = parse("/*! test */ test ;")[0] - assert not is_directive_statement(parsed) - parsed = parse("/*! test */ ;")[0] - assert is_directive_statement(parsed) - - def test_requote(self): - parsed = parse("select * from `T`")[0] - requote_names(parsed) - query = tlist2str(parsed) - assert query == u'SELECT * FROM "T"' - - def test_string(self): - parsed = parse("insert into test values ('\"test\\\"')")[0] - unescape_strings(parsed) - query = tlist2str(parsed) - assert query == u"INSERT INTO test VALUES ('\"test\"')" - - def test_process(self): - parsed = parse("select /*! test */ * from /* test */ `T`")[0] - process_statement(parsed) - query = tlist2str(parsed) - assert query == u'SELECT * FROM /* test */ "T"' +def test_encoding(): + parsed = parse("insert into test (1, 'тест')", 'utf-8')[0] + query = tlist2str(parsed).encode('utf-8') + assert query == \ + u"INSERT INTO test (1, 'тест')".encode('utf-8') + + +def test_unicode(): + parsed = parse(u"insert into test (1, 'тест')")[0] + query = tlist2str(parsed) + assert query, u"INSERT INTO test (1 == 'тест')" + + +def test_directive(): + parsed = parse("select /*! test */ * from /* test */ `T`")[0] + remove_directive_tokens(parsed) + query = tlist2str(parsed) + assert query == u'SELECT * FROM /* test */ `T`' + + +def test_directive_statement(): + parsed = parse("/*! test */ test ;")[0] + assert not is_directive_statement(parsed) + parsed = parse("/*! test */ ;")[0] + assert is_directive_statement(parsed) + + +def test_requote(): + parsed = parse("select * from `T`")[0] + requote_names(parsed) + query = tlist2str(parsed) + assert query == u'SELECT * FROM "T"' + + +def test_unescape_string(): + parsed = parse("insert into test values ('\"te\\'st\\\"\\n')")[0] + unescape_strings(parsed) + query = tlist2str(parsed) + assert query == u"INSERT INTO test VALUES ('\"te'st\"\n')" + + +def test_escape_string_postgres(): + parsed = parse("insert into test values ('\"te\\'st\\\"\\n')")[0] + unescape_strings(parsed) + escape_strings(parsed, 'postgres') + query = tlist2str(parsed) + assert query == u"INSERT INTO test VALUES (E'\"te''st\"\\n')" + + +def test_escape_string_sqlite(): + parsed = parse("insert into test values ('\"te\\'st\\\"\\n')")[0] + unescape_strings(parsed) + escape_strings(parsed, 'sqlite') + query = tlist2str(parsed) + assert query == u"INSERT INTO test VALUES ('\"te''st\"\n')" + + +def test_process(): + parsed = parse("select /*! test */ * from /* test */ `T`")[0] + process_statement(parsed) + query = tlist2str(parsed) + assert query == u'SELECT * FROM /* test */ "T"'