Skip to content

Commit ca85654

Browse files
committed
sql_parser: sqlite tests refactoring
1 parent e779507 commit ca85654

File tree

5 files changed

+94
-143
lines changed

5 files changed

+94
-143
lines changed

src/parser/sqlite/analyze.rs

+17-35
Original file line numberDiff line numberDiff line change
@@ -57,29 +57,27 @@ pub mod test_utils {
5757
#[cfg(test)]
5858
mod analyze_statements_tests {
5959
use crate::ast::AnalyzeStatement;
60-
use crate::parser::errors::ParsingError;
61-
use crate::parser::test_utils::{
62-
assert_statements_equal, run_rainy_day_test, run_sunny_day_test,
63-
};
60+
use crate::parser::test_utils::{assert_statements_equal, run_sunny_day_test};
6461
use crate::{Parser, Statement};
6562

6663
use super::test_utils::analyze_statement;
6764

6865
#[test]
69-
fn test_analyze_basic() {
66+
fn analyze_test() {
7067
run_sunny_day_test("ANALYZE;", Statement::Analyze(analyze_statement()));
7168
}
7269

7370
#[test]
74-
fn test_analyze_with_schema_name() {
71+
fn analyze_schema() {
7572
let mut expected_statement = analyze_statement();
7673
expected_statement.schema_name = Some("main".to_string());
7774

75+
// If we have only one identifier, it's a schema name
7876
run_sunny_day_test("ANALYZE main;", Statement::Analyze(expected_statement));
7977
}
8078

8179
#[test]
82-
fn test_analyze_with_schema_and_table() {
80+
fn analyze_with_schema_and_table() {
8381
let mut expected_statement = analyze_statement();
8482
expected_statement.schema_name = Some("main".to_string());
8583
expected_statement.table_or_index_name = Some("my_table".to_string());
@@ -91,23 +89,23 @@ mod analyze_statements_tests {
9189
}
9290

9391
#[test]
94-
fn test_analyze_with_single_quoted_schema() {
92+
fn analyze_with_single_quoted_schema() {
9593
let mut expected_statement = analyze_statement();
9694
expected_statement.schema_name = Some("'main'".to_string());
9795

9896
run_sunny_day_test("ANALYZE 'main';", Statement::Analyze(expected_statement));
9997
}
10098

10199
#[test]
102-
fn test_analyze_with_double_quoted_schema() {
100+
fn analyze_with_double_quoted_schema() {
103101
let mut expected_statement = analyze_statement();
104102
expected_statement.schema_name = Some("\"main\"".to_string());
105103

106104
run_sunny_day_test("ANALYZE \"main\";", Statement::Analyze(expected_statement));
107105
}
108106

109107
#[test]
110-
fn test_analyze_with_single_quoted_schema_and_table() {
108+
fn analyze_with_single_quoted_schema_and_table() {
111109
let mut expected_statement = analyze_statement();
112110
expected_statement.schema_name = Some("'main'".to_string());
113111
expected_statement.table_or_index_name = Some("'my_table'".to_string());
@@ -119,7 +117,7 @@ mod analyze_statements_tests {
119117
}
120118

121119
#[test]
122-
fn test_analyze_with_double_quoted_schema_and_table() {
120+
fn analyze_with_double_quoted_schema_and_table() {
123121
let mut expected_statement = analyze_statement();
124122
expected_statement.schema_name = Some("\"main\"".to_string());
125123
expected_statement.table_or_index_name = Some("\"my_table\"".to_string());
@@ -131,29 +129,13 @@ mod analyze_statements_tests {
131129
}
132130

133131
#[test]
134-
fn test_analyze_missing_semicolon() {
132+
fn analyze_missing_semicolon() {
135133
let sql = "ANALYZE";
136134
run_sunny_day_test(sql, Statement::Analyze(analyze_statement()));
137135
}
138136

139137
#[test]
140-
fn test_analyze_with_invalid_schema_name() {
141-
run_rainy_day_test(
142-
"ANALYZE 'unclosed_schema;",
143-
ParsingError::TokenizerError("UnterminatedLiteral: 'unclosed_schema;".into()),
144-
);
145-
}
146-
147-
#[test]
148-
fn test_analyze_with_invalid_table_name() {
149-
run_rainy_day_test(
150-
"ANALYZE main.'unclosed_table;",
151-
ParsingError::TokenizerError("UnterminatedLiteral: 'unclosed_table;".into()),
152-
);
153-
}
154-
155-
#[test]
156-
fn test_analyze_with_numeric_schema_name() {
138+
fn analyze_numeric_schema_name() {
157139
run_sunny_day_test(
158140
"ANALYZE '123';",
159141
Statement::Analyze(AnalyzeStatement {
@@ -164,7 +146,7 @@ mod analyze_statements_tests {
164146
}
165147

166148
#[test]
167-
fn test_analyze_with_numeric_table_name() {
149+
fn analyze_numeric_table_name() {
168150
run_sunny_day_test(
169151
"ANALYZE main.'123';",
170152
Statement::Analyze(AnalyzeStatement {
@@ -175,7 +157,7 @@ mod analyze_statements_tests {
175157
}
176158

177159
#[test]
178-
fn test_analyze_with_escaped_quotes_in_schema_name() {
160+
fn analyze_with_escaped_quotes_in_schema_name() {
179161
run_sunny_day_test(
180162
"ANALYZE 'main''db';",
181163
Statement::Analyze(AnalyzeStatement {
@@ -186,7 +168,7 @@ mod analyze_statements_tests {
186168
}
187169

188170
#[test]
189-
fn test_analyze_with_escaped_quotes_in_table_name() {
171+
fn analyze_with_escaped_quotes_in_table_name() {
190172
run_sunny_day_test(
191173
"ANALYZE main.'table''name';",
192174
Statement::Analyze(AnalyzeStatement {
@@ -197,7 +179,7 @@ mod analyze_statements_tests {
197179
}
198180

199181
#[test]
200-
fn test_analyze_with_backticks_schema_name() {
182+
fn analyze_with_backticks_schema_name() {
201183
run_sunny_day_test(
202184
"ANALYZE `main`;",
203185
Statement::Analyze(AnalyzeStatement {
@@ -208,7 +190,7 @@ mod analyze_statements_tests {
208190
}
209191

210192
#[test]
211-
fn test_analyze_with_special_chars_in_table_name() {
193+
fn analyze_with_special_chars_in_table_name() {
212194
run_sunny_day_test(
213195
"ANALYZE main.'[email protected]!';",
214196
Statement::Analyze(AnalyzeStatement {
@@ -219,7 +201,7 @@ mod analyze_statements_tests {
219201
}
220202

221203
#[test]
222-
fn test_analyze_multiple_statements() {
204+
fn analyze_multiple_statements() {
223205
let sql = "ANALYZE; ANALYZE main.my_table;";
224206
let mut parser = Parser::from(sql);
225207

src/parser/sqlite/attach.rs

+19-28
Original file line numberDiff line numberDiff line change
@@ -76,26 +76,26 @@ mod detach_statements_tests {
7676
use super::test_utils::detach_statement;
7777

7878
#[test]
79-
fn test_detach_basic() {
79+
fn detach_test() {
8080
run_sunny_day_test(
8181
"DETACH DATABASE test_db;",
8282
Statement::Detach(detach_statement()),
8383
);
8484
}
8585

8686
#[test]
87-
fn test_detach_without_database_keyword() {
87+
fn detach_without_database_keyword() {
8888
run_sunny_day_test("DETACH test_db;", Statement::Detach(detach_statement()));
8989
}
9090

9191
#[test]
92-
fn test_detach_missing_semicolon() {
92+
fn detach_missing_semicolon() {
9393
let sql = "DETACH DATABASE test_db";
9494
run_sunny_day_test(sql, Statement::Detach(detach_statement()));
9595
}
9696

9797
#[test]
98-
fn test_detach_with_single_quoted_schema_name() {
98+
fn detach_with_single_quoted_schema_name() {
9999
let sql = "DETACH DATABASE 'test_db';";
100100
run_sunny_day_test(
101101
sql,
@@ -106,7 +106,7 @@ mod detach_statements_tests {
106106
}
107107

108108
#[test]
109-
fn test_detach_with_double_quoted_schema_name() {
109+
fn detach_with_double_quoted_schema_name() {
110110
let sql = "DETACH DATABASE \"test_db\";";
111111
run_sunny_day_test(
112112
sql,
@@ -117,25 +117,25 @@ mod detach_statements_tests {
117117
}
118118

119119
#[test]
120-
fn test_detach_missing_schema_name() {
120+
fn detach_missing_schema_name() {
121121
let sql = "DETACH DATABASE;";
122122
run_rainy_day_test(sql, ParsingError::UnexpectedToken(";".into()));
123123
}
124124

125125
#[test]
126-
fn test_detach_missing_schema_name_no_database() {
126+
fn detach_missing_schema_name_no_database() {
127127
let sql = "DETACH;";
128128
run_rainy_day_test(sql, ParsingError::UnexpectedToken(";".into()));
129129
}
130130

131131
#[test]
132-
fn test_detach_invalid_syntax_extra_token() {
132+
fn detach_invalid_syntax_extra_token() {
133133
let sql = "DETACH DATABASE schema_name extra;";
134134
run_rainy_day_test(sql, ParsingError::UnexpectedToken("extra".into()));
135135
}
136136

137137
#[test]
138-
fn test_detach_invalid_schema_name_number() {
138+
fn detach_invalid_schema_name_number() {
139139
let sql = "DETACH DATABASE 123;";
140140
run_sunny_day_test(
141141
sql,
@@ -146,7 +146,7 @@ mod detach_statements_tests {
146146
}
147147

148148
#[test]
149-
fn test_detach_multiple_statements() {
149+
fn detach_multiple_statements() {
150150
let sql = "DETACH test_db; DETACH DATABASE 'test_db2';";
151151
let mut parser = Parser::from(sql);
152152

@@ -167,7 +167,7 @@ mod detach_statements_tests {
167167
}
168168

169169
#[test]
170-
fn test_detach_schema_name_with_spaces() {
170+
fn detach_schema_name_with_spaces() {
171171
let mut expected_statement = detach_statement();
172172
expected_statement.schema_name = "'schema name with spaces'".to_string();
173173

@@ -178,7 +178,7 @@ mod detach_statements_tests {
178178
}
179179

180180
#[test]
181-
fn test_detach_schema_name_with_special_chars() {
181+
fn detach_schema_name_with_special_chars() {
182182
let sql = "DETACH DATABASE '[email protected]!';";
183183
run_sunny_day_test(
184184
sql,
@@ -189,22 +189,13 @@ mod detach_statements_tests {
189189
}
190190

191191
#[test]
192-
fn test_detach_invalid_schema_name_no_quotes() {
192+
fn detach_invalid_schema_name_no_quotes() {
193193
let sql = "DETACH DATABASE schema name;";
194194
run_rainy_day_test(sql, ParsingError::UnexpectedToken("name".into()));
195195
}
196196

197197
#[test]
198-
fn test_detach_unterminated_string() {
199-
let sql = "DETACH DATABASE 'schema_name;";
200-
run_rainy_day_test(
201-
sql,
202-
ParsingError::TokenizerError("UnterminatedLiteral: 'schema_name;".into()),
203-
);
204-
}
205-
206-
#[test]
207-
fn test_detach_with_numeric_schema_name_in_quotes() {
198+
fn detach_with_numeric_schema_name_in_quotes() {
208199
let sql = "DETACH DATABASE '123';";
209200
run_sunny_day_test(
210201
sql,
@@ -215,7 +206,7 @@ mod detach_statements_tests {
215206
}
216207

217208
#[test]
218-
fn test_detach_with_escaped_quotes_in_schema_name() {
209+
fn detach_with_escaped_quotes_in_schema_name() {
219210
let sql = "DETACH DATABASE 'schema''name';";
220211
run_sunny_day_test(
221212
sql,
@@ -226,7 +217,7 @@ mod detach_statements_tests {
226217
}
227218

228219
#[test]
229-
fn test_detach_with_double_escaped_quotes_in_schema_name() {
220+
fn detach_with_double_escaped_quotes_in_schema_name() {
230221
let sql = "DETACH DATABASE \"schema\"\"name\";";
231222
run_sunny_day_test(
232223
sql,
@@ -237,7 +228,7 @@ mod detach_statements_tests {
237228
}
238229

239230
#[test]
240-
fn test_detach_with_backticks_schema_name() {
231+
fn detach_with_backticks_schema_name() {
241232
let sql = "DETACH DATABASE `schema_name`;";
242233
run_sunny_day_test(
243234
sql,
@@ -254,7 +245,7 @@ mod attach_statement_tests {
254245
use crate::{AttachStatement, Expression, Identifier, LiteralValue, Statement};
255246

256247
#[test]
257-
fn test_attach_statement() {
248+
fn attach_statement() {
258249
let sql = "ATTACH DATABASE 'test.db' AS db2;";
259250
run_sunny_day_test(
260251
sql,
@@ -266,7 +257,7 @@ mod attach_statement_tests {
266257
}
267258

268259
#[test]
269-
fn test_attach_statement_without_database_keyword() {
260+
fn attach_statement_without_database_keyword() {
270261
let sql = "ATTACH 'sub_f' AS sub_name;";
271262
run_sunny_day_test(
272263
sql,

0 commit comments

Comments
 (0)