fix some warnings for MSSQL over ADO
Rafael Kitover [Tue, 1 Nov 2011 01:52:59 +0000 (21:52 -0400)]
Fix invalid object warnings for nonexistant table/comment tables, and
"Changed context" warnings for the extra database tests.

lib/DBIx/Class/Schema/Loader/DBI/ADO/Microsoft_SQL_Server.pm
t/10_07mssql_common.t

index b23a8ab..4af0525 100644 (file)
@@ -21,6 +21,18 @@ Proxy for L<DBIx::Class::Schema::Loader::DBI::MSSQL> when using L<DBD::ADO>.
 
 See L<DBIx::Class::Schema::Loader::Base> for usage information.
 
+=cut
+
+sub _table_comment {
+    local $^W = 0; # invalid object warnings
+    shift->next::method(@_);
+}
+
+sub _column_comment {
+    local $^W = 0; # invalid object warnings
+    shift->next::method(@_);
+}
+
 =head1 SEE ALSO
 
 L<DBIx::Class::Schema::Loader::DBI::ADO>,
index ccdc8ff..5a31bef 100644 (file)
@@ -497,6 +497,12 @@ EOF
             }
 
             SKIP: {
+                # for ADO
+                my $warn_handler = $SIG{__WARN__} || sub { warn @_ };
+                local $SIG{__WARN__} = sub {
+                    $warn_handler->(@_) unless $_[0] =~ /Changed database context/;
+                };
+
                 my $dbh = $schema->storage->dbh;
 
                 try {
@@ -722,6 +728,12 @@ sub cleanup_schemas {
 sub cleanup_databases {
     return if $ENV{SCHEMA_LOADER_TESTS_NOCLEANUP};
 
+    # for ADO
+    my $warn_handler = $SIG{__WARN__} || sub { warn @_ };
+    local $SIG{__WARN__} = sub {
+        $warn_handler->(@_) unless $_[0] =~ /Changed database context/;
+    };
+
     my $dbh = $schema->storage->dbh;
 
     $dbh->do('USE dbicsl_test1');