X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class-Schema-Loader.git;a=blobdiff_plain;f=t%2Flib%2Fdbixcsl_common_tests.pm;h=c8bc757ff0002940b54371d6015604922794f390;hp=e19c3d8f82d21f4d542f8eba1c68602298639cb3;hb=6947b5d664d1e4136dfe8d410f821e0a4bdaba31;hpb=ebed3e6e3e487ab926341b75e56cd428ae1f1419 diff --git a/t/lib/dbixcsl_common_tests.pm b/t/lib/dbixcsl_common_tests.pm index e19c3d8..c8bc757 100644 --- a/t/lib/dbixcsl_common_tests.pm +++ b/t/lib/dbixcsl_common_tests.pm @@ -92,7 +92,7 @@ sub run_tests { my $extra_count = $self->{extra}{count} || 0; - plan tests => @connect_info * (182 + $extra_count + ($self->{data_type_tests}{test_count} || 0)); + plan tests => @connect_info * (183 + $extra_count + ($self->{data_type_tests}{test_count} || 0)); foreach my $info_idx (0..$#connect_info) { my $info = $connect_info[$info_idx]; @@ -124,17 +124,8 @@ sub run_only_extra_tests { $self->drop_extra_tables_only; my $dbh = $self->dbconnect(1); - { - # Silence annoying but harmless postgres "NOTICE: CREATE TABLE..." - local $SIG{__WARN__} = sub { - my $msg = shift; - warn $msg unless $msg =~ m{^NOTICE:\s+CREATE TABLE}; - }; - - - $dbh->do($_) for @{ $self->{extra}{create} || [] }; - $dbh->do($_) for @{ $self->{data_type_tests}{ddl} || []}; - } + $dbh->do($_) for @{ $self->{extra}{create} || [] }; + $dbh->do($_) for @{ $self->{data_type_tests}{ddl} || []}; $self->{_created} = 1; my $file_count = grep /CREATE (?:TABLE|VIEW)/i, @{ $self->{extra}{create} || [] }; @@ -160,11 +151,7 @@ sub drop_extra_tables_only { my $dbh = $self->dbconnect(0); - { - local $SIG{__WARN__} = sub {}; # postgres notices - $dbh->do($_) for @{ $self->{extra}{pre_drop_ddl} || [] }; - } - + $dbh->do($_) for @{ $self->{extra}{pre_drop_ddl} || [] }; $dbh->do("DROP TABLE $_") for @{ $self->{extra}{drop} || [] }; foreach my $data_type_table (@{ $self->{data_type_tests}{table_names} || [] }) { @@ -223,7 +210,7 @@ sub setup_schema { my $file_count; { my @loader_warnings; - local $SIG{__WARN__} = sub { push(@loader_warnings, $_[0]); }; + local $SIG{__WARN__} = sub { push(@loader_warnings, @_); }; eval qq{ package $schema_class; use base qw/DBIx::Class::Schema::Loader/; @@ -337,7 +324,10 @@ sub test_schema { isa_ok( $rsobj35, "DBIx::Class::ResultSet" ); my @columns_lt2 = $class2->columns; - is_deeply( \@columns_lt2, [ qw/id dat dat2 set_primary_key dbix_class_testcomponent meta/ ], "Column Ordering" ); + is_deeply( \@columns_lt2, [ qw/id dat dat2 set_primary_key can dbix_class_testcomponent meta/ ], "Column Ordering" ); + + is $class2->column_info('can')->{accessor}, undef, + 'accessor for column name that conflicts with a UNIVERSAL method removed'; is $class2->column_info('set_primary_key')->{accessor}, undef, 'accessor for column name that conflicts with a result base class method removed'; @@ -936,24 +926,15 @@ sub test_schema { $conn->storage->disconnect; # needed for Firebird and Informix my $dbh = $self->dbconnect(1); - - { - # Silence annoying but harmless postgres "NOTICE: CREATE TABLE..." - local $SIG{__WARN__} = sub { - my $msg = shift; - warn $msg unless $msg =~ m{^NOTICE:\s+CREATE TABLE}; - }; - - $dbh->do($_) for @statements_rescan; - } - + $dbh->do($_) for @statements_rescan; $dbh->disconnect; sleep 1; my @new = do { - # kill the 'Dumping manual schema' warnings - local $SIG{__WARN__} = sub {}; + local $SIG{__WARN__} = sub { warn @_ + unless $_[0] =~ /(?i:loader_test)\d+ has no primary key|^Dumping manual schema|^Schema dump completed/ + }; $conn->rescan; }; is_deeply(\@new, [ qw/LoaderTest30/ ], "Rescan"); @@ -984,7 +965,9 @@ sub test_schema { $conn->storage->dbh->do("DROP TABLE loader_test30"); @new = do { - local $SIG{__WARN__} = sub {}; + local $SIG{__WARN__} = sub { warn @_ + unless $_[0] =~ /(?i:loader_test)\d+ has no primary key|^Dumping manual schema|^Schema dump completed/ + }; $conn->rescan; }; is_deeply(\@new, [], 'no new tables on rescan'); @@ -1037,16 +1020,9 @@ sub test_preserve_case { my ($oqt, $cqt) = $self->get_oqt_cqt(always => 1); # open quote, close quote - my $dbh = $conn->storage->dbh; + my $dbh = $self->dbconnect; - { - # Silence annoying but harmless postgres "NOTICE: CREATE TABLE..." - local $SIG{__WARN__} = sub { - my $msg = shift; - warn $msg unless $msg =~ m{^NOTICE:\s+CREATE TABLE}; - }; - - $dbh->do($_) for ( + $dbh->do($_) for ( qq| CREATE TABLE ${oqt}LoaderTest40${cqt} ( ${oqt}Id${cqt} INTEGER NOT NULL PRIMARY KEY, @@ -1062,17 +1038,19 @@ qq| |, qq| INSERT INTO ${oqt}LoaderTest40${cqt} VALUES (1, 'foo') |, qq| INSERT INTO ${oqt}LoaderTest41${cqt} VALUES (1, 1) |, - ); - } + ); $conn->storage->disconnect; local $conn->_loader->{preserve_case} = 1; $conn->_loader->_setup; + { - local $SIG{__WARN__} = sub {}; + local $SIG{__WARN__} = sub { warn @_ + unless $_[0] =~ /(?i:loader_test)\d+ has no primary key|^Dumping manual schema|^Schema dump completed/ + }; $conn->rescan; - } + }; if (not $self->{skip_rels}) { is $conn->resultset('LoaderTest41')->find(1)->loader_test40->foo3_bar, 'foo', @@ -1192,6 +1170,7 @@ sub create { dat VARCHAR(32) NOT NULL, dat2 VARCHAR(32) NOT NULL, set_primary_key INTEGER $self->{null}, + can INTEGER $self->{null}, dbix_class_testcomponent INTEGER $self->{null}, meta INTEGER $self->{null}, UNIQUE (dat2, dat) @@ -1610,11 +1589,7 @@ sub create { my $dbh = $self->dbconnect(1); - # Silence annoying but harmless postgres "NOTICE: CREATE TABLE..." - local $SIG{__WARN__} = sub { - my $msg = shift; - warn $msg unless $msg =~ m{^NOTICE:\s+CREATE TABLE}; - }; + $dbh->do($_) for @{ $self->{pre_create} || [] }; $dbh->do($_) foreach (@statements); @@ -1722,10 +1697,7 @@ sub drop_tables { for (1,2) { my $dbh = $self->dbconnect(0); - { - local $SIG{__WARN__} = sub {}; # postgres notices - $dbh->do($_) for @{ $self->{extra}{pre_drop_ddl} || [] }; - } + $dbh->do($_) for @{ $self->{extra}{pre_drop_ddl} || [] }; $dbh->do("DROP TABLE $_") for @{ $self->{extra}{drop} || [] };