Skip to content

Commit b03a05b

Browse files
committed
more readable tests
1 parent 5ef60c4 commit b03a05b

File tree

1 file changed

+51
-48
lines changed

1 file changed

+51
-48
lines changed

tests/pretty_print.rs

Lines changed: 51 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,50 @@
11
use sqlparser::dialect::GenericDialect;
22
use sqlparser::parser::Parser;
33

4+
fn parse_and_format(sql: &str) -> String {
5+
let ast = Parser::parse_sql(&GenericDialect {}, sql).unwrap();
6+
format!("{:#}", ast[0])
7+
}
8+
49
#[test]
510
fn test_pretty_print_select() {
6-
let sql = "SELECT a, b, c FROM my_table WHERE x = 1 AND y = 2";
7-
let ast = Parser::parse_sql(&GenericDialect {}, sql).unwrap();
8-
let pretty = format!("{:#}", ast[0]);
911
assert_eq!(
10-
pretty,
11-
r#"SELECT
12+
parse_and_format("SELECT a, b, c FROM my_table WHERE x = 1 AND y = 2"),
13+
r#"
14+
SELECT
1215
a,
1316
b,
1417
c
1518
FROM
1619
my_table
1720
WHERE
18-
x = 1 AND y = 2"#
21+
x = 1 AND y = 2
22+
"#
23+
.trim()
1924
);
2025
}
2126

2227
#[test]
2328
fn test_pretty_print_join() {
24-
let sql = "SELECT a FROM table1 JOIN table2 ON table1.id = table2.id";
25-
let ast = Parser::parse_sql(&GenericDialect {}, sql).unwrap();
26-
let pretty = format!("{:#}", ast[0]);
2729
assert_eq!(
28-
pretty,
29-
r#"SELECT
30+
parse_and_format("SELECT a FROM table1 JOIN table2 ON table1.id = table2.id"),
31+
r#"
32+
SELECT
3033
a
3134
FROM
3235
table1
33-
JOIN table2 ON table1.id = table2.id"#
36+
JOIN table2 ON table1.id = table2.id
37+
"#
38+
.trim()
3439
);
3540
}
3641

3742
#[test]
3843
fn test_pretty_print_subquery() {
39-
let sql = "SELECT * FROM (SELECT a, b FROM my_table) AS subquery";
40-
let ast = Parser::parse_sql(&GenericDialect {}, sql).unwrap();
41-
let pretty = format!("{:#}", ast[0]);
4244
assert_eq!(
43-
pretty,
44-
r#"SELECT
45+
parse_and_format("SELECT * FROM (SELECT a, b FROM my_table) AS subquery"),
46+
r#"
47+
SELECT
4548
*
4649
FROM
4750
(
@@ -50,56 +53,56 @@ FROM
5053
b
5154
FROM
5255
my_table
53-
) AS subquery"#
56+
) AS subquery
57+
"#
58+
.trim()
5459
);
5560
}
5661

5762
#[test]
5863
fn test_pretty_print_union() {
59-
let sql = "SELECT a FROM table1 UNION SELECT b FROM table2";
60-
let ast = Parser::parse_sql(&GenericDialect {}, sql).unwrap();
61-
let pretty = format!("{:#}", ast[0]);
6264
assert_eq!(
63-
pretty,
64-
r#"SELECT
65+
parse_and_format("SELECT a FROM table1 UNION SELECT b FROM table2"),
66+
r#"
67+
SELECT
6568
a
6669
FROM
6770
table1
6871
UNION
6972
SELECT
7073
b
7174
FROM
72-
table2"#
75+
table2
76+
"#
77+
.trim()
7378
);
7479
}
7580

7681
#[test]
7782
fn test_pretty_print_group_by() {
78-
let sql = "SELECT a, COUNT(*) FROM my_table GROUP BY a HAVING COUNT(*) > 1";
79-
let ast = Parser::parse_sql(&GenericDialect {}, sql).unwrap();
80-
let pretty = format!("{:#}", ast[0]);
8183
assert_eq!(
82-
pretty,
83-
r#"SELECT
84+
parse_and_format("SELECT a, COUNT(*) FROM my_table GROUP BY a HAVING COUNT(*) > 1"),
85+
r#"
86+
SELECT
8487
a,
8588
COUNT(*)
8689
FROM
8790
my_table
8891
GROUP BY
8992
a
9093
HAVING
91-
COUNT(*) > 1"#
94+
COUNT(*) > 1
95+
"#
96+
.trim()
9297
);
9398
}
9499

95100
#[test]
96101
fn test_pretty_print_cte() {
97-
let sql = "WITH cte AS (SELECT a, b FROM my_table) SELECT * FROM cte";
98-
let ast = Parser::parse_sql(&GenericDialect {}, sql).unwrap();
99-
let pretty = format!("{:#}", ast[0]);
100102
assert_eq!(
101-
pretty,
102-
r#"WITH cte AS (
103+
parse_and_format("WITH cte AS (SELECT a, b FROM my_table) SELECT * FROM cte"),
104+
r#"
105+
WITH cte AS (
103106
SELECT
104107
a,
105108
b
@@ -109,18 +112,18 @@ fn test_pretty_print_cte() {
109112
SELECT
110113
*
111114
FROM
112-
cte"#
115+
cte
116+
"#
117+
.trim()
113118
);
114119
}
115120

116121
#[test]
117122
fn test_pretty_print_case_when() {
118-
let sql = "SELECT CASE WHEN x > 0 THEN 'positive' WHEN x < 0 THEN 'negative' ELSE 'zero' END FROM my_table";
119-
let ast = Parser::parse_sql(&GenericDialect {}, sql).unwrap();
120-
let pretty = format!("{:#}", ast[0]);
121123
assert_eq!(
122-
pretty,
123-
r#"SELECT
124+
parse_and_format("SELECT CASE WHEN x > 0 THEN 'positive' WHEN x < 0 THEN 'negative' ELSE 'zero' END FROM my_table"),
125+
r#"
126+
SELECT
124127
CASE
125128
WHEN x > 0 THEN
126129
'positive'
@@ -130,25 +133,25 @@ fn test_pretty_print_case_when() {
130133
'zero'
131134
END
132135
FROM
133-
my_table"#
136+
my_table
137+
"#.trim()
134138
);
135139
}
136140

137141
#[test]
138142
fn test_pretty_print_window_function() {
139-
let sql = "SELECT id, value, ROW_NUMBER() OVER (PARTITION BY category ORDER BY value DESC) as rank FROM my_table";
140-
let ast = Parser::parse_sql(&GenericDialect {}, sql).unwrap();
141-
let pretty = format!("{:#}", ast[0]);
142143
assert_eq!(
143-
pretty,
144-
r#"SELECT
144+
parse_and_format("SELECT id, value, ROW_NUMBER() OVER (PARTITION BY category ORDER BY value DESC) as rank FROM my_table"),
145+
r#"
146+
SELECT
145147
id,
146148
value,
147149
ROW_NUMBER() OVER (
148150
PARTITION BY category
149151
ORDER BY value DESC
150152
) AS rank
151153
FROM
152-
my_table"#
154+
my_table
155+
"#.trim()
153156
);
154157
}

0 commit comments

Comments
 (0)