X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F66-postgres-dbi-parser.t;h=4015660e42815ea999fc406af0efc1b1d0f5fd21;hb=a5bfeba834a779d591ed9e629594142f14afb73f;hp=0483a54c0bf41dc47bc98eb61d2375b73d443b85;hpb=c601ca5da1eabe59d4dd09b9265923573fb72ec6;p=dbsrgits%2FSQL-Translator.git diff --git a/t/66-postgres-dbi-parser.t b/t/66-postgres-dbi-parser.t index 0483a54..4015660 100644 --- a/t/66-postgres-dbi-parser.t +++ b/t/66-postgres-dbi-parser.t @@ -8,7 +8,7 @@ use SQL::Translator::Schema::Constants; use Test::SQL::Translator qw(maybe_plan table_ok); BEGIN { - maybe_plan(56, 'SQL::Translator::Parser::DBI::PostgreSQL'); + maybe_plan(61, 'SQL::Translator::Parser::DBI::PostgreSQL'); SQL::Translator::Parser::DBI::PostgreSQL->import('parse'); } @@ -26,13 +26,12 @@ my $dbh = eval { SKIP: { if (my $err = ($@ || $DBI::err )) { chomp $err; - skip "No connection to test db. DBI says '$err'", 55; + skip "No connection to test db. DBI says '$err'", 60; } ok($dbh, "dbh setup correctly"); $dbh->do('SET client_min_messages=WARNING'); -my $t = SQL::Translator->new( trace => 0 ); my $sql = q[ drop table if exists sqlt_test2; drop table if exists sqlt_test1; @@ -46,6 +45,9 @@ my $sql = q[ f_last text ); + comment on table sqlt_test1 is 'this is a comment on the first table'; + comment on column sqlt_test1.f_text is 'this is a comment on a field of the first table'; + create index sqlt_test1_f_last_idx on sqlt_test1 (f_last); create table sqlt_test2 ( @@ -61,7 +63,7 @@ my $sql = q[ price numeric ); - -- drop a column, to not have a linear id + -- drop a column, to not have a linear id -- When the table t_test1 is created, f_last get id 5 but -- after this drop, there is only 4 columns. alter table sqlt_test1 drop column f_to_drop; @@ -71,14 +73,23 @@ $| = 1; $dbh->do($sql); -my $data = SQL::Translator::Parser::DBI::PostgreSQL::parse( $t, $dbh ); +my $t = SQL::Translator->new( + trace => 0, + parser => 'DBI', + parser_args => { dbh => $dbh }, +); +$t->translate; my $schema = $t->schema; isa_ok( $schema, 'SQL::Translator::Schema', 'Schema object' ); + +ok ($dbh->ping, 'External handle still connected'); + my @tables = $schema->get_tables; my $t1 = $schema->get_table("sqlt_test1"); is( $t1->name, 'sqlt_test1', 'Table sqlt_test1 exists' ); +is( $t1->comments, 'this is a comment on the first table', 'First table has a comment'); my @t1_fields = $t1->get_fields; is( scalar @t1_fields, 4, '4 fields in sqlt_test1' ); @@ -101,6 +112,7 @@ is( $f2->size, 259, 'Size is "259"' ); is( $f2->default_value, undef, 'Default value is undefined' ); is( $f2->is_primary_key, 0, 'Field is not PK' ); is( $f2->is_auto_increment, 0, 'Field is not auto increment' ); +is( $f2->comments, '', 'There is no comment on the second field'); my $f3 = shift @t1_fields; is( $f3->name, 'f_text', 'Third field is "f_text"' ); @@ -110,6 +122,7 @@ is( $f3->size, 0, 'Size is 0' ); is( $f3->default_value, "'FOO'::text", 'Default value is "FOO"' ); is( $f3->is_primary_key, 0, 'Field is not PK' ); is( $f3->is_auto_increment, 0, 'Field is not auto increment' ); +is( $f3->comments, 'this is a comment on a field of the first table', 'There is a comment on the third field'); my $f4 = shift @t1_fields; is( $f4->name, 'f_last', 'Fouth field is "f_last"' ); @@ -124,6 +137,7 @@ is( $f4->is_auto_increment, 0, 'Field is not auto increment' ); my $t2 = $schema->get_table("sqlt_test2"); is( $t2->name, 'sqlt_test2', 'Table sqlt_test2 exists' ); +is( $t2->comments, undef, 'No comment on table sqlt_test2'); my @t2_fields = $t2->get_fields; is( scalar @t2_fields, 3, '3 fields in sqlt_test2' ); @@ -172,6 +186,7 @@ END { 'drop table if exists sqlt_test1', 'drop table if exists sqlt_products_1', ) { + local $SIG{__WARN__} = sub {}; eval { $dbh->do($_) }; } }