Switch remaining tests to the standard format

This commit is contained in:
Nickolay Ponomarev 2019-05-03 01:00:08 +03:00
parent 0233604f9b
commit d1b088bd43
2 changed files with 37 additions and 50 deletions

View file

@ -452,14 +452,12 @@ fn parse_cast() {
#[test] #[test]
fn parse_create_table() { fn parse_create_table() {
let sql = String::from( let sql = "CREATE TABLE uk_cities (\
"CREATE TABLE uk_cities (\
name VARCHAR(100) NOT NULL,\ name VARCHAR(100) NOT NULL,\
lat DOUBLE NULL,\ lat DOUBLE NULL,\
lng DOUBLE NULL)", lng DOUBLE NULL)";
);
let ast = one_statement_parses_to( let ast = one_statement_parses_to(
&sql, sql,
"CREATE TABLE uk_cities (\ "CREATE TABLE uk_cities (\
name character varying(100) NOT NULL, \ name character varying(100) NOT NULL, \
lat double, \ lat double, \
@ -497,15 +495,13 @@ fn parse_create_table() {
#[test] #[test]
fn parse_create_external_table() { fn parse_create_external_table() {
let sql = String::from( let sql = "CREATE EXTERNAL TABLE uk_cities (\
"CREATE EXTERNAL TABLE uk_cities (\
name VARCHAR(100) NOT NULL,\ name VARCHAR(100) NOT NULL,\
lat DOUBLE NULL,\ lat DOUBLE NULL,\
lng DOUBLE NULL)\ lng DOUBLE NULL)\
STORED AS TEXTFILE LOCATION '/tmp/example.csv", STORED AS TEXTFILE LOCATION '/tmp/example.csv";
);
let ast = one_statement_parses_to( let ast = one_statement_parses_to(
&sql, sql,
"CREATE EXTERNAL TABLE uk_cities (\ "CREATE EXTERNAL TABLE uk_cities (\
name character varying(100) NOT NULL, \ name character varying(100) NOT NULL, \
lat double, \ lat double, \
@ -552,8 +548,8 @@ fn parse_scalar_function_in_projection() {
let select = verified_only_select(sql); let select = verified_only_select(sql);
assert_eq!( assert_eq!(
&ASTNode::SQLFunction { &ASTNode::SQLFunction {
name: SQLObjectName(vec![String::from("sqrt")]), name: SQLObjectName(vec!["sqrt".to_string()]),
args: vec![ASTNode::SQLIdentifier(String::from("id"))], args: vec![ASTNode::SQLIdentifier("id".to_string())],
over: None, over: None,
}, },
expr_from_projection(only(&select.projection)) expr_from_projection(only(&select.projection))

View file

@ -9,7 +9,7 @@ use sqlparser::sqltokenizer::*;
#[test] #[test]
fn test_prev_index() { fn test_prev_index() {
let sql: &str = "SELECT version()"; let sql = "SELECT version()";
let mut parser = parser(sql); let mut parser = parser(sql);
assert_eq!(parser.prev_token(), None); assert_eq!(parser.prev_token(), None);
assert_eq!(parser.next_token(), Some(Token::make_keyword("SELECT"))); assert_eq!(parser.next_token(), Some(Token::make_keyword("SELECT")));
@ -88,8 +88,7 @@ fn parse_insert_invalid() {
#[test] #[test]
fn parse_create_table_with_defaults() { fn parse_create_table_with_defaults() {
let sql = String::from( let sql = "CREATE TABLE public.customer (
"CREATE TABLE public.customer (
customer_id integer DEFAULT nextval(public.customer_customer_id_seq) NOT NULL, customer_id integer DEFAULT nextval(public.customer_customer_id_seq) NOT NULL,
store_id smallint NOT NULL, store_id smallint NOT NULL,
first_name character varying(45) NOT NULL, first_name character varying(45) NOT NULL,
@ -99,9 +98,8 @@ fn parse_create_table_with_defaults() {
activebool boolean DEFAULT true NOT NULL, activebool boolean DEFAULT true NOT NULL,
create_date date DEFAULT now()::text NOT NULL, create_date date DEFAULT now()::text NOT NULL,
last_update timestamp without time zone DEFAULT now() NOT NULL, last_update timestamp without time zone DEFAULT now() NOT NULL,
active integer NOT NULL)", active integer NOT NULL)";
); match one_statement_parses_to(sql, "") {
match one_statement_parses_to(&sql, "") {
SQLStatement::SQLCreateTable { SQLStatement::SQLCreateTable {
name, name,
columns, columns,
@ -133,8 +131,7 @@ fn parse_create_table_with_defaults() {
#[test] #[test]
fn parse_create_table_from_pg_dump() { fn parse_create_table_from_pg_dump() {
let sql = String::from(" let sql = "CREATE TABLE public.customer (
CREATE TABLE public.customer (
customer_id integer DEFAULT nextval('public.customer_customer_id_seq'::regclass) NOT NULL, customer_id integer DEFAULT nextval('public.customer_customer_id_seq'::regclass) NOT NULL,
store_id smallint NOT NULL, store_id smallint NOT NULL,
first_name character varying(45) NOT NULL, first_name character varying(45) NOT NULL,
@ -147,8 +144,8 @@ fn parse_create_table_from_pg_dump() {
last_update timestamp without time zone DEFAULT now(), last_update timestamp without time zone DEFAULT now(),
release_year public.year, release_year public.year,
active integer active integer
)"); )";
match one_statement_parses_to(&sql, "") { match one_statement_parses_to(sql, "") {
SQLStatement::SQLCreateTable { SQLStatement::SQLCreateTable {
name, name,
columns, columns,
@ -202,16 +199,14 @@ fn parse_create_table_from_pg_dump() {
#[test] #[test]
fn parse_create_table_with_inherit() { fn parse_create_table_with_inherit() {
let sql = String::from( let sql = "\
"\
CREATE TABLE bazaar.settings (\ CREATE TABLE bazaar.settings (\
settings_id uuid PRIMARY KEY DEFAULT uuid_generate_v4() NOT NULL, \ settings_id uuid PRIMARY KEY DEFAULT uuid_generate_v4() NOT NULL, \
user_id uuid UNIQUE, \ user_id uuid UNIQUE, \
value text[], \ value text[], \
use_metric boolean DEFAULT true\ use_metric boolean DEFAULT true\
)", )";
); match verified_stmt(sql) {
match verified_stmt(&sql) {
SQLStatement::SQLCreateTable { SQLStatement::SQLCreateTable {
name, name,
columns, columns,
@ -241,12 +236,9 @@ fn parse_create_table_with_inherit() {
#[test] #[test]
fn parse_alter_table_constraint_primary_key() { fn parse_alter_table_constraint_primary_key() {
let sql = String::from( let sql = "ALTER TABLE bazaar.address \
"\ ADD CONSTRAINT address_pkey PRIMARY KEY (address_id)";
ALTER TABLE bazaar.address \ match verified_stmt(sql) {
ADD CONSTRAINT address_pkey PRIMARY KEY (address_id)",
);
match verified_stmt(&sql) {
SQLStatement::SQLAlterTable { name, .. } => { SQLStatement::SQLAlterTable { name, .. } => {
assert_eq!(name.to_string(), "bazaar.address"); assert_eq!(name.to_string(), "bazaar.address");
} }
@ -256,10 +248,9 @@ fn parse_alter_table_constraint_primary_key() {
#[test] #[test]
fn parse_alter_table_constraint_foreign_key() { fn parse_alter_table_constraint_foreign_key() {
let sql = String::from("\ let sql = "ALTER TABLE public.customer \
ALTER TABLE public.customer \ ADD CONSTRAINT customer_address_id_fkey FOREIGN KEY (address_id) REFERENCES public.address(address_id)";
ADD CONSTRAINT customer_address_id_fkey FOREIGN KEY (address_id) REFERENCES public.address(address_id)"); match verified_stmt(sql) {
match verified_stmt(&sql) {
SQLStatement::SQLAlterTable { name, .. } => { SQLStatement::SQLAlterTable { name, .. } => {
assert_eq!(name.to_string(), "public.customer"); assert_eq!(name.to_string(), "public.customer");
} }
@ -269,7 +260,7 @@ fn parse_alter_table_constraint_foreign_key() {
#[test] #[test]
fn parse_copy_example() { fn parse_copy_example() {
let sql = String::from(r#"COPY public.actor (actor_id, first_name, last_name, last_update, value) FROM stdin; let sql = r#"COPY public.actor (actor_id, first_name, last_name, last_update, value) FROM stdin;
1 PENELOPE GUINESS 2006-02-15 09:34:33 0.11111 1 PENELOPE GUINESS 2006-02-15 09:34:33 0.11111
2 NICK WAHLBERG 2006-02-15 09:34:33 0.22222 2 NICK WAHLBERG 2006-02-15 09:34:33 0.22222
3 ED CHASE 2006-02-15 09:34:33 0.312323 3 ED CHASE 2006-02-15 09:34:33 0.312323
@ -288,8 +279,8 @@ Kwara & Kogi
'awe':5 'awe-inspir':4 'barbarella':1 'cat':13 'conquer':16 'dog':18 'feminist':10 'inspir':6 'monasteri':21 'must':15 'stori':7 'streetcar':2 'awe':5 'awe-inspir':4 'barbarella':1 'cat':13 'conquer':16 'dog':18 'feminist':10 'inspir':6 'monasteri':21 'must':15 'stori':7 'streetcar':2
PHP USD $ PHP USD $
\N Some other value \N Some other value
\\."#); \\."#;
let ast = one_statement_parses_to(&sql, ""); let ast = one_statement_parses_to(sql, "");
println!("{:#?}", ast); println!("{:#?}", ast);
//assert_eq!(sql, ast.to_string()); //assert_eq!(sql, ast.to_string());
} }