X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=tests%2Ftest_tokens.py;h=d537d73f068291c2eb3d9a13773ba31c9cccf5ef;hb=6d906e2f335699348bf44a653ca708b522a99d85;hp=83951c5cc3152d89ed965351804ff5076bd14924;hpb=4c93c3d89685aba33fc45082022373eb93b6583e;p=sqlconvert.git diff --git a/tests/test_tokens.py b/tests/test_tokens.py old mode 100755 new mode 100644 index 83951c5..d537d73 --- a/tests/test_tokens.py +++ b/tests/test_tokens.py @@ -1,31 +1,56 @@ -#! /usr/bin/env python # -*- coding: utf-8 -*- -import unittest from sqlparse import parse -from mysql2sql.process_tokens import requote_names -from mysql2sql.print_tokens import tlist2str -from tests import main +from sqlconvert.print_tokens import tlist2str +from sqlconvert.process_mysql import remove_directive_tokens, \ + is_directive_statement, requote_names, unescape_strings, \ + process_statement -class TestTokens(unittest.TestCase): - def test_requote(self): - parsed = parse("select * from `T`")[0] - requote_names(parsed) - query = tlist2str(parsed) - self.assertEqual(query, 'SELECT * FROM "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_encoding(self): - parsed = parse("insert into test (1, 'тест')", 'utf-8')[0] - query = tlist2str(parsed).encode('utf-8') - self.assertEqual(query, "INSERT INTO test (1, 'тест')") - def test_unicode(self): - parsed = parse(u"insert into test (1, 'тест')")[0] - query = tlist2str(parsed) - self.assertEqual(query, u"INSERT INTO test (1, 'тест')") +def test_unicode(): + parsed = parse(u"insert into test (1, 'тест')")[0] + query = tlist2str(parsed) + assert query, u"INSERT INTO test (1 == 'тест')" -if __name__ == "__main__": - main() +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_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_process(): + parsed = parse("select /*! test */ * from /* test */ `T`")[0] + process_statement(parsed) + query = tlist2str(parsed) + assert query == u'SELECT * FROM /* test */ "T"'