diff options
author | Simon Heisterkamp <simon@heisterkamp.dk> | 2022-11-30 14:52:13 +0000 |
---|---|---|
committer | Andi Albrecht <albrecht.andi@gmail.com> | 2023-01-02 08:54:47 +0100 |
commit | e37eaea4a78cbb335070ffec018bfc28425aa1a4 (patch) | |
tree | 42369f4b7d883be2ad051403db6340d7730445c0 | |
parent | 9a1cb5dddd1545c30b1e3a2c6f5d3514d079d93e (diff) | |
download | sqlparse-e37eaea4a78cbb335070ffec018bfc28425aa1a4.tar.gz |
test configurable syntax
-rw-r--r-- | tests/test_parse.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/test_parse.py b/tests/test_parse.py index ec327ac..c5dfd36 100644 --- a/tests/test_parse.py +++ b/tests/test_parse.py @@ -5,6 +5,7 @@ import pytest import sqlparse from sqlparse import sql, tokens as T +from sqlparse.lexer import Lexer def test_parse_tokenize(): @@ -489,3 +490,45 @@ def test_parenthesis(): T.Newline, T.Newline, T.Punctuation] + + +def test_configurable_syntax(): + sql = """select * from foo BACON SPAM EGGS;""" + # sql="""select * from mydb.mytable BACON SPAM EGGS;""" + tokens = sqlparse.parse(sql)[0] + + assert list( + (t.ttype, t.value) for t in tokens if t.ttype not in sqlparse.tokens.Whitespace + ) == [ + (sqlparse.tokens.Keyword.DML, "select"), + (sqlparse.tokens.Wildcard, "*"), + (sqlparse.tokens.Keyword, "from"), + (None, "foo BACON"), + (None, "SPAM EGGS"), + (sqlparse.tokens.Punctuation, ";"), + ] + + Lexer().add_keywords( + { + "BACON": sqlparse.tokens.Name.Builtin, + "SPAM": sqlparse.tokens.Keyword, + "EGGS": sqlparse.tokens.Keyword, + } + ) + + tokens = sqlparse.parse(sql)[0] + + assert list( + (t.ttype, t.value) for t in tokens if t.ttype not in sqlparse.tokens.Whitespace + ) == [ + (sqlparse.tokens.Keyword.DML, "select"), + (sqlparse.tokens.Wildcard, "*"), + (sqlparse.tokens.Keyword, "from"), + (None, "foo"), + (sqlparse.tokens.Name.Builtin, "BACON"), + (sqlparse.tokens.Keyword, "SPAM"), + (sqlparse.tokens.Keyword, "EGGS"), + (sqlparse.tokens.Punctuation, ";"), + ] + # reset the syntax for later tests. + Lexer().default_initialization() |