Fixup several tests silently broken by 12e7015a
Peter Rabbitson [Mon, 12 Sep 2016 12:12:35 +0000 (14:12 +0200)]
A number of tests that we do not run during CI (lack of RDBMS) have run-time
tests concerning backcompat along the lines of:

  $schema->class('Artist')->load_components('PK::Auto...')

The above causes the class' mro to be switched after $schema instantiation
and subsequently triggers the sanitychecker. Instead of ripping these lines
out (without a way to test them) - simply augment the ::Artist based set of
classes to preempt the check failures in the first place.

lib/DBIx/Class/Schema/SanityChecker.pm
t/lib/DBICTest/Base.pm
t/lib/DBICTest/Schema/Artist.pm
t/lib/DBICTest/Schema/ArtistSourceName.pm
t/lib/DBICTest/Schema/ArtistSubclass.pm
t/lib/DBICTest/Schema/CustomSql.pm

index 61936d9..4cc7958 100644 (file)
@@ -505,7 +505,8 @@ sub check_valid_c3_composition {
 
     push @err, {
       class => $class,
-      isa => $desc->{isa},
+      initial_linear_isa => $desc->{linear_isa},
+      current_linear_isa => do { (undef, my @isa) = @{ mro::get_linear_isa($class) }; \@isa },
       initial_mro => $desc->{mro}{type},
       current_mro => mro::get_mro($class),
       affected_methods => $affected_methods,
index 9024f8e..8610208 100644 (file)
@@ -6,6 +6,8 @@ use warnings;
 
 use DBICTest::Util;
 
+# FIXME - Carp::Skip should somehow allow for augmentation based on
+# mro::get_linear_isa or somesuch...
 sub _skip_namespace_frames { '^DBICTest' }
 
 1;
index 00c1ef6..808e05a 100644 (file)
@@ -5,6 +5,8 @@ use warnings;
 use strict;
 
 use base 'DBICTest::BaseResult';
+use mro 'c3';
+
 use DBICTest::Util 'check_customcond_args';
 
 __PACKAGE__->table('artist');
index 3e6a7e6..cf1b5de 100644 (file)
@@ -5,6 +5,8 @@ use warnings;
 use strict;
 
 use base 'DBICTest::Schema::Artist';
+use mro 'c3';
+
 __PACKAGE__->table(__PACKAGE__->table);
 __PACKAGE__->source_name('SourceNameArtists');
 
index e1b97fa..31062b5 100644 (file)
@@ -5,6 +5,7 @@ use warnings;
 use strict;
 
 use base 'DBICTest::Schema::Artist';
+use mro 'c3';
 
 __PACKAGE__->table(__PACKAGE__->table);
 
index d22b3fe..d179464 100644 (file)
@@ -5,6 +5,7 @@ use warnings;
 use strict;
 
 use base qw/DBICTest::Schema::Artist/;
+use mro 'c3';
 
 __PACKAGE__->table('dummy');