From: Peter Rabbitson Date: Tue, 3 Nov 2015 13:35:35 +0000 (+0100) Subject: Adjust view-dependency tests to work on newer libsqlite X-Git-Tag: v0.08271~8 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=75d25feaed379f469e41a41bce1eec6a1f38bce2;p=dbsrgits%2FDBIx-Class.git Adjust view-dependency tests to work on newer libsqlite ( port of 26c663f1 ) --- diff --git a/Changes b/Changes index b73cbe8..d52fa61 100644 --- a/Changes +++ b/Changes @@ -1,6 +1,9 @@ Revision history for DBIx::Class * Fixes + - Fix t/105view_deps.t failing with libsqlite >= 3.009, where view + definitions are lazily-checked for correctness only at DML-time as + opposed to DDL-time (RT#1546088) - Fix hang in t/72pg.t when run against DBD::Pg 3.5.0. The ping() implementation changes due to RT#100648 made an alarm() based timeout lock-prone. diff --git a/t/105view_deps.t b/t/105view_deps.t index 21aa92b..4377ba4 100644 --- a/t/105view_deps.t +++ b/t/105view_deps.t @@ -73,10 +73,16 @@ can_ok( $view, $_ ) for qw/new from deploy_depends_on/; = ViewDepsBad->connect( DBICTest->_database ( quote_char => '"') ); ok( $schema2, 'Connected to ViewDepsBad schema OK' ); + my $lazy_view_validity = !( + $schema2->storage->_server_info->{normalized_dbms_version} + < + 3.009 + ); + #################### DEPLOY2 warnings_exist { $schema2->deploy } - [qr/no such table: main.aba_name_artists/], + [ $lazy_view_validity ? () : qr/no such table: main.aba_name_artists/ ], "Deploying the bad schema produces a warning: aba_name_artists was not created."; #################### DOES ORDERING WORK 2? @@ -106,9 +112,15 @@ can_ok( $view, $_ ) for qw/new from deploy_depends_on/; } grep { !/AbaNameArtistsAnd2010CDsWithManyTracks/ } @{ [ $schema2->sources ] }; + $schema2->storage->dbh->do(q( DROP VIEW "aba_name_artists" )) + if $lazy_view_validity; + throws_ok { $schema2->resultset('AbaNameArtistsAnd2010CDsWithManyTracks')->next } - qr/no such table: aba_name_artists_and_2010_cds_with_many_tracks/, - "Query on AbaNameArtistsAnd2010CDsWithManyTracks throws, because the table does not exist" + qr/no such table: (?:main\.)?aba_name_artists/, + sprintf( + "Query on AbaNameArtistsAnd2010CDsWithManyTracks throws, because the%s view does not exist", + $lazy_view_validity ? ' underlying' : '' + ) ; }